[MX] Bill of Lading — Sea (Carta Porte Transporte Marítimo)

What is a Carta Porte Marítimo?

A Carta Porte for maritime transport certifies the legal transport of goods by vessel in Mexico. Required by SAT for any sea cargo movement. Brinta embeds the CartaPorte 3.1 complement automatically.

FieldValue
invoice_typetransport
document_typebill of lading sea
e_invoicetrue
currencyMXN

Key Differences from Road

FeatureRoadSea
transportation_datadate_time + distancedate_time + distance + traffic_type
vehicle.categories[]Truck fieldsVessel fields
vehicle.typeNot requiredSet to sea
Station/port codesNot usedNot required — use address instead

Field by Field

senders[].company.transportation_data

FieldRequiredWhat to send
date_timeYesDeparture datetime ISO 8601 from the port of origin.
traffic_typeYesSAT c_NavegacionTrafico code. Classifies the maritime route type.
distanceYesDistance in km between origin and destination ports.

traffic_type values

ValueDescriptionWhen to use
01CabotajeTransport between Mexican ports (domestic). Most common.
02AlturaInternational maritime transport.

beneficiaries[].company.transportation_data

Only date_time is needed for the destination. No traffic_type or distance.

transportation_companies[]

Maritime transport typically has one figure — the shipping company (type: "02" Propietario). Include vehicle_type inside transportation_data.

For the shipping company (type: "02"), only RFC is needed in tax_registrations — no license number required.

vehicle — Vessel

Set vehicle.type to sea. All attributes sent as categories[] entries.

Required fields

list valueWhat to send in codeSAT field
vessel typeSAT c_ConfigMaritima codeTipoEmbarcacion
vessel plateVessel registration / matricula numberMatricula
OMI number7-digit IMO number assigned to the vesselNumeroOMI
vessel countryCountry of registration ISO code (e.g. MX)NacionalidadEmbarc
gross tonnageGross tonnage of the vessel in tonsUnidadesDeArqBruto
cargo typeSAT c_ClaveTipoCarga codeTipoCarga
shipping agentFull name of the shipping agent companyNombreAgenteNaviero
shipping authorization numberShipping agent authorization numberNumAutorizacionNaviero

Optional fields

list valueWhat to send in codeSAT field
insurance nameInsurer nameNombreAseg
insurance policy numberPolicy numberNumPolizaSeguro
voyage numberVoyage numberNumViaje
bill of lading numberBill of lading numberNumConocEmbarc
container typeSAT c_ContenedorMaritimo codeTipoContenedor
container plateContainer identification numberMatriculaContenedor
seal numberContainer seal numberNumPrecinto

Include container fields when goods are shipped in containers — recommended for full traceability.


Full Example Payload

{
  "supplier_company_id": "{{company_id}}",
  "invoice_type": "transport",
  "document_type": "bill of lading sea",
  "invoice_date": "2025-09-03",
  "export_reason": "01",
  "e_invoice": true,
  "currency": "MXN",
  "reason": "G03",
  "senders": [
    {
      "company": {
        "name": "REMITENTE EJEMPLO S.A. DE C.V.",
        "type": "business",
        "address": {
          "address_line_1": "Av. Puerto 1",
          "state": "MX-VER",
          "country": "MX",
          "postal_code": "91700"
        },
        "tax_registrations": [
          { "type": "RFC", "number": "REM930215S87", "level": "country", "location": "MX" }
        ],
        "transportation_data": {
          "date_time": "2025-09-03T08:00:00",
          "traffic_type": "01",   // 01 = cabotaje (domestic between MX ports)
          "distance": 1200.0
        }
      }
    }
  ],
  "beneficiaries": [
    {
      "company": {
        "name": "DESTINATARIO EJEMPLO S.A. DE C.V.",
        "type": "business",
        "address": {
          "address_line_1": "Blvd. Puerto 200",
          "state": "MX-TAB",
          "country": "MX",
          "postal_code": "86000"
        },
        "tax_registrations": [
          { "type": "RFC", "number": "DES890423H71", "level": "country", "location": "MX" }
        ],
        "transportation_data": {
          "date_time": "2025-09-06T14:00:00"
          // Only date_time needed for destination
        }
      }
    }
  ],
  "vehicle": {
    "type": "sea",
    "categories": [
      { "code": "01",                    "list": "vessel type" },              // SAT c_ConfigMaritima
      { "code": "MX-001",                "list": "vessel plate" },
      { "code": "1234567",               "list": "OMI number" },               // 7-digit IMO number
      { "code": "MX",                    "list": "vessel country" },
      { "code": "5000",                  "list": "gross tonnage" },
      { "code": "01",                    "list": "cargo type" },               // SAT c_ClaveTipoCarga
      { "code": "AGENTE NAVIERO S.A.",   "list": "shipping agent" },
      { "code": "AUTH-001",              "list": "shipping authorization number" },
      { "code": "QUALITAS",              "list": "insurance name" },
      { "code": "QUA-123456",            "list": "insurance policy number" },
      { "code": "VOY-2025-001",          "list": "voyage number" },
      { "code": "BL-2025-001",           "list": "bill of lading number" },
      { "code": "CONT01",                "list": "container type" },           // SAT c_ContenedorMaritimo
      { "code": "CONT-ABC123",           "list": "container plate" },
      { "code": "SEAL-001",              "list": "seal number" }
    ]
  },
  "transportation_companies": [
    {
      "company": {
        "name": "NAVIERA EJEMPLO S.A. DE C.V.",
        "type": "02",                  // 02 = Propietario — the shipping company
        "address": {
          "address_line_1": "Av. Puerto 5",
          "state": "MX-VER",
          "country": "MX",
          "postal_code": "91700"
        },
        "tax_registrations": [
          { "type": "RFC", "number": "NAV010101CD5", "level": "country", "location": "MX" }
          // Shipping company — RFC only, no license number needed
        ],
        "transportation_data": { "vehicle_type": "01" }
      }
    }
  ]
}

Common Mistakes

MistakeWhat happensFix
traffic_type missing in sendersSAT validation errorAlways required for sea transport in origin location
distance included in beneficiariesBrinta validation errorOnly include distance in senders
OMI number wrong digit countSAT rejects the documentMust be exactly 7 digits
Container fields omitted for containerized cargoIncomplete CFDIInclude container type, container plate, seal number when applicable
vessel type not a valid c_ConfigMaritima codeSAT validation errorUse the SAT catalog code, not a free-text description