NAV Navbar


Pakkelogo
cURL

Introducción

La API de Pakke está diseña sobre REST, por lo tanto, encontrarás que las URL de los servicios están orientadas a recursos generales e individuales, además de usar códigos de respuesta HTTP estandarizados para indicar posibles errores en las peticiones.

El formato de todas las respuestas de la API, incluyendo errores, es JSON. Además, ten en cuenta que todas las propiedades de los parámetros de entrada son case-sensitive.

Por el momento, la API REST de Pakke no tiene dispobnible un ambiente de pruebas, solo se puede accesar a ella en ambiente productivo.

API Endpoints

Las URLs de los recursos de la API Pakke están formadas por la URI base más el nombre de la entidad y la operación. En otros casos, además, se requerirá especificar el identificador individual del objeto que se quiera consultar en un formato tipo entidad/operacion/{OBJECT_ID}.

La URI base que debe ser utilizada en todos los servicios expuestos de la API de Pakke es https://seller.pakke.mx/api/v1/.

Por ejemplo, si queremos obtener los servicios de envío disponibles por courier, la URL que deberíamos utilizar sería el URI base más el recurso ‘CourierServices’:

https://seller.pakke.mx/api/v1/CourierServices

Por otro lado, si estamos tratando de obtener la información de una guía en particular, la URL que se debería utilizar sería la URI base más el recurso y el identificador individual de la guía:

https://seller.pakke.mx/api/v1/Shipments/{SHIPMENT_ID}

Todas las peticiones requieren que se envíen las cabeceras HTTP adecuadas, el token de autenticación y el resto de los parámetros que cada recurso requiera en formato de objeto JSON.

Autenticación

Ejemplo de petición con autorización de llamadas de la API con la cabecera Authorization

curl -X POST
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    https://seller.pakke.mx/api/v1/CourierServices

A excepción de los recursos públicos, todos los endpoints de la API Pakke requieren de una llave de API (o token de autenticación) que identifique la cuenta de usuario que se usará para realizar las operaciones. El token de autenticación tiene que enviarse como parte de la petición HTTP como valor de la cabecera ‘Authorization’.

Existen 2 tipos de llaves de API o tokens de autenticación:

  1. Token temporal
  2. API Key.

Ambos difieren entre sí por el periodo de tiempo en el que el token es vigente: Los tokens temporales tienen un periodo de vigencia corto y las API Keys se pueden utilizar indefinidamente (al menos mientras no se solicite el cambio de la llave o se haga un reseteo de las mismas).

La decisión de usar uno u otro tipo de autenticación dependerá de las necesidades de cada integración.

Autenticación temporal

Ejemplo de petición:

curl -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{"email": "usuario@email.com", "password": "demo.1234" }' \
    https://seller.pakke.mx/api/v1/Users/login
Ejemplo de respuesta:

{
    "token": "cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK",
    "userId": "338fere-n32wdqk4k3l-4we7-a6e49-nkte2naak4",
    "ttl": 1209600,
    "created": "2018-12-07T19:31:53.554Z",
    "roles": ["END_USER"]
}

Para obtener un token temporal se necesita utilizar el endpoint /Users/login. Este servicio requiere que se envíen por POST las mismas credenciales de acceso que se utilizan para iniciar sesión en Pakke. El token generado como respuesta solo será válido por un tiempo limitado y una vez caducado ya no podrá utilizarse. Si después de eso necesitas volver a utilizar algún otro endpoint será necesario que vuelvas a generar otro token temporal válid utilizando el mismo procedimiento.

Para determinar la vigencia del token temporal puedes utilizar la información de los campos de respuesta ‘ttl’ y ‘created’.

Endpoint

POST /Users/login
No requiere autenticación

Parámetros

Campo Tipo Requerido Descripción
Email String Si Correo electrónico de la cuenta de usuario
Password String Si Contraseña de acceso de la cuenta de usuario

Respuesta

Propiedad Tipo Descripción
userId String Identificador de la cuenta de usuario
token String Token temporal
ttl Number Número de segundos de vigencia del token temporal
created String Fecha (en formato UTC) en la que se generó el token temporal
roles Array Listado de roles aplicables a la cuenta de usuario

Autenticación por API Key

Para generar un API Key sin vigencia definida solo hay que iniciar sesión en Pakke, entrar a la página ‘Mi Perfil’ ir a la sección ‘API Key’ y después dar clic en el botón ‘Regenerar’:

Este proceso lo puedes hacer las veces que sea necesario, cuando quieras cambiar tu API Key. Por favor toma en cuenta que al regenerar tu llave de API también tendrás que cambiarla en tu integración.

Errores

Ejemplo de petición errónea (sin token de autenticación) al servicio de servicios de courier

curl -X POST
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    https://seller.pakke.mx/api/v1/CourierServices

Respuesta de error

{
    "error": {
        "statusCode": 401,
        "name": "Error",
        "message": "Authorization Required",
        "code": "AUTHORIZATION_REQUIRED"
    }
}

En caso de que haya algún problema con las peticiones hechas al API de Pakke, ésta devolverá objetos de JSON cuando exista un error.

Respuesta de error

Campo Tipo Descripción
statusCode String Código​ ​HTTP​ ​de​ ​la​ ​causa​ ​del​ ​error
message String Tipificación​ ​de​ ​la​ ​excepción​ ​(uso​ ​interno)
Code String Código interno de la ​excepción​
details String Mensajes ​de​ error con ​la​s ​excepciones

Couriers y Servicios

Dentro de este apartado se incluyen los endpoints para consultar los couriers/carriers disponibles en Pakke, sus servicios y los equivalentes en la nomenclatura del API.

Couriers

Ejemplo de petición

curl -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    https://seller.pakke.mx/api/v1/Couriers

Respuesta

{
[
    {
        "CourierCode": "99M",
        "Name": "99M",
        "Status": 1,
        "VolumetricWeightFactor": 5000,
        "HasPickupActive": false
    },
    {
        "CourierCode": "STF",
        "Name": "Estafeta",
        "Status": 1,
        "VolumetricWeightFactor": 5000,
        "HasPickupActive": true
    }
]
}

Para obtener el listado de couriers activos en la plataforma, se debe utilizar el siguiente endpoint:

Endpoint

GET /Couriers

Respuesta

Un Array de objetos con información del courier

Propiedad Tipo Descripción
CourierCode String Identificador corto del courier
Name String Nombre completo del courier
Status Number Bandera para indicar si el courier está o no activo
VolumetricWeightFactor Number Factor para calcular el peso volumétrico de los paquetes
HasPickupActive Boolean Bandera para indicar si el courier permite o no recolecciones

Servicios

Ejemplo de petición

curl -X GET
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    https://seller.pakke.mx/api/v1/CourierServices

Respuesta ​-​ ​HTTP Success​ ​200

[
    {
        "CourierServiceId": "bicycle",
        "CourierCode": "99M",
        "Description": "Mismo dia bicycle",
        "DeliveryDays": "1 día hab."
    },
    {
        "CourierServiceId": "bicycle99",
        "CourierCode": "99M",
        "Description": "Express bicycle",
        "DeliveryDays": "1 día hab."
    },
    {
        "CourierServiceId": "ESTAFETA_DIA_SIGUIENTE",
        "CourierCode": "STF",
        "Description": "Dia Siguiente",
        "DeliveryDays": "1 día hab."
    },
    {
        "CourierServiceId": "ESTAFETA_TERRESTRE_CONSUMO",
        "CourierCode": "STF",
        "Description": "Terrestre Consumo",
        "DeliveryDays": "2 - 5 dias hab."
    }
]

Para obtener el listado de los servicios homologados en la plataforma, se debe utilizar el siguiente endpoint:

Endpoint

GET /CourierServices

Respuesta

Un Array de objetos con información del courier

Propiedad Tipo Descripción
CourierServiceId String Identificador de servicio de courier
CourierCode String Identificador corto del courier
Description String Descripción larga del servicio de courier
DeliveryDays String Descripción de la fecha de entrega esperada

Envíos

Dentro de esta sección se listan los endpoints para crear y consultar envíos, obtener su detalle y hacer búsquedas.

Cotización de guías

Ejemplo de petición

curl -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    -d '{
        "ZipCodeFrom": "64000",
        "ZipCodeTo": "06000",
        "Parcel": {
            "Weight": 1,
            "Width": 10,
            "Height": 10,
            "Length": 10
        },
        "CouponCode": null,
        "InsuredAmount": 1000
    }' \
    https://seller.pakke.mx/api/v1/Shipments

Respuesta

{
    "Pakke": [
        {
            "CourierCode": "STF",
            "CourierName": "Estafeta",
            "CourierServiceId": "ESTAFETA_TERRESTRE_CONSUMO",
            "CourierServiceName": "Terrestre Consumo",
            "DeliveryDays": "2-5 días hab.",
            "CouponCode": null,
            "DiscountAmount": 0,
            "TotalPrice": 85.83,
            "EstimatedDeliveryDate": "2019-07-04",
            "BestOption": true
        },
        {
            "CourierCode": "STF",
            "CourierName": "Estafeta",
            "CourierServiceId": "ESTAFETA_DIA_SIGUIENTE",
            "CourierServiceName": "Dia Siguiente",
            "DeliveryDays": "1 día hab.",
            "CouponCode": null,
            "DiscountAmount": 0,
            "TotalPrice": 117.67,
            "EstimatedDeliveryDate": "2019-07-04",
            "BestOption": false
        },
        {
            "CourierCode": "FDX",
            "CourierName": "FedEx",
            "CourierServiceId": "FEDEX_EXPRESS_SAVER",
            "CourierServiceName": "Express Saver",
            "DeliveryDays": "3 días hab.",
            "CouponCode": null,
            "DiscountAmount": 0,
            "TotalPrice": 134.75,
            "EstimatedDeliveryDate": "2019-07-04",
            "BestOption": false
        },
        {
            "CourierCode": "FDX",
            "CourierName": "FedEx",
            "CourierServiceId": "FEDEX_STANDARD_OVERNIGHT",
            "CourierServiceName": "Standard Overnight",
            "DeliveryDays": "1 día hab.",
            "CouponCode": null,
            "DiscountAmount": 0,
            "TotalPrice": 184.51,
            "EstimatedDeliveryDate": "2019-07-04",
            "BestOption": false
        }
    ]
}

Con este endpoint podrás obtener la cotización del envío de los couriers/carriers disponibles en la plataforma:

Endpoint

POST /Shipments/rates

Parámetros

Campo Tipo Requerido Descripción
ZipCodeFrom String Si Código postal origen del paquete
ZipCodeTo String Si Código postal destino del paquete
Parcel ShipmentParcel Si Información​ ​del dimensiones ​y peso del paquete
CouponCode String No Código de cupón que se aplicaría a la generación de la guía
InsuredAmount Number No Valor declarado del paquete que servirá para determinar el costo del seguro de entrega

Respuesta

Campo Tipo Descripción
Pakke Array Lista​ ​de​ ​servicios​ ​ofrecidos​ ​por​ ​Pakke

ShipmentParcel

Campo Tipo Descripción
CourierCode String Identificador corto del courier
CourierName String Nombre del courier
CourierServiceId String Identificador ​de​ ​servicio​ del courier
CourierServiceName String Nombre del ​servicio​
DeliveryDays String Descripción de los días de entrega
CouponCode String Código del cupón aplicado al costo
DiscountAmount Number Total del descuento aplicado al costo
TotalPrice Number Total del costo (ya con descuento aplicado)
BestOption Boolean Bandera que indica si el costo es el mejor (el menos costoso)

ShipmentParcel

Este objeto se utiliza para especificar las dimensiones y peso del paquete.

Campo Tipo Requerido Descripción
Length Number Si Longitud del paquete expresada en cms.
Width Number Si Ancho del paquete expresado en cms.
Height Number Si Alto del paquete expresado en cms.
Weight Number Si Peso simple del paquete expresado en cms.

Creación de guías

Ejemplo de petición

curl -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    -d '{
            "CourierCode": "FDX",
            "CourierServiceId": "ECO",
            "ResellerReference": "TCPIP-0817-23",
            "Content": "Producto",
            "AddressFrom": {
                "ZipCode": "87120",
                "State": "MX-TAM",
                "City": "Victoria",
                "Neighborhood": "Hacienda del Santuario",
                "Address1": "3301 Gamboa Ferrocarril",
                "Address2": "Apt. 149",
                "Residential": false
        },
            "AddressTo": {
                "ZipCode": "34040",
                "State": "MX-DUR",
                "City": "Durango",
                "Neighborhood": "Villa de Guadalupe",
                "Address1": "48787 Alejandro Arrabal",
                "Address2": "Apt. 845",
                "Residential": true
        },
            "Parcel": {
                "Length": 73,
                "Width": 77,
                "Height": 33,
                "Weight": 2
        },
            "Sender": {
                "Name": "Hugo Domínguez",
                "Phone1": "5627-452-122",
                "Phone2": "5621-911-389",
                "Email": "Matas_Roybal@corpfolder.com"
        },
            "Recipient": {
                "Name": "Benjamín Grijalva",
                "CompanyName": "Espinoza - Colunga",
                "Phone1": "5124-468-864",
                "Email": "Antonio.Sanabria54@nearbpo.com"
        }
    }' \
    https://seller.pakke.mx/api/v1/Shipments

Respuesta

{
    "ShipmentId": "efa1fab0-9934-11e9-829b-51a5cf8a966e",
    "ResellerId": "f9de4742-29fc-4c18-a66e-f56b8e82cd09",
    "OwnerId": "c8d1f584-ae79-4fb5-b8a4-d68bfca3c2e3",
    "OrderId": null,
    "CreatedAt": "2019-06-27T18:40:26.069-05:00",
    "ExpiresAt": "2019-07-02T18:40:26.069-05:00",
    "CourierName": "FedEx",
    "CourierCode": "FDX",
    "CourierServiceId": "FEDEX_STANDARD_OVERNIGHT",
    "CourierService": "Standard Overnight",
    "ResellerReference": "",
    "HasExceptions": false,
    "HasChangeZipCode": false,
    "SendRecipientNotifications": false,
    "InsuredAmount": 0,
    "Parcel": {
        "Length": 73,
        "Width": 77,
        "Height": 33,
        "Weight": 2
    },
    "QuotedWeight": 5,
    "RealWeight": 5,
    "RealOverWeight": 0,
    "CoveredWeight": 5,
    "OverWeight": 0,
    "OverWeightPrice": 15,
    "CoveredAmount": 225.43,
    "ExtrasAmount": 0,
    "QuotedAmount": 225.43,
    "DiscountAmount": 0,
    "CouponCode": null,
    "InsuranceAmount": 0,
    "InsurancePercentFactor": 1.2,
    "TotalAmount": 225.43,
    "OriginalWeight": 5,
    "OriginalWidth": 30,
    "OriginalLength": 40,
    "OriginalHeight": 20,
    "OriginalVolumetricWeight": 5,
    "AddressFrom": {
        "ZipCode": "87120",
        "State": "MX-TAM",
        "City": "Victoria",
        "Neighborhood": "Hacienda del Santuario",
        "Address1": "3301 Gamboa Ferrocarril",
        "Address2": "Apt. 149",
        "Residential": false
    },
    "AddressTo": {
        "ZipCode": "34040",
        "State": "MX-DUR",
        "City": "Durango",
        "Neighborhood": "Villa de Guadalupe",
        "Address1": "48787 Alejandro Arrabal",
        "Address2": "Apt. 845",
        "Residential": true
    },
    "Sender": {
        "Name": "Hugo Domínguez",
        "Phone1": "5627-452-122",
        "Phone2": "5621-911-389",
        "Email": "Matas_Roybal@corpfolder.com"
    },
    "Recipient": {
        "Name": "Benjamín Grijalva",
        "CompanyName": "Espinoza - Colunga",
        "Phone1": "5124-468-864",
        "Email": "Antonio.Sanabria54@nearbpo.com"
    },
    "Owner": "pospago@pakke.mx",
    "DaysInTransit": null,
    "EnableRefund": 1,
    "ChangeZipCode": null,
    "Content": "Accesorios",
    "transactions": [],
    "Credentials": null,
    "TrackingNumberReplaced": null,
    "Folio": null,
    "EstimatedDeliveryDate": "2019-06-28",
    "TrackingNumber": "794622745362",
    "WaybillNumber": null,
    "Label": "JVBERi0xLjQKMSA[...]FydHhyZWYKNzIyMQolJUVPRgo=",
    "Status": "SUCCESS",
    "TrackingStatus": "WAITING"
}

Este endpoint realiza el trabajo de validar los datos de entrada y enviar dichos datos al courier seleccionado para generar la etiqueta de la guía:

Endpoint

POST /Shipments

Parámetros

Campo Tipo Requerido Descripción
CourierCode String No Identificador corto de courier
CourierServiceId String No Identificador de servicio de courier
ResellerReference String No Referencia​ ​personalizada del paquete
Parcel ShipmentParcel Si Información​ ​del dimensiones ​y peso del paquete
AddressFrom ShipmentAddress Si Dirección​ ​de​ ​Envío
AddressTo ShipmentAddress Si Dirección​ ​de​ ​Entrega
Sender ShipmentContact Si Información del remitente
Recipient ShipmentContact Si Información del destinatario

Respuesta

Campo Tipo Descripción
ShipmentId String Identificador​ ​único​ ​del​ ​envío
ResellerId String Identificador​ ​de la cuenta de reseller que creó la guía
OwnerId String Identificador​ ​del​ ​reseller
CreatedAt date Fecha/hora​ ​de​ ​la​ ​creación​ ​del​ ​envío
ExpiresAt date Fecha/hora​ ​de​ expiración de la etiqueta de envío
CourierName String Nombre del courier
CourierCode String Identificador corto del courier
CourierServiceId String Identificador ​de​ ​servicio​ del courier
CourierService String Nombre del ​servicio​
ResellerReference String Referencia​ ​personalizada del paquete
HasExceptions Boolean Bandera que indica si el envío tiene excepciones de entrega
HasChangeZipCode Boolean Bandera que indica si se detectó si el envío cambió de códigos postales de entrega
SendRecipientNotifications Boolean Bandera que indica si la guía tiene activado el envío de notificaciones
InsuredAmount Number Monto del seguro de envío
Parcel ShipmentParcel Información​ ​del​ ​Paquete
AddressFrom ShipmentAddress Dirección​ ​de​ ​Envío
AddressTo ShipmentAddress Dirección​ ​de​ ​Entrega
Sender ShipmentContact Información del remitente
Recipient ShipmentContact Información del destinatario
QuotedAmount Number Precio cotizado
DiscountAmount Number Descuento
InsuranceAmount Number Costo del seguro
TotalAmount Number Costo total del paquete
OverWeightPrice Number Precio por kilo de sobrepeso
OriginalWeight Number Peso simple del paquete cotizado
OriginalWidth Number Ancho del paquete cotizado
OriginalLength Number Longitud del paquete cotizado
OriginalHeight Number Altura del paquete cotizado
OriginalVolumetricWeight Number Peso volumétrico del paquete cotizado
RealWeight Number Peso real del paquete
RealOverWeight Number Sobrepeso real del paquete
Owner String Correo electrónico del reseller
DaysInTransit Number Días en tránsito del paquete
Content String Contenido del paquete
transactions Array Array con las transacciones generadas por la guía
Status String Estatus de la guía:
  • SUCCESS​ - Envío generado
  • REFUNDED ​-​ ​Envío reembolsado
  • REFUNDPENDING -​ Envío con reembolso pendiente
  • REFUNDFAILED - Envío con reembolso fallido
TrackingNumber String Número​ ​de​ ​guía​ ​del​ ​courier
TrackingStatus String Estatus del rastreo:
  • WAITING ​-​ ​Guía generada y esperando recolección
  • IN_TRANSIT ​-​ ​Paquete en tránsito
  • ON_DELIVERY​-​ Paquete en proceso de entrega
  • DELIVERED​ - Paquete entregado
  • RETURNED - Paquete devuelto
  • CANCELLED - ​​Guía cancelada o expirada
  • EXCEPTION - Paquete con ​errores de entrega
Label String Etiqueta de la guía de envío PDF​ ​en​ formato ​base64

ShipmentParcel

Este objeto se utiliza para especificar las dimensiones y peso del paquete.

Campo Tipo Requerido Descripción
Length Number Si Longitud del paquete expresada en cms.
Width Number Si Ancho del paquete expresado en cms.
Height Number Si Alto del paquete expresado en cms.
Weight Number Si Peso simple del paquete expresado en cms.

ShipmentAddress

Este objeto representa una la dirección de envío o de entrega.

Campo Tipo Requerido Descripción
ZipCode String Si Código​ ​postal
State String Si Entidad​ ​Federativa​ ​(texto​ ​libre)
City String Si Municipio/Ciudad
Neighborhood String Si Colonia
Address1 String Si Calle y número
Address2 String Si Datos adicionales
Residential Boolean No Indica​ ​si​ ​la​ ​dirección​ ​necesita​ ​un​ ​trato especial​ ​por​ ​el​ ​courier​ ​(solo​ ​tiene​ ​efecto en​ ​la​ ​entrega)

ShipmentContact

Este objeto se usa para pare los datos de contacto del remitente o destinatario.

Campo Tipo Requerido Descripción
Name String Si Nombre​ ​del​ ​contacto
Email String No Correo​ ​electrónico
Phone1 String No Teléfono​ ​de contacto 1
Phone2 String No Teléfono​ ​de contacto 2
CompanyName String Si, solo​ para ​el​ ​destinatario Nombre de la empresa

Consulta​ ​de​ guías

Ejemplo de petición

curl -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    https://seller.pakke.mx/api/v1/Shipments/{SHIPMENT_ID}/

Respuesta​ ​-​ ​Success​ ​200

{
    {
    "ShipmentId": "efa1fab0-9934-11e9-829b-51a5cf8a966e",
    "ResellerId": "f9de4742-29fc-4c18-a66e-f56b8e82cd09",
    "OwnerId": "c8d1f584-ae79-4fb5-b8a4-d68bfca3c2e3",
    "OrderId": null,
    "CreatedAt": "2019-06-27T18:40:26.069-05:00",
    "ExpiresAt": "2019-07-02T18:40:26.069-05:00",
    "TransitAt": "2019-07-02T18:40:26.069-05:00",
    "DeliveredAt": "2019-07-02T18:40:26.069-05:00",
    "CourierName": "FedEx",
    "CourierCode": "FDX",
    "CourierServiceId": "FEDEX_STANDARD_OVERNIGHT",
    "CourierService": "Standard Overnight",
    "ResellerReference": "",
    "HasExceptions": false,
    "HasLost": false,
    "HasChangeZipCode": false,
    "SendRecipientNotifications": false,
    "InsuredAmount": 0,
    "Parcel": {
        "Length": 73,
        "Width": 77,
        "Height": 33,
        "Weight": 2
    },
    "QuotedWeight": 5,
    "RealWeight": 5,
    "RealOverWeight": 0,
    "CoveredWeight": 5,
    "OverWeight": 0,
    "OverWeightPrice": 15,
    "CoveredAmount": 225.43,
    "ExtrasAmount": 0,
    "QuotedAmount": 225.43,
    "DiscountAmount": 0,
    "CouponCode": null,
    "InsuranceAmount": 0,
    "InsurancePercentFactor": 1.2,
    "TotalAmount": 225.43,
    "OriginalWeight": 5,
    "OriginalWidth": 30,
    "OriginalLength": 40,
    "OriginalHeight": 20,
    "OriginalVolumetricWeight": 5,
    "CourierWeight": 5,
    "CourierWidth": 30,
    "CourierLength": 40,
    "CourierHeight": 20,
    "CourierVolumetricWeight": 5,
    "AddressFrom": {
        "ZipCode": "87120",
        "State": "MX-TAM",
        "City": "Victoria",
        "Neighborhood": "Hacienda del Santuario",
        "Address1": "3301 Gamboa Ferrocarril",
        "Address2": "Apt. 149",
        "Residential": false
    },
    "AddressTo": {
        "ZipCode": "34040",
        "State": "MX-DUR",
        "City": "Durango",
        "Neighborhood": "Villa de Guadalupe",
        "Address1": "48787 Alejandro Arrabal",
        "Address2": "Apt. 845",
        "Residential": true
    },
    "Sender": {
        "Name": "Hugo Domínguez",
        "Phone1": "5627-452-122",
        "Phone2": "5621-911-389",
        "Email": "Matas_Roybal@corpfolder.com"
    },
    "Recipient": {
        "Name": "Benjamín Grijalva",
        "CompanyName": "Espinoza - Colunga",
        "Phone1": "5124-468-864",
        "Email": "Antonio.Sanabria54@nearbpo.com"
    },
    "ReceivedAt": null,
    "ReceivedAt": null,
    "Owner": "pospago@pakke.mx",
    "DaysInTransit": null,
    "EnableRefund": 1,
    "ChangeZipCode": null,
    "Content": "Accesorios",
    "transactions": [],
    "Credentials": null,
    "TrackingNumberReplaced": null,
    "Folio": null,
    "EstimatedDeliveryDate": "2019-06-28",
    "TrackingNumber": "794622745362",
    "WaybillNumber": null,
    "Status": "SUCCESS",
    "TrackingStatus": "WAITING"
}

Este endpoint devuelve la información detallada de un envío.

Endpoint

GET /Shipments/{SHIPMENT_ID}/

Parámetros

Campo Tipo Requerido Descripción
ShipmentId String Si Identificador​ ​único​ ​del​ ​envío

Respuesta

Campo Tipo Descripción
ShipmentId String Identificador​ ​único​ ​del​ ​envío
ResellerId String Identificador​ ​de la cuenta de reseller que creó la guía
OwnerId String Identificador​ ​del​ ​reseller
CreatedAt date Fecha/hora​ ​de​ ​la​ ​creación​ ​del​ ​envío
ExpiresAt date Fecha/hora​ ​de​ expiración de la etiqueta de envío
TransitAt date Fecha/hora​ ​de​ puesta en tránsito del paquete
DeliveredAt date Fecha/hora​ ​de​ entrega del paquete
CourierName String Nombre del courier
CourierCode String Identificador corto del courier
CourierServiceId String Identificador ​de​ ​servicio​ del courier
CourierService String Nombre del ​servicio​
ResellerReference String Referencia​ ​personalizada del paquete
HasExceptions Boolean Bandera que indica si el envío tiene excepciones de entrega
HasChangeZipCode Boolean Bandera que indica si se detectó si el envío cambió de códigos postales de entrega
SendRecipientNotifications Boolean Bandera que indica si la guía tiene activado el envío de notificaciones
InsuredAmount Number Monto del seguro de envío
Parcel ShipmentParcel Información​ ​del​ ​Paquete
AddressFrom ShipmentAddress Dirección​ ​de​ ​Envío
AddressTo ShipmentAddress Dirección​ ​de​ ​Entrega
Sender ShipmentContact Información del remitente
Recipient ShipmentContact Información del destinatario
QuotedAmount Number Precio cotizado
DiscountAmount Number Descuento
InsuranceAmount Number Costo del seguro
TotalAmount Number Costo total del paquete
OverWeightPrice Number Precio por kilo de sobrepeso
OriginalWeight Number Peso simple del paquete cotizado
OriginalWidth Number Ancho del paquete cotizado
OriginalLength Number Longitud del paquete cotizado
OriginalHeight Number Altura del paquete cotizado
OriginalVolumetricWeight Number Peso volumétrico del paquete cotizado
CourierWeight Number Peso simple del paquete reportado por el courier
CourierWidth Number Ancho del paquete reportado por el courier
CourierLength Number Longitud del paquete reportado por el courier
CourierHeight Number Altura del paquete reportado por el courier
CourierVolumetricWeight Number Peso volumétrico del paquete reportado por el courier
RealWeight Number Peso real del paquete
RealOverWeight Number Sobrepeso real del paquete
Owner String Correo electrónico del reseller
DaysInTransit Number Días en tránsito del paquete
Content String Contenido del paquete
transactions Array Array con las transacciones generadas por la guía
Status String Estatus de la guía:
  • SUCCESS​ - Envío generado
  • REFUNDED ​-​ ​Envío reembolsado
  • REFUNDPENDING -​ Envío con reembolso pendiente
  • REFUNDFAILED - Envío con reembolso fallido
TrackingNumber String Número​ ​de​ ​guía​ ​del​ ​courier
TrackingStatus String Estatus del rastreo:
  • WAITING ​-​ ​Guía generada y esperando recolección
  • IN_TRANSIT ​-​ ​Paquete en tránsito
  • ON_DELIVERY​-​ Paquete en proceso de entrega
  • DELIVERED​ - Paquete entregado
  • RETURNED - Paquete devuelto
  • CANCELLED - ​​Guía cancelada o expirada
  • EXCEPTION - Paquete con ​errores de entrega

Consulta de etiquetas

Ejemplo de petición

curl -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    https://seller.pakke.mx/api/v1/Shipments/25444660-3fb6-11e9-b3ab-a30edf078497/label

Respuesta​ ​-​ ​Success​ ​200

{
    "data": "<pdf_base64>",
    "TrackingNumber": "794610703145"
    "WaybillNumber": null
}

Este endpoint sirve para obtener la etiqueta de un envío en particular.

Endpoint

GET /Shipments/{SHIPMENT_ID}/label

Parámetros

Campo Tipo Requerido Descripción
ShipmentId String Si Identificador​ ​único​ ​del​ ​envío

Respuesta

Campo Tipo Descripción
data String PDF​ ​en​ ​base64
TrackingNumber String Número​ ​de​ ​guía​ ​del​ ​courier
WaybillNumber String Número​ ​de​ ​guía​ ​largo del​ ​courier (aplica solo para algunos couriers)

Consulta de historial​

Ejemplo de petición

curl -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK' \
    https://seller.pakke.mx/api/v1/Shipments/{SHIPMENT_ID}/history

Respuesta ​-​ ​Success​ ​200

[
    {
        "Date": "2019-01-03T14:23:01.000-06:00",
        "Details": "Envío entregado - Firmado por USUARIO",
        "Location": null
    },
    {
        "Date": "2019-01-03T10:05:00.000-06:00",
        "Details": "Envío en ruta de entrega.",
        "Location": null
    },
    {
        "Date": "2018-12-29T10:29:00.000-06:00",
        "Details": "Llegado a oficinas de FDX",
        "Location": null
    },
    {
        "Date": "2018-12-28T18:23:01.000-06:00",
        "Details": "Envío retirado/recolectado.",
        "Location": null
    },
    {
        "Date": "2018-12-28T17:57:00.000-06:00",
        "Details": "Retiro programado",
        "Location": {
            "ZipCode": "07800",
            "State": "MX-CMX",
            "City": "Del. Gustavo A. Madero",
            "Coordinates": {
                    "lat": 19.4795678,
                    "lng": -99.1418031
        }
    }
]

Este endpoint regresa el histórico de los movimientos realizados desde el API, además de los movimientos que realice el courier.

Endpoint

GET /Shipments/{SHIPMENT_ID}/history

Parámetros

Campo Tipo Requerido Descripción
ShipmentId String Si Identificador​ ​único​ ​del​ ​envío

Respuesta

Campo Tipo Descripción
- Array Arreglo con eventos del historial

Parámetros

Campo Tipo Requerido Descripción
CourierCode String Si Código​ ​del​ ​Courier/Carrier
TrackingNumber String Si Número​ ​de​ ​guía​ ​del​ ​courier

HistoryEvent

Campo Tipo Descripción
Date Fecha Fecha en la que se generó el evento
Details String Deescripción del evento
Location EventLocationInfo Objeto con información del evento

EventLocationInfo

Campo Tipo Descripción
ZipCode String Código postal donde se generó el evento
State String Estado de la República donde se generó el evento
City String Ciudad de la República donde se generó el evento
Coordinates Objeto Longitud y latitud donde se generó el evento

Apéndice​s

​A​ ​-​ ​Entidades​ ​Federativas

Para los códigos de los estados/subdivisiones, se pueden utilizar los valores del estándar ISO 3166-2:MX. A continuación se muestra el listado:

Código​ ​ISO Nombre​ ​del​ ​Estado
MX-AGU Aguascalientes
MX-BCN Baja​ ​California
MX-BCS Baja​ ​California​ ​Sur
MX-CAM Campeche
MX-COA Coahuila
MX-COL Colima
MX-CHP Chiapas
MX-CHH Chihuahua
MX-CMX Ciudad​ ​de​ ​México
MX-DUR Durango
MX-GUA Guanajuato
MX-GRO Guerrero
MX-HID Hidalgo
MX-JAL Jalisco
MX-MEX México
MX-MIC Michoacán
MX-MOR Morelos
MX-NAY Nayarit
MX-NLE Nuevo​ ​León
MX-OAX Oaxaca
MX-PUE Puebla
MX-QUE Querétaro
MX-ROO Quintana​ ​Roo
MX-SLP San​ ​Luis​ ​Potosí
MX-SIN Sinaloa
MX-SON Sonora
MX-TAB Tabasco
MX-TAM Tamaulipas
MX-TLA Tlaxcala
MX-VER Veracruz
MX-YUC Yucatán
MX-ZAC Zacatecas