Web API Docs API Reference
Epack Envíos API Documentation.
To start making queries to the API, you need an API Key enabled by the Epack team. Request your access at epackenvios.com and we will provide you with your credentials.
It's easy and fast — just quote, choose a rate and request your shipment.
API Endpoint
https://api.epackenvios.com/v1
Request Content-Types: application/json
Response Content-Types: application/json
Schemes: https
Version: 1.0
Quote
Request Quote
Request Body
required
weight in kg, greater than 0
required
length in cm
required
width in cm
required
height in cm
required
origin postal code, 5 digits
required
destination postal code. 5 digits for Mexico; a valid ZIP code when the recipient is in the US
turn on/off ltl
LTL service conditions (maximum per shipment):
- Estafeta: up to 120 cm × 105 cm × 180 cm, maximum weight 1,100 kg.
- Tresguerras: up to 120 cm × 120 cm × 180 cm, maximum weight 1,000 kg.
- PMM: up to 105 cm × 120 cm × 180 cm, maximum weight 1,000 kg.
- Paquetexpress: base rate up to 105 cm × 120 cm × 150 cm, maximum weight 500 kg.
turn on/off assurance
value of assurance
enable pickup
send 1 if the recipient is outside of mexico
Quote only with the selected curriers. Each value is the carrier name in lowercase, e.g.
["dhl","estafeta","fedex","paquetexpress","ups","pmm","tresguerras"] weight quoted by Epack. Half kilos are not quoted: the weight is always rounded up to the next whole number, e.g. a 2.5 kg package is quoted as 3 kg
billed weight: the weight tier available at the carrier, which is the one charged. E.g. if the carrier only offers the 5 kg tier, 5 kg is charged
quote identifier. Only required by Create for LTL shipments. Valid for 45 minutes; after that, quote again
Request Example
{
"ltl": "0",
"shipperZip": "55100",
"recipientZip": "44550",
"weight": "5",
"large": "10",
"width": "1",
"height": "1",
"secure": "0",
"secureValue": "0",
"pickup": "0",
"international": "0",
"content": "cotizacion",
"shipperCountry": "MX",
"shipperState": "México",
"shipperCity": "Ecatepec De Morelos",
"shipperSuburb": "Bosque Escondido", // Required for LTL
"recipientCountry": "MX",
"recipientState": "Quintana Roo",
"recipientCity": "Benito Juarez",
"recipientSuburb": "Centro", // Required for LTL
"curriers": ["dhl","fedex","estafeta","paquetexpress","ups"]
}
Request processed.
Unauthorized.
Access denied.
Bad Request.
Error.
Response Example (200 OK)
{
"success": true,
"status": 200,
"message": "The request has been completed successfully.",
"data": [
{
"Service": "Dia Sig.",
"Currier": "estafeta",
"CodigoServicio": "Dia Sig.",
"ExtendZone": false,
"ForceOcurre": false,
"DiasEntrega": {
"Miercoles": "X",
"Martes": "X",
"Viernes": "X",
"Lunes": "X",
"Domingo": "",
"Jueves": "X",
"Sabado": "X"
},
"Total": "320.10",
"Price": "320.10",
"PriceObj": {
"Price": "330.00",
"Secure": 0,
"ExtendZone": 0,
"Discount": "9.90",
"Measure": 0
},
"Weight": 5,
"CurrierWeight": "5"
},
{
"Service": "Terrestre",
"Currier": "estafeta",
"CodigoServicio": "Terrestre",
"ExtendZone": false,
"ForceOcurre": false,
"DiasEntrega": {
"Miercoles": "X",
"Martes": "X",
"Viernes": "X",
"Lunes": "X",
"Domingo": "",
"Jueves": "X",
"Sabado": "X"
},
"Total": "174.60",
"Price": "174.60",
"PriceObj": {
"Price": "180.00",
"Secure": 0,
"ExtendZone": 0,
"Discount": "5.40",
"Measure": 0
},
"Weight": 5,
"CurrierWeight": "5"
},
{
"Service": "2 Dias",
"Currier": "estafeta",
"CodigoServicio": "2 Dias",
"ExtendZone": false,
"ForceOcurre": false,
"DiasEntrega": {
"Miercoles": "X",
"Martes": "X",
"Viernes": "X",
"Lunes": "X",
"Domingo": "",
"Jueves": "X",
"Sabado": "X"
},
"Total": "315.25",
"Price": "315.25",
"PriceObj": {
"Price": "325.00",
"Secure": 0,
"ExtendZone": 0,
"Discount": "9.75",
"Measure": 0
},
"Weight": 5,
"CurrierWeight": "5",
"QuoteId": "q_69f0e949b02598.87109754"
}
]
}
| Header | Value |
|---|---|
| x-api-key | {{YOUR_APIKEY}} |
Create
Request Create
Request Body
required
name of the currier, in lowercase, e.g.
dhl required
name of the service to use, as returned by Quote in
Service required
weight in kg, greater than 0
required
length in cm
required
width in cm
required
height in cm
required
content description
required
turn on/off assurance
required
value of assurance (send 0 if not insured)
required for national shipments, greater than 0
declared value
turn on/off ltl
LTL service conditions (maximum per shipment):
- Estafeta: up to 120 cm × 105 cm × 180 cm, maximum weight 1,100 kg.
- Tresguerras: up to 120 cm × 120 cm × 180 cm, maximum weight 1,000 kg.
- PMM: up to 105 cm × 120 cm × 180 cm, maximum weight 1,000 kg.
- Paquetexpress: base rate up to 105 cm × 120 cm × 150 cm, maximum weight 500 kg.
required only for LTL shipments. Valid for 45 minutes after the quote; if expired, quote again
enable pickup
send 1 if the recipient is outside of mexico
required
origin postal code, 5 digits
required for estafeta, maximum 50 characters
origin street
required
origin suburb, maximum 35 characters
required
sender name, maximum 35 characters
required
sender phone, 10 digits
required for national shipments
sender tax id (RFC), 12 to 13 characters
required
sender company name, maximum 35 characters
required
origin country code, 2 letters, e.g.
MX required
origin state, maximum 35 characters
required
origin city, maximum 35 characters
required
destination postal code. 5 digits for Mexico; a valid ZIP code when the recipient is in the US
required
recipient name, maximum 35 characters
required
recipient tax id, 12 to 13 characters
required
recipient company name, maximum 35 characters
required
destination country code, 2 letters, e.g.
MX, US required for national shipments
destination state, maximum 35 characters
required
destination city, maximum 35 characters
required for international shipments to the US
recipient identifier
Request Example
{
"ltl": "0",
"isDocument": "0",
"shipperZip": "44200",
"recipientZip": "06100",
"weight": "50",
"large": "10",
"width": "10",
"height": "10",
"secure": "0",
"secureValue": "0",
"declaredValue": "100",
"description": "Test shipment",
"customs": "0",
"pickup": "0",
"international": "0",
"recipientCity": "Aragon",
"shipperCity": "Guadalajara",
"recipientCountry": "MX",
"shipperCountry": "MX",
"currier": "dhl",
"recipientStreet": "Calle 1",
"recipientStreet2": "Calle 2",
"recipientStreetB2": "Between 2",
"recipientStreetB1": "Between 1",
"recipientSuburb": "Mesoamerica",
"recipientName": "Jhon Reyes",
"recipientState": "Sonora",
"recipientPhone": "TELEFONO",
"shipperStreet": "Lojeños L9 Mza18",
"shipperStreet2": "2Lojeños L9 Mza18",
"shipperStreetB2": "Between 2",
"shipperStreetB1": "Between 1",
"shipperSuburb": "Huentitán el bajo",
"shipperState": "Jalisco",
"shipperName": "Jhon Doe",
"shipperPhone": "TELEFONO",
"recipientTaxId": "123456789120",
"shipperTaxId": "123456789120",
"shipperCompanyName": "Jhon Doe",
"recipientCompanyName": "NAME",
"recipientExternalNum": "123",
"recipientInternalNum": "123",
"shipperExternalNum": "321",
"shipperInternalNum": "123",
"pickupHour": "0",
"service":"ECONOMY SELECT DOMESTIC",
"SatProductCode":"10131508",
"SatQuantity":1,
"SatUnitOfMeasure":"F63",
"labelQuantity": 1,
"quoteId": "q_69f0e949b02598.87109754" // Required for LTL
}
{
"currier": "dhl",
"service": "EXPRESS WORLDWIDE",
"weight": "35",
"large": "53",
"width": "53",
"height": "55",
"secure": "0",
"secureValue": "0",
"declaredValue": "0",
"description": "Test shipment",
"shipperZip": "45138",
"shipperStreet": "Test Street 1",
"shipperStreet2": "",
"shipperSuburb": "Centro",
"shipperName": "John Doe",
"shipperPhone": "5555555555",
"shipperTaxId": "XAXX010101000",
"shipperCompanyName": "John Doe",
"shipperCountry": "MX",
"shipperState": "Jalisco",
"shipperCity": "Zapopan",
"recipientZip": "11223",
"recipientStreet": "Test Street 2",
"recipientStreet2": "",
"recipientSuburb": "",
"recipientName": "Jane Roe",
"recipientLada": "US|1",
"recipientPhone": "5555555555",
"recipientEmail": "[email protected]",
"recipientTaxId": "XAXX010101000",
"recipientCompanyName": "Jane Roe",
"recipientCountry": "US",
"recipientState": "New York",
"recipientCity": "Brooklyn",
"recipientIdentifierCIF": "111",
"observations": "",
"international": "1",
"pickup": "0",
"pickupHour": "0",
"SatProductCode": "01010101",
"SatUnitOfMeasure": "KG",
"unitOfMeasure": "KG",
"SatQuantity": "1",
"labelQuantity": "1",
"customs": "0",
"products": [
{
"description": "Test product",
"madein": "MX",
"quantity": "1",
"unity": "PCS",
"usd": "10"
}
],
"categorie": "gift",
"isDocument": "0",
"waNotify": "0",
"ltl": "0"
}
Request processed.
Unauthorized.
Access denied.
Bad Request.
Error.
Response Example (200 OK)
{
"success": true,
"status": 200,
"message": "The request has been completed successfully.",
"data": {
"tracking": "XXX11111",
"pdf": "https://app.epackenvios.com/tracking/XXX11111.pdf",
"pdf_b64": "JVBERi0xLjQK...",
"pickup": "1000629474"
}
}
| Header | Value |
|---|---|
| x-api-key | {{YOUR_APIKEY}} |
Cancel
Request Cancel
Request Example
{
"tracking": "12345678890"
}
Request processed.
Unauthorized.
Access denied.
Bad Request.
Error.
Response Example (200 OK)
{
"success": true,
"status": 200,
"message": "The request has been completed successfully.",
"data": {
"title": "Cancelación enviada",
"message": "Una vez que se confirme que su etiqueta está cancelada, se le reembolsará dentro de 24 a 48 horas."
}
}
| Header | Value |
|---|---|
| x-api-key | {{YOUR_APIKEY}} |
Pickup
Request Pickup
Request Example
{
"tracking": "286182639916",
"date": "2025-12-10",
"time": "vespertino"
}
Request processed.
Unauthorized.
Access denied.
Bad Request.
Error.
Response Example (200 OK)
{
"success": true,
"status": 200,
"message": "The request has been completed successfully.",
"data": {
"pickup_number": "AME251211000215",
"pickup_datetime": "2025-12-10"
}
}
| Header | Value |
|---|---|
| x-api-key | {{YOUR_APIKEY}} |
Tracking
Request Tracking
Request Example
{
"tracking": "2833961243"
}
Request processed.
Unauthorized.
Access denied.
Bad Request.
Error.
Response Example (200 OK)
{
"success": true,
"status": 200,
"message": "The request has been completed successfully.",
"data": {
"status": "Envío entregado",
"typeCode": "OK",
"pieces": {
"dimensionalWeight": "1.18",
"actualWeight": "0.40",
"actualDimensions": {
"length": "28.10",
"width": "20.30",
"height": "10.30"
}
},
"events": [
{
"date": "2026-06-02T16:07:59",
"description": "Retiro programado",
"signedBy": null,
"typeCode": "SA"
},
{
"date": "2026-06-02T18:30:10",
"description": "Envío retirado/recolectado.",
"signedBy": null,
"typeCode": "PU"
},
{
"date": "2026-06-02T21:25:12",
"description": "Procesado en GUADALAJARA-MEXICO",
"signedBy": null,
"typeCode": "PL"
},
{
"date": "2026-06-02T21:26:58",
"description": "El envío ha salido de un centro de DHL GUADALAJARA-MEXICO",
"signedBy": null,
"typeCode": "DF"
},
{
"date": "2026-06-03T03:30:38",
"description": "Llegada al centro de clasificación de DHL QUERETARO-MEXICO",
"signedBy": null,
"typeCode": "AF"
},
{
"date": "2026-06-03T04:27:58",
"description": "Procesado en QUERETARO-MEXICO",
"signedBy": null,
"typeCode": "PL"
},
{
"date": "2026-06-03T04:32:58",
"description": "El envío ha salido de un centro de DHL QUERETARO-MEXICO",
"signedBy": null,
"typeCode": "DF"
},
{
"date": "2026-06-03T07:01:00",
"description": "Llegada al centro de clasificación de DHL MEXICO CITY HUB-MEXICO",
"signedBy": null,
"typeCode": "AF"
},
{
"date": "2026-06-03T11:08:16",
"description": "Procesado en MEXICO CITY HUB-MEXICO",
"signedBy": null,
"typeCode": "PL"
},
{
"date": "2026-06-03T11:17:58",
"description": "El envío ha salido de un centro de DHL MEXICO CITY HUB-MEXICO",
"signedBy": null,
"typeCode": "DF"
},
{
"date": "2026-06-03T12:12:58",
"description": "Llegada al centro de entrega de DHL HUICHAPAN-MIGUEL HIDALGO,DF-MEXICO",
"signedBy": null,
"typeCode": "AR"
},
{
"date": "2026-06-03T15:30:30",
"description": "El envío está en manos del courier para su entrega",
"signedBy": null,
"typeCode": "WC"
},
{
"date": "2026-06-03T17:01:07",
"description": "Envío entregado",
"signedBy": "",
"typeCode": "OK"
}
],
"serviceId": null,
"shipperDetails": {
"cityName": "",
"postalCode": "",
"countryCode": "MX"
},
"tracking": "2833961243"
}
}
| Header | Value |
|---|---|
| x-api-key | {{YOUR_APIKEY}} |
Addresses
Request Addresses
Query Parameters
postal code to look up
Query String Example
GET /Addresses/{zip}
Request processed.
Unauthorized.
Access denied.
Bad Request.
Error.
Response Example (200 OK)
{
"success": true,
"status": 200,
"message": "The request has been completed successfully.",
"data": {
"idEstado": "14",
"codEstado": "JC",
"estado": "Jalisco",
"idMunicipio": "39",
"municipio": "Guadalajara",
"ciudad": "Guadalajara",
"colonias": [
{
"zona": "Urbano",
"cp": "44100",
"asentamiento": "Guadalajara Centro",
"tipo": "Colonia",
"estado": "Jalisco"
}
]
}
}
| Header | Value |
|---|---|
| x-api-key | {{YOUR_APIKEY}} |
Addresses-International
Request Addresses-International
Path Parameters
country code, e.g.
US, CA, MX postal code to look up
Query String Example
GET /Addresses/{country_code}/{zip}
Request processed.
Unauthorized.
Access denied.
Bad Request.
Error.
Response Example (200 OK)
{
"success": true,
"status": 200,
"message": "The request has been completed successfully.",
"data": {
"typeahead": [
"33000 - Miami - Florida - FL"
],
"postal_code": "33000",
"country_code": "US",
"city": "Miami",
"state": "Florida",
"state_code": "FL"
}
}
| Header | Value |
|---|---|
| x-api-key | {{YOUR_APIKEY}} |