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

POST /Quote
Request Body
weight
number
required
weight in kg, greater than 0
large
number
required
length in cm
width
number
required
width in cm
height
number
required
height in cm
shipperZip
string
required
origin postal code, 5 digits
recipientZip
string
required
destination postal code. 5 digits for Mexico; a valid ZIP code when the recipient is in the US
ltl
boolean
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.
secure
boolean
turn on/off assurance
secureValue
decimal
value of assurance
pickup
boolean
enable pickup
international
boolean
send 1 if the recipient is outside of mexico
curriers
array
Quote only with the selected curriers. Each value is the carrier name in lowercase, e.g. ["dhl","estafeta","fedex","paquetexpress","ups","pmm","tresguerras"]
Weight (response)
number
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
CurrierWeight (response)
string
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
QuoteId (response)
string
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"]
}
200 OK
Response

Request processed.

401 Unauthorized

Unauthorized.

403 Forbidden

Access denied.

404 Bad Request

Bad Request.

500

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

POST /Create
Request Body
currier
string
required
name of the currier, in lowercase, e.g. dhl
service
string
required
name of the service to use, as returned by Quote in Service
weight
number
required
weight in kg, greater than 0
large
number
required
length in cm
width
number
required
width in cm
height
number
required
height in cm
description
string
required
content description
secure
boolean
required
turn on/off assurance
secureValue
decimal
required
value of assurance (send 0 if not insured)
declaredValue
decimal
required for national shipments, greater than 0
declared value
ltl
boolean
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.
quoteId
string
required only for LTL shipments. Valid for 45 minutes after the quote; if expired, quote again
pickup
boolean
enable pickup
international
boolean
send 1 if the recipient is outside of mexico
shipperZip
string
required
origin postal code, 5 digits
shipperStreet
string
required for estafeta, maximum 50 characters
origin street
shipperSuburb
string
required
origin suburb, maximum 35 characters
shipperName
string
required
sender name, maximum 35 characters
shipperPhone
string
required
sender phone, 10 digits
shipperTaxId
string
required for national shipments
sender tax id (RFC), 12 to 13 characters
shipperCompanyName
string
required
sender company name, maximum 35 characters
shipperCountry
string
required
origin country code, 2 letters, e.g. MX
shipperState
string
required
origin state, maximum 35 characters
shipperCity
string
required
origin city, maximum 35 characters
recipientZip
string
required
destination postal code. 5 digits for Mexico; a valid ZIP code when the recipient is in the US
recipientName
string
required
recipient name, maximum 35 characters
recipientTaxId
string
required
recipient tax id, 12 to 13 characters
recipientCompanyName
string
required
recipient company name, maximum 35 characters
recipientCountry
string
required
destination country code, 2 letters, e.g. MX, US
recipientState
string
required for national shipments
destination state, maximum 35 characters
recipientCity
string
required
destination city, maximum 35 characters
recipientIdentifierCIF
string
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
}
200 OK
Response

Request processed.

401 Unauthorized

Unauthorized.

403 Forbidden

Access denied.

404 Bad Request

Bad Request.

500

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

POST /Cancel
Request Example

{
	"tracking": "12345678890"
}
200 OK
Response

Request processed.

401 Unauthorized

Unauthorized.

403 Forbidden

Access denied.

404 Bad Request

Bad Request.

500

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

POST /Pickup
Request Example

{
    "tracking": "286182639916",
    "date": "2025-12-10",
    "time": "vespertino"
}
200 OK
Response

Request processed.

401 Unauthorized

Unauthorized.

403 Forbidden

Access denied.

404 Bad Request

Bad Request.

500

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

POST /Tracking
Request Example

{
    "tracking": "2833961243"
}
200 OK
Response

Request processed.

401 Unauthorized

Unauthorized.

403 Forbidden

Access denied.

404 Bad Request

Bad Request.

500

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

GET /Addresses/{zip}
Query Parameters
zip
string
postal code to look up
Query String Example
GET /Addresses/{zip}
200 OK
Response

Request processed.

401 Unauthorized

Unauthorized.

403 Forbidden

Access denied.

404 Bad Request

Bad Request.

500

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

GET /Addresses/{country_code}/{zip}
Path Parameters
country_code
string (ISO 3166-1 alpha-2)
country code, e.g. US, CA, MX
zip
string
postal code to look up
Query String Example
GET /Addresses/{country_code}/{zip}
200 OK
Response

Request processed.

401 Unauthorized

Unauthorized.

403 Forbidden

Access denied.

404 Bad Request

Bad Request.

500

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}}