[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.
| Field | Value |
|---|---|
invoice_type | transport |
document_type | transport |
e_invoice | true |
currency | PEN |
Key Differences from MX Transport
| Feature | Mexico (Carta Porte) | Peru (Guia de Remision) |
|---|---|---|
| Items categories field | categories[] (plural) | category[] (singular) |
| Municipality field | municipality (string) | municipality_code (SUNAT numeric code) |
| Driver identity | RFC + license number MX | DNI + license number |
| Company identity | RFC | RUC |
| Transport figures | SAT codes 01/02/03/04 | business or person |
| Station data | In senders/beneficiaries | In transportation_companies |
Field by Field
Root Level
invoice_serie
invoice_serieSUNAT document series. For transport documents, typically starts with T (e.g. TDOC, T001).
invoice_number
invoice_numberSequential document number. Must be unique per series.
reason
reasonSUNAT transport reason code. Classifies why the goods are being moved.
| Value | Description | When to use |
|---|---|---|
01 | Sale | Goods moving due to a commercial sale |
02 | Purchase | Goods moving due to a purchase |
03 | Return | Goods being returned |
04 | Transfer between own warehouses | Internal stock movement |
05 | Consignment | Goods sent on consignment |
13 | Others | Any other reason |
additional_info
additional_infoFree text that appears on the document. Optional — use for any relevant notes about the shipment.
buyer
buyerThe recipient of the goods from a commercial perspective — not necessarily the destination company.
tax_registrations[].type
tax_registrations[].typeAlways RUC for Peruvian companies. RUC is the 11-digit SUNAT tax ID.
senders[] — Origin
senders[] — OriginThe location where the goods are picked up.
company.address.municipality_code
company.address.municipality_codeSUNAT 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
company.tax_registrations[].typeUse RUC for companies.
beneficiaries[] — Destination
beneficiaries[] — DestinationSame structure as senders[]. Full address with municipality_code required.
company.email
company.emailOptional. If provided, SUNAT may use this for digital delivery of the document.
transportation_companies[]
transportation_companies[]Peru transport requires two entries: the carrier company and the driver.
Entry 1 — Carrier Company
| Field | What to send |
|---|---|
company.type | business |
company.tax_registrations[].type | RUC |
company.address.municipality_code | SUNAT ubigeo code |
company.transportation_data.station_date_time | Departure date in YYYY-MM-DD format (date only, not datetime) |
company.transportation_data.station_external_id | IATA or port code of the departure point (e.g. LIM for Lima) |
Entry 2 — Driver
| Field | What to send |
|---|---|
company.type | person |
company.name / company.legal_name | Driver's full name |
company.address.municipality_code | SUNAT 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
DNIandlicense numberare required for the driver. Send them as two separate entries intax_registrations[].
vehicle
vehicleUses categories[] (plural, same as MX). Only two fields for Peru:
list value | What to send in code | Required |
|---|---|---|
plate | Vehicle license plate | Yes |
container plate | Container plate if applicable | No |
items[]
items[]amount
amountUse 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[]
category[] ← singular, not categories[]list value | What to send in code | Required | SUNAT mapping |
|---|---|---|---|
SUNAT code | SUNAT product/service code | Yes | SUNAT catalog code |
unit | Unit code (e.g. NIU for unit, KGM for kg) | Yes | Unit of measure |
gross weight | Total weight of the item | Yes | Gross weight |
weight unit | Weight unit code (e.g. KGM) | Yes | Weight unit |
transport quantity | Quantity being transported | Yes | Transport quantity |
transport code | SUNAT transport reason code (same as root reason) | Yes | Transport motive |
DAM code | Customs declaration number | No | For imported goods |
order number | Purchase or shipment order reference | No | Reference only |
relations[] — Related Documents
relations[] — Related DocumentsOptional. Use to reference the commercial invoice or previous transport documents associated with this shipment.
When to include supplier
supplierOnly include relations[].supplier when the related invoice was issued by a different company than the one issuing the Guia de Remision.
| Scenario | Include 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
| Mistake | What happens | Fix |
|---|---|---|
Using categories[] instead of category[] in items | Brinta validation error | Peru items use category[] (singular) |
municipality_code is a postal code | SUNAT validation error | Use the 6-digit SUNAT ubigeo code, not a postal code |
Driver missing DNI or license number | SUNAT validation error | Both are required for drivers |
station_date_time sent as datetime instead of date | Brinta validation error | Use YYYY-MM-DD format only — no time component |
license number MX used instead of license number | Wrong registration type | Peru drivers use license number, not license number MX |
supplier included when same company issued the invoice | Redundant data | Only include supplier when the related invoice is from a different company |
transport code in items doesn't match root reason | SUNAT inconsistency | They should be the same value |
Updated 3 days ago
