[MX] Bill of Lading — Rail (Carta Porte Transporte Ferroviario)

Overview

A Bill of Lading for rail transport in Mexico is a CFDI Carta Porte 3.1 — Transporte Ferroviario. Use this document to certify the transport of goods by train.

FieldValue
invoice_typetransport
document_typebill of lading rail
e_invoicetrue
currencyMXN

Key Differences from Road

  • senders[].company.transportation_data includes station fields: station_external_id, station_name, station_type.
  • vehicle.categories[] uses rail-specific list values: railcar type, railcar plate, service type, right of way, etc.
  • vehicle.type should be set to rail.
  • transportation_companies[] can include both the rail company (02) and the operator (01).

Key Fields

senders[].company.transportation_data

FieldRequiredDescription
date_timeYesDeparture datetime ISO 8601.
station_external_idYesSICT station code (e.g. SLP-01). Maps to NumEstacion.
station_nameYesStation name. Maps to NombreEstacion.
station_typeYes01 = origin station. Maps to c_TipoEstacion.
distanceYesDistance in km.

vehicle — Rail

list valueRequiredCFDI mapping
service typeYesc_TipoDeServicio
traffic typeYesc_TipoDeTrafico
right of wayYesc_DerechosDePaso
paid kmYesKilometrajePagado
railcar typeYesc_TipoCarro
railcar plateYesMatriculaCarro
waybill numberYesGuiaCarro
railcar net tonnageYesToneladasNetasCarro
container typeNoc_Contenedor
empty container weightNoPesoContenedorVacio
merchandise net weightNoPesoNetoMercancia
insurance nameNoNombreAseg
insurance policy numberNoNumPolizaSeguro

Example Payload

{
  "supplier_company_id": "{{company_id}}",
  "invoice_type": "transport",
  "document_type": "bill of lading rail",
  "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": "Calle Ferrocarril 1", "state": "MX-SLP", "country": "MX", "postal_code": "78090" },
        "tax_registrations": [
          { "type": "RFC", "number": "REM930215S87", "level": "country", "location": "MX" }
        ],
        "transportation_data": {
          "date_time": "2025-09-03T06:00:00",
          "station_external_id": "SLP-01",
          "station_name": "Estacion San Luis Potosi",
          "station_type": "01",
          "distance": 630.0
        }
      }
    }
  ],
  "beneficiaries": [
    {
      "company": {
        "name": "DESTINATARIO EJEMPLO S.A. DE C.V.",
        "type": "business",
        "address": { "address_line_1": "Blvd. Industrial 300", "state": "MX-CHH", "country": "MX", "postal_code": "32470" },
        "tax_registrations": [
          { "type": "RFC", "number": "DES890423H71", "level": "country", "location": "MX" }
        ],
        "transportation_data": { "date_time": "2025-09-05T20:00:00" }
      }
    }
  ],
  "vehicle": {
    "type": "rail",
    "categories": [
      { "code": "01", "list": "service type" },
      { "code": "01", "list": "traffic type" },
      { "code": "01", "list": "right of way" },
      { "code": "630", "list": "paid km" },
      { "code": "BOXC", "list": "railcar type" },
      { "code": "FERR-1234", "list": "railcar plate" },
      { "code": "WB-2025-001", "list": "waybill number" },
      { "code": "90", "list": "railcar net tonnage" },
      { "code": "TC", "list": "container type" },
      { "code": "1000.00", "list": "empty container weight" },
      { "code": "99000.00", "list": "merchandise net weight" },
      { "code": "QUALITAS", "list": "insurance name" },
      { "code": "QUA-123456", "list": "insurance policy number" }
    ]
  },
  "transportation_companies": [
    {
      "company": {
        "name": "FERROVIARIA EJEMPLO S.A. DE C.V.",
        "type": "02",
        "address": { "address_line_1": "Av. Insurgentes Sur 1000", "state": "MX-CMX", "country": "MX", "postal_code": "03100" },
        "tax_registrations": [
          { "type": "RFC", "number": "FEJ020101CD3", "level": "country", "location": "MX" }
        ],
        "transportation_data": { "vehicle_type": "01" }
      }
    },
    {
      "company": {
        "name": "CARLOS ROMERO HERNANDEZ",
        "type": "01",
        "address": { "address_line_1": "Calle Juarez 55", "state": "MX-SLP", "country": "MX", "postal_code": "78000" },
        "tax_registrations": [
          { "type": "RFC", "number": "ROHC750820EF5", "level": "country", "location": "MX" }
        ],
        "transportation_data": { "vehicle_type": "01" }
      }
    }
  ]
}

Notes

  • Rail transport commonly has two figures in transportation_companies: the rail company (type: "02" Propietario) and the operator/driver (type: "01" Operador).
  • right of way maps to SAT c_DerechosDePaso — the type of track rights used.
  • paid km is the distance in kilometers actually paid for the right of way.
  • Station fields (station_external_id, station_name, station_type) are required for rail, same as air transport.