[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.
| Field | Value |
|---|---|
invoice_type | transport |
document_type | bill of lading sea |
e_invoice | true |
currency | MXN |
Key Differences from Road
| Feature | Road | Sea |
|---|---|---|
transportation_data | date_time + distance | date_time + distance + traffic_type |
vehicle.categories[] | Truck fields | Vessel fields |
vehicle.type | Not required | Set to sea |
| Station/port codes | Not used | Not required — use address instead |
Field by Field
senders[].company.transportation_data
senders[].company.transportation_data| Field | Required | What to send |
|---|---|---|
date_time | Yes | Departure datetime ISO 8601 from the port of origin. |
traffic_type | Yes | SAT c_NavegacionTrafico code. Classifies the maritime route type. |
distance | Yes | Distance in km between origin and destination ports. |
traffic_type values
traffic_type values| Value | Description | When to use |
|---|---|---|
01 | Cabotaje | Transport between Mexican ports (domestic). Most common. |
02 | Altura | International maritime transport. |
beneficiaries[].company.transportation_data
beneficiaries[].company.transportation_dataOnly date_time is needed for the destination. No traffic_type or distance.
transportation_companies[]
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
vehicle — VesselSet vehicle.type to sea. All attributes sent as categories[] entries.
Required fields
list value | What to send in code | SAT field |
|---|---|---|
vessel type | SAT c_ConfigMaritima code | TipoEmbarcacion |
vessel plate | Vessel registration / matricula number | Matricula |
OMI number | 7-digit IMO number assigned to the vessel | NumeroOMI |
vessel country | Country of registration ISO code (e.g. MX) | NacionalidadEmbarc |
gross tonnage | Gross tonnage of the vessel in tons | UnidadesDeArqBruto |
cargo type | SAT c_ClaveTipoCarga code | TipoCarga |
shipping agent | Full name of the shipping agent company | NombreAgenteNaviero |
shipping authorization number | Shipping agent authorization number | NumAutorizacionNaviero |
Optional fields
list value | What to send in code | SAT field |
|---|---|---|
insurance name | Insurer name | NombreAseg |
insurance policy number | Policy number | NumPolizaSeguro |
voyage number | Voyage number | NumViaje |
bill of lading number | Bill of lading number | NumConocEmbarc |
container type | SAT c_ContenedorMaritimo code | TipoContenedor |
container plate | Container identification number | MatriculaContenedor |
seal number | Container seal number | NumPrecinto |
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
| Mistake | What happens | Fix |
|---|---|---|
traffic_type missing in senders | SAT validation error | Always required for sea transport in origin location |
distance included in beneficiaries | Brinta validation error | Only include distance in senders |
OMI number wrong digit count | SAT rejects the document | Must be exactly 7 digits |
| Container fields omitted for containerized cargo | Incomplete CFDI | Include container type, container plate, seal number when applicable |
vessel type not a valid c_ConfigMaritima code | SAT validation error | Use the SAT catalog code, not a free-text description |
Updated 4 days ago
