[PE] Transport — Guia de Remision

What is a Guia de Remision?

A Guia de Remision is the electronic transport document in Peru that certifies the movement of goods from an origin to a destination. It is submitted to SUNAT via Brinta and must accompany the goods during transport.

FieldValue
invoice_typetransport
document_typetransport
e_invoicetrue
currencyPEN

Key Differences from MX Transport

FeatureMexico (Carta Porte)Peru (Guia de Remision)
Items categories fieldcategories[] (plural)category[] (singular)
Municipality fieldmunicipality (string)municipality_code (SUNAT numeric code)
Driver identityRFC + license number MXDNI + license number
Company identityRFCRUC
Transport figuresSAT codes 01/02/03/04business or person
Station dataIn senders/beneficiariesIn transportation_companies

Field by Field

Root Level

invoice_serie

SUNAT document series. For transport documents, typically starts with T (e.g. TDOC, T001).

invoice_number

Sequential document number. Must be unique per series.

reason

SUNAT transport reason code. Classifies why the goods are being moved.

ValueDescriptionWhen to use
01SaleGoods moving due to a commercial sale
02PurchaseGoods moving due to a purchase
03ReturnGoods being returned
04Transfer between own warehousesInternal stock movement
05ConsignmentGoods sent on consignment
13OthersAny other reason

additional_info

Free text that appears on the document. Optional — use for any relevant notes about the shipment.


buyer

The recipient of the goods from a commercial perspective — not necessarily the destination company.

tax_registrations[].type

Always RUC for Peruvian companies. RUC is the 11-digit SUNAT tax ID.


senders[] — Origin

The location where the goods are picked up.

company.address.municipality_code

SUNAT ubigeo code — a 6-digit numeric code that identifies the district in Peru.

  • This is not a postal code. It is Peru's official geographic classification code.
  • Example: 150132 = Lima, Lima, San Isidro.
  • Find codes at the official SUNAT ubigeo catalog or ask your local tax advisor.
  • Required for all Peruvian addresses in transport documents.

company.tax_registrations[].type

Use RUC for companies.


beneficiaries[] — Destination

Same structure as senders[]. Full address with municipality_code required.

company.email

Optional. If provided, SUNAT may use this for digital delivery of the document.


transportation_companies[]

Peru transport requires two entries: the carrier company and the driver.

Entry 1 — Carrier Company

FieldWhat to send
company.typebusiness
company.tax_registrations[].typeRUC
company.address.municipality_codeSUNAT ubigeo code
company.transportation_data.station_date_timeDeparture date in YYYY-MM-DD format (date only, not datetime)
company.transportation_data.station_external_idIATA or port code of the departure point (e.g. LIM for Lima)

Entry 2 — Driver

FieldWhat to send
company.typeperson
company.name / company.legal_nameDriver's full name
company.address.municipality_codeSUNAT ubigeo code
tax_registrations[].type = "DNI"Driver's national identity document number
tax_registrations[].type = "license number"Driver's license number (use license number — not license number MX)

Both DNI and license number are required for the driver. Send them as two separate entries in tax_registrations[].


vehicle

Uses categories[] (plural, same as MX). Only two fields for Peru:

list valueWhat to send in codeRequired
plateVehicle license plateYes
container plateContainer plate if applicableNo

items[]

amount

Use 0 when the document is purely a transport record with no commercial value (e.g. internal warehouse transfer). Use the actual value if goods have a declared commercial value.

category[] ← singular, not categories[]

list valueWhat to send in codeRequiredSUNAT mapping
SUNAT codeSUNAT product/service codeYesSUNAT catalog code
unitUnit code (e.g. NIU for unit, KGM for kg)YesUnit of measure
gross weightTotal weight of the itemYesGross weight
weight unitWeight unit code (e.g. KGM)YesWeight unit
transport quantityQuantity being transportedYesTransport quantity
transport codeSUNAT transport reason code (same as root reason)YesTransport motive
DAM codeCustoms declaration numberNoFor imported goods
order numberPurchase or shipment order referenceNoReference only

relations[] — Related Documents

Optional. Use to reference the commercial invoice or previous transport documents associated with this shipment.

When to include supplier

Only include relations[].supplier when the related invoice was issued by a different company than the one issuing the Guia de Remision.

ScenarioInclude supplier?
Same company issued the invoice and the transport document❌ No
Different company issued the related invoice✅ Yes

Full Example Payload

{
  "supplier_company_id": "{{company_id}}",
  "invoice_type": "transport",
  "document_type": "transport",
  "e_invoice": true,
  "currency": "PEN",
  "invoice_serie": "TDOC",
  "invoice_number": "12345677",
  "invoice_date": "2026-02-25",
  "reason": "02",
  // 02 = purchase — goods moving due to a purchase
  "additional_info": "Fragile merchandise, handle with care",
  "buyer": {
    "company": {
      "name": "Buyer Company",
      "legal_name": "Buyer Company SAC",
      "type": "business",
      "address": {
        "postal_code": "28020",
        "address_line_1": "456 Main St",
        "state": "PE-LIM",
        "country": "PE"
      },
      "tax_registrations": [
        { "type": "RUC", "number": "20512488576", "level": "country", "location": "PE" }
      ]
    }
  },
  "senders": [
    {
      "company": {
        "name": "Sender Company",
        "legal_name": "Sender Company SAC",
        "type": "business",
        "address": {
          "address_line_1": "789 2nd St",
          "city": "Lima",
          "municipality_code": "150132",
          // SUNAT ubigeo — 6-digit district code
          "state": "PE-LIM",
          "country": "PE"
        },
        "tax_registrations": [
          { "type": "RUC", "number": "20614677482", "level": "country", "location": "PE" }
        ]
      }
    }
  ],
  "beneficiaries": [
    {
      "company": {
        "name": "Beneficiary Company",
        "legal_name": "Beneficiary Company SAC",
        "type": "business",
        "email": "[email protected]",
        "address": {
          "address_line_1": "456 Main St",
          "city": "Lima",
          "municipality_code": "150122",
          // Different district from sender
          "state": "PE-LIM",
          "country": "PE"
        },
        "tax_registrations": [
          { "type": "RUC", "number": "20512488235", "level": "country", "location": "PE" }
        ]
      }
    }
  ],
  "transportation_companies": [
    {
      // Entry 1: Carrier company
      "company": {
        "name": "Transportation Company",
        "legal_name": "Transportation Company SAC",
        "type": "business",
        "address": { "municipality_code": "150132", "state": "PE-LIM", "country": "PE" },
        "tax_registrations": [
          { "type": "RUC", "number": "20618692845", "level": "country", "location": "PE" }
        ],
        "transportation_data": {
          "station_date_time": "2026-01-01",
          // Date only — YYYY-MM-DD, not datetime
          "station_external_id": "LIM"
          // IATA or port code of departure
        }
      }
    },
    {
      // Entry 2: Driver
      "company": {
        "name": "JOSE PEREZ",
        "legal_name": "JOSE PEREZ",
        "type": "person",
        "address": { "municipality_code": "150132", "state": "PE-LIM", "country": "PE" },
        "tax_registrations": [
          { "type": "DNI", "number": "5559655932", "level": "country", "location": "PE" },
          // National identity document
          { "type": "license number", "number": "5559655932", "level": "country", "location": "PE" }
          // Driver's license — use "license number", not "license number MX"
        ]
      }
    }
  ],
  "vehicle": {
    "categories": [
      { "code": "PDR3449", "list": "plate" },
      { "code": "LDR5966", "list": "container plate" }
    ]
  },
  "items": [
    {
      "name": "Item 1",
      "quantity": 2,
      "amount": 0,
      // 0 for internal transfers with no commercial value
      "category": [
        // Note: "category" singular — not "categories"
        { "code": "31201506", "list": "SUNAT code" },
        { "code": "NIU", "list": "unit" },
        { "code": "54", "list": "gross weight" },
        { "code": "KGM", "list": "weight unit" },
        { "code": "2", "list": "transport quantity" },
        { "code": "02", "list": "transport code" }
        // Same value as root "reason"
      ]
    }
  ],
  "relations": [
    {
      "invoice_type": "debit",
      "document_type": "invoice",
      "invoice_number": "64945",
      "invoice_serie": "FE",
      "currency": "PEN",
      "supplier": {
        // Only include when the related invoice is from a DIFFERENT company
        "company": {
          "name": "Supplier Company SAC",
          "type": "business",
          "address": { "city": "Lima", "municipality_code": "150132", "state": "PE-LIM", "country": "PE" },
          "tax_registrations": [
            { "type": "RUC", "number": "20618928810", "level": "country", "location": "PE" }
          ]
        }
      },
      "items": [
        {
          "name": "Item 1",
          "quantity": 2,
          "amount": "100",
          "category": [{ "code": "UN", "list": "unit" }]
        }
      ]
    }
  ]
}

Common Mistakes

MistakeWhat happensFix
Using categories[] instead of category[] in itemsBrinta validation errorPeru items use category[] (singular)
municipality_code is a postal codeSUNAT validation errorUse the 6-digit SUNAT ubigeo code, not a postal code
Driver missing DNI or license numberSUNAT validation errorBoth are required for drivers
station_date_time sent as datetime instead of dateBrinta validation errorUse YYYY-MM-DD format only — no time component
license number MX used instead of license numberWrong registration typePeru drivers use license number, not license number MX
supplier included when same company issued the invoiceRedundant dataOnly include supplier when the related invoice is from a different company
transport code in items doesn't match root reasonSUNAT inconsistencyThey should be the same value