NAV Navbar


Logo pakke
curl

Versión

El siguiente endpoint debe ser utilizado en todos los servicios expuestos en esta API:

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

Cada recurso está formado por un formato entidad/{id}, con sub-recursos siguiendo el mismo patrón. Por ejemplo, si está buscando información sobre un conjunto de envíos, haga una solicitud GET a https://seller.pakke.mx/api/v1/shipments.

Para acceder a un envío en particular, realice una solicitud GET a https://seller.pakke.mx/api/v1/shipments/{shipment_id}.

Autenticación

Antes de comenzar a consumir la API de Pakke, necesitan registrarse para tener una cuenta de usuario y a través de este proceso obtener una API key para el consumo del API:

Autenticacion temporal

curl  https://seller.pakke.mx/api/v1/Users/login

    {
        "email":"usuario@dominio.com",
        "password":"p!w12s54"
    }

Para este tipo de autenticación se necesita llamar a el endpoint https://seller.pakke.mx/api/v1/Users/login por medio de un servicio POST.

Parámetros

Request:

    {
        "token":"cHZHeERWFDFQWE434325FFF5DDG768D4B33MwTT4oFpQnyYwm00SxECK",
        "userId":"338fere-n32wdqk4k3l-4we7-a6e49-nkte2naak4",
        "ttl":1209600,
        "created":"2018-12-07T19:31:53.554Z",
        "roles":["END_USER"]
    }
Campo Tipo
Email Correo electrónico
Password String

Es importante que los parámetros que enviemos se encuentren en formato JSON

Esta autenticación solo es valida por un tiempo definido lo cual lo especifica el campo ‘TTL’ (Time-To-Live), Una vez caducado el token no podrá utilizarse y sera necesario volver a loguearse con el end point.

Autenticacion sin caducidad

Para generar una autenticación sin caducidad existen dos opciones:

curl 'https://seller.pakke.mx/api/v1/Reseller/applications/resetKeys' 

        -X PATCH -H 'Authorization: c2342ap13dw24q5htvG8NM6sadaPw7ST0uCO1434T1dfdsfRhOwTT4oFpQnyYwm00SxECK' 
                 -H 'Content-Type: application/json' 
                 -H 'Accept: application/json,
                     text/plain,
                        */*' --data-binary '{}'

1.- Generar un API Key sin caducidad es necesario loguearse con el primer método y después llamar el endpoint https://seller.pakke.mx/v1/Reseller/applications/resetKeys, Enviando en la cabecera ‘Authorization’ el token que se haya generado en la llamada al endpoint de login. El único parámetro de la llamada es un objeto JSON vacío:

La respuesta será el token (sin caducidad) y la fecha (GMT)

Request:

    {
        "created":"2018-12-07T19:32:07.018-06:00",
        "restApiKey":"QBstBWFcSztxcPYtZ·NKNKLn3lNLKnklk2k3klnKE7r0Xzkl0OCThFx"
    }

Una vez que tengan el restApiKey sin caducidad, lo podrán utilizar en cualquier endpoint como cualquier otro token en la cabecera Authorization (“Authorization: [restApiKey]”).

2.- Generar el API Key sin caducidad solo hay que loguearse a la aplicación, entrar a Perfil de usuario e ir la sección API Key y dar clic en el botón ‘Regenerar’:

Registro inicial

Request:

curl    -X POST --header 'Content-Type: application/json' \
        --header 'Accept: application/json' \
        -d '
            { \
                "email": "ricardo%40venders.mx", \
                "name": "Venders MX", \
                "password": "demo1234", \
                "confirm": "demo1234" \
            }' 'https://seller.pakke.mx/api/v1/Users/signUp'

En este endpoint, se procede a registrar las credenciales para poder obtener un id de usuario, un token de verificación y una API key. El token de verificación nos servirá para confirmar la cuenta recien creada y poder usar los demás endpoints del API.

Parametros

Response​ ​-​ ​Success​ ​200
    {
        "uid": "<user_id>",
        "token": "<verification_token>",
        "apikey": "<api_key>"
    }

Parámetros necesarios para poder realizar un registro exitoso.

Campo Tipo Requerido Descripción
email string Si Correo electrónico
name string Si Nombre del Reseller
password string Si Contraseña
confirm string Si Confirmación de la Contraseña

Con estos servicios se rectifica que la cuenta este activada para terminar su registro.

Campo Tipo Descripción
uid string Identificador del nuevo usuario
token string Token para verificar al usuario
apikey string API key para realizar la autenticación

En caso de que nos arroje un error, en el siguiente servicio se mostrara el siguiente código.

Response​ ​-​ ​Error​ ​4xx
{
    "error": {
    "statusCode": 400,
    "details": [
    "Los passwords no coinciden, reintente"
                ]
            }
}
Campo Tipo Descripción
statusCode number Codigo HTTP de la causa del error
details array<string> Lista con las descripciones mas detallada de las excepciones

Confirmacion

Request
    curl -X GET --header 
    'Accept: application/json'
    'https://seller.pakke.mx/api/v1/Users/confirm?uid=<uid>&token=<token>'

Response​ ​-​ ​Error​ ​4xx
{
    "error": {
    "statusCode": 400,
    "name": "Error",
    "message": "La señal no es válida: XXXXXXXXXXXXXX",
    "code": "INVALID_TOKEN"
            }
}

El objetivo de este endpoint es evitar que se generen credenciales basura.Al realizar el proceso de confirmación, se “desbloquean” los demás métodos del API; si no se realiza este proceso, simplemente el API envía un error de acceso no autorizado.

Definición de variables

Campo Tipo Requerido Descripción
uid string Si Identificador del usuario
token string Si token para verificar al usuario

Response​ ​-​ ​Success​ ​204​ ​(Success​ ​sin​ ​contenido​ ​adicional)


Definición de variables

Campo Tipo Descripción
statusCode number Codigo HTTP de la causa error
name string Tipificacion de la expreción (uso interno)
message string Descripción de la excepción
code string Clasificador de las excepción

Couriers y Servicios

Request
    curl -X GET \
        https://seller.pakke.mx/api/v1/PakkeServices \
        -H 'content-type: application/json' \
        -H 'x-api-key: <api_key>'

Dentro de este apartado se incluyen los endpoints para consultar los couriers/carriers disponibles dentro de la aplicación, sus servicios y los equivalentes en la nomenclatura del API. El api key se especifica en el header x-api-key

Servicios​ ​Pakke

Response​ ​-​ ​Success​ ​200
[
    {
        "PakkeServiceCode": "ECO",
        "Description": "Económico"
    },
    {
        "PakkeServiceCode": "PRI",
        "Description": "Prioritario"
    }
]

Este endpoint regresa los servicios homologados en la plataforma PAKKE.

Campo Tipo Descripción
PakkeserviceCode string Código​ ​del​ ​servicio​ ​en​ ​la​ ​plataforma​ ​PAKKE
Description string Descripción​ ​del​ ​servicio

Couriers

Request
    curl -X GET \
        https://seller.pakke.mx/api/v1/Couriers \
        -H 'content-type: application/json' \
        -H 'x-api-key: <api_key>'

Response​ ​-​ ​Success​ ​200
[
    {
                    "CourierCode": "FDX",
                    "Name": "Federal Express",
                    "Status": 1,
                    "services": [
            {
                    "CourierServiceId": "28a4827c-3c60-4655-8fe6-d101e07cb12f",
                    "CourierCode": "FDX",
                    "Description": "Servicio Nocturno",
                    "CourierServiceId": "28a4827c-3c60-4655-8fe6-d101e07cb12f",
            },
            {
                    "CourierServiceId": "335b2f1c-1e71-4867-91a5-195fa2435987",
                    "CourierCode": "FDX",
                    "CourierServiceCode": "FEDEX_EXPRESS_SAVER",
                    "Description": "Servicio Economico",
                    "CourierServiceId": "335b2f1c-1e71-4867-91a5-195fa2435987"
            }
        ]
    }
]


Definición de variables

Campo Tipo Descripción
CourierCode string Courier/Carrier
Name string Nombre​ ​del​ ​courier/carrier
Status number Indica​ ​si​ ​es​ ​un​ ​courier​ ​activo

CourierService

Request
    [
        {
            "CourierServiceId": "ESTAFETA_DIA_SIGUIENTE",
            "CourierCode": "STF", 
            "Description": "Dia Siguiente", 
            "DeliveryDays": "1",
            "Active": "false"
        }
    ]

Representación de los datos básicos de un servicio de un courier

Campo Tipo Descripción
CourierServiceId string Identificador​ ​único​ ​(uso​ ​interno)
CourierCode string Courier/Carrier
Description string Descripción​ ​del​ ​servicio
MaxWeight string Peso máximo por paquete
ServiceCode string Identificador de uso interno del courier para el servicio.
DeliveryDays string Propiedad que indica los dias de entrega
Active boolean Diferencia los servicios activos de inactivos

Envíos

Request
    curl -X POST \
        https://seller.pakke.mx/api/v1/Shipments \
    -H 'content-type: application/json' \
    -H 'x-api-key: <api_key>' \
    -d '{
            "CourierCode": "FDX",
            "CourierServiceId": "ECO",
            "ResellerReference": "TCPIP-0817-23",
            "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"
        }
    }'

Este endpoint realiza el trabajo de validar los datos de entrada y enviar dichos datos al courier seleccionado. Este método funciona tanto como para usuarios autenticados por el frontend, como aquellos procesos que hayan sido autenticados por una API key. El api key se especifica en el header x-api-key

Parámetros

Campo Tipo Requerido Descripción
*CourierCode string No Courier/Carrier
*CourierServiceId string No Tipo​ ​de​ ​servicio​ ​Pakke
ResellerReference string No Referencia​ ​personalizada
Parcel ShipmentParcel Si Información​ ​del​ ​Paquete
AddressFrom ShipmentAddress Si Dirección​ ​de​ ​Envío
AddressTo ShipmentAddress Si Dirección​ ​de​ ​Entrega
Sender ShipmentContact Si Remitente
Recipient ShipmentContact Si Destinatario

Nota: Si CourierCode y ServiceTypeCode no son especificados, el API seleccionará la mejor opción disponible para el envío. En caso contrario se notificará la excepción.

ShipmentParcel

Sirve para usar y/o almacenar las dimensiones básicas del paquete.

Campo Tipo Requerido Descripción
Length number Si Largo
Width number Si Ancho
Height number Si Alto
Weight number Si Peso

ShipmentAddress

Representación de la dirección de envío/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 Linea​ ​1
Address2 string Si Linea​ ​2

ShipmentAddress​ ​-​ ​Continuación

Campo Tipo Requerido Descripción
Residential boolean No Indica​ ​si​ ​la​ ​dirección​ ​necesita​ ​un​ ​trato especial​ ​por​ ​el​ ​courier​ ​(solo​ ​tiene​ ​efecto en​ ​la​ ​entrega)

ShipmentContact

Representación de los datos de contacto del remitente/destinatario.

Campo Tipo Requerido Descripción
Name string Si Nombre​ ​del​ ​contacto
CompanyName string No Empresa(incluir​ ​solo​ ​en​ ​el​ ​destinatario
Phone1 string No Teléfono​ ​1
Phone2 string No Teléfono​ ​2
Email string No Correo​ ​electrónico
Response​ ​-​ ​Success​ ​200
    {
        "ShipmentId": "467ce07d-388b-4811-9ae4-ee8777c697b9",
        "CourierCode": "FDX",
        "ResellerId": "ce6b4725-d30a-48d2-a6cd-479edbc47219",
        "OwnerId": "b68ff0c2-ff90-4f15-877a-2ef42163b92d",
        "ServiceTypeCode": "ECO",
        "ResellerReference": "TCPIP-0817-23",
        "TrackingNumber": "794610703145",
        "Status": "SUCCESS",
        "CreatedAt": "2017-08-09T04:05:06.559Z",
        "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",
        "CompanyName": "Venders MX",
        "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"
    },
        "Label": "<pdf_base64>"
}

Definición de variables

Campo Tipo Descripción
ShipmentId string Identificador​ ​único​ ​del​ ​envío
CourierCode string Courier/Carrier
ResellerId string Identificador​ ​del​ ​reseller
OwnerId string Identificador​ ​del​ ​usuario​ ​(propietario)
ServiceTypeCode string Tipo​ ​de​ ​servicio​ ​Pakke
ResellerReference string Referencia​ ​personalizada
TrackingNumber string Número​ ​de​ ​guía​ ​del​ ​courier
CreatedAt date Fecha/hora​ ​de​ ​la​ ​creación​ ​del​ ​envío
Label string PDF​ ​en​ ​base64
Parcel ShipmentParcel Información​ ​del​ ​Paquete
AddressFrom ShipmentAddress Dirección​ ​de​ ​Envío
AddressTo ShipmentAddress Dirección​ ​de​ ​Entrega
Sender ShipmentContact Remitente
Recipient ShipmentContact Destinatario
Status string Estado del envió
  • QUEUED​ ​-​ ​ ​En​ ​cola
  • SUCCESS​ ​-​ ​Procesado​ ​con​ ​éxito
  • RETRY​ ​-​ ​Reintentando
  • ERROR​ ​-​ ​En​ ​error

Response​ ​-​ ​Error​ ​4xx
{
    "error": {
        "statusCode": 400,
        "name": "Error",
        "details": [
        "El largo del paquete no puede ser igual o menor a cero"
                    ]
            }
}

En caso de que nos arroje un error, en el siguiente servicio se mostrara el siguiente código.

Campo Tipo Descripción
statusCode number Código​ ​HTTP​ ​de​ ​la​ ​causa​ ​del​ ​error
name string Tipificación​ ​de​ ​la​ ​excepción​ ​(uso​ ​interno)
details array<string> Lista​ ​con​ ​los​ ​mensajes​ ​de​ ​la​ ​excepciones

Consulta​ ​de​ ​Etiquetas

Este endpoint sirve para poder consultar la etiqueta que nos generó el courier. El api key se especifica en el header x-api-key

Request
    curl -X GET --header
        'Accept: application/json' \
    --header 'x-api-key: <api_key>' \
        'https://seller.pakke.mx/api/v1/Shipments/<ShipmentId>/label'

Parámetros

Campo Tipo Requerido Descripción
ShipmentId string Si Identificador​ ​único​ ​del​ ​envío
Response​ ​-​ ​Success​ ​200
{
    "data": "<pdf_base64>",
    "TrackingNumber": "794610703145"
}

Definición de variables

Campo Tipo Descripción
data string PDF​ ​en​ ​base64
TrackingNumber string Número​ ​de​ ​guía​ ​del​ ​courier
Response​ ​-​ ​Error​ ​4xx
    {
        "error": {
            "statusCode": 404,
            "details": [
            "No se encontró una etiqueta válida para el envío especificado"
            ]
        }
    }

En caso de que nos arroje un error, en el siguiente servicio se mostrara el siguiente código.

Campo Tipo Descripción
statusCode number Código​ ​HTTP​ ​de​ ​la​ ​causa​ ​del​ ​error
details array<string> Lista​ ​con​ ​los​ ​mensajes​ ​de​ ​la​ excepciones

Historial​ ​del​ ​envío​ ​(Busqueda​ ​por​ ​Id​ ​del​ ​Envío)

Request
    curl -X GET --header 
        'Accept: application/json' \
    --header 'x-api-key: <api_key>' \
        'https://seller.pakke.mx/api/v1/Shipments/<ShipmentId>/tracking'

Este endpoint regresa el histórico de los movimientos realizados desde el API, además de los movimientos que realice el courier. El api key se especifica en el header x-api-key

Parámetros

Response​ ​-​ ​Success​ ​200
    [
        {
                "ShipmentHistoryId": "98419292-ea45-409b-86ae-80f08ff98512",
                "ShipmentId": "71aa38e8-6065-455e-af0a-21b9150ff414",
                "Status": "SUCCESS",
                "Details": "Procesando envio...",
                "Date": "2017-08-25T18:31:38.000Z",
                "Location": null
        },
            {
                "ShipmentHistoryId": "98419292-ea45-409b-86ae-80f08ff98512",
                "ShipmentId": "71aa38e8-6065-455e-af0a-21b9150ff414",
                "Status": "TRANSIT",
                "Details": "Procesado en centro de tránsito",
                "Date": "2017-08-25T18:31:38.000Z",
        "Location": {
                "ZipCode": "07800",
                "State": "MX-CMX",
                "City": "Del. Gustavo A. Madero",
        "Coordinates": {
                "lat": 19.4795678,
                "lng": -99.1418031
            }
        }
    },
]

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

Definición de variables

Campo Tipo Descripción
ShipmentHistoryId string Identificador​ ​único​ ​del​ ​evento/suceso
ShipmentId string Identificador​ ​único​ ​del​ ​envío
Status string Estado​ ​del​ ​envío​ ​(definición​ ​en​ ​progreso)
Details string Descripción​ ​legible​ ​para​ ​el​ ​usuario​ ​final
Date date Fecha​ ​del​ ​evento/suceso
Location ShipmentLocation Datos​ ​de​ ​la​ ​ubicación​ ​del​ ​envio

Historial​ ​del​ ​envío​ ​(Busqueda​ ​por​ ​Tracking​ ​Number)

Request
    curl -X GET --header 
        'Accept: application/json' \
    --header 
        'x-api-key: <api_key>' \
        'https://seller.pakke.mx/api/v1/Shipments/tracking?courierCode=<CourierCode>&
        trackingNumber=<TrackingNumber>'

Este endpoint regresa el histórico de los movimientos realizados desde el API, además de los movimientos que realice el courier. El api key se especifica en el header x-api-key

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

Response​ ​-​ ​Success​ ​200

Misma respuesta y estructura que en el anterior endpoint

Cotizador​ ​de​ ​envíos

Request
    curl -X POST 'https://seller.pakke.mx/api/v1/Shipments/rates'
        --header 'Content-Type: application/json' 
        --header 'Accept: application/json' 
        --header 'Authorization: <api_key>' 
        -d '{ 
            "Parcel": 
                    { 
                    "Length": <length>, 
                    "Width": <width>, 
                    "Height": <height>, 
                    "Weight": <weight> 
                    }
                "zipCodeFrom":"<zipCodeFrom>",
                "zipCodeTo":"<zipCodeTo>"
    }'

Este endpoint regresa la cotización del envío de los couriers/carriers disponibles en la plataforma y de los servicio que fueron configurados por el reseller. El api key se especifica en el header x-api-key

Parámetros

Campo Tipo Requerido Descripción
Parcel ShipmentParcel Si Información​ ​del​ ​Paquete
Response​ ​-​ ​Success​ ​200
    {
        “Pakke”: [
        {
                "CourierCode": "FDX",
                "CourierName": "FedEx",
                "CourierServiceId": "ECO",
                "CourierServiceName": "Fedex Servicio Economico",
                "DeliveryDays":"3",
                "TotalPrice": 100,
                "BestOption": true
        },
            {
                "CourierCode": "STF",
                "CourierName": "FedEx",
                "PakkeServiceCode": "ECO",
                "CourierServiceName": "Fedex Servicio Economico",
                "TotalPrice": 150,
                "BestOption": false
            }
                ],
    “Reseller”: [
            {
                "CourierCode": "FDX",
                "PakkeServiceCode": "TER",
                "CourierServiceName": Fedex Terrestre,
                "FriendlyName":”Test”,
                "ResellerServiceConfigId": <ResellerServiceConfigId>
            }
        ]   
    }

Definición de variables

Campo Tipo Descripción
Pakke array Lista​ ​de​ ​servicios​ ​ofrecidos​ ​por​ ​Pakke
Reseller array Lista​ ​de​ ​servicios​ ​configurados​ ​por​ ​el reseller(​ ​si​ ​hubiera)

Items​ ​Propiedad​ ​Pakke

Campo Tipo Descripción
CourierCode string Courier/Carrier
CourierServiceId string Tipo​ ​de​ ​servicio​ ​Pakke
CourierServiceName string Descripción​ ​del​ ​servicio​ ​del​ ​Courier
Cost number Costo​ ​del​ ​envío
OverWeightCost number Costo​ ​del​ ​sobrepeso​ ​(solo​ ​si​ ​aplica)
TotalPrice number Total​ ​del​ ​costo​ ​del​ ​envío
BestOption boolean Indica​ ​si​ ​este​ ​ítem​ ​es​ ​la​ ​mejor​ ​opción
CurierName string Referencia del courier

Items​ ​Propiedad​ ​Reseller

Campo Tipo Descripción
CourierCode string Courier/Carrier
PakkeServiceCode string Tipo​ ​de​ ​servicio​ ​Pakke
CourierServiceName string Descripción​ ​del​ ​servicio​ ​del​ ​Courier
FriendlyName string Nombre​ ​que​ ​identifica​ ​el​ ​servicio configurado​ ​por​ ​el​ ​reseller
ResellerServiceConfigId string Identificador​ ​del​ ​servicio​ ​configurado por​ ​el​ ​reseller

Apéndice​ ​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