INTRODUCCIÓN

El servicio web de cotizaciones en la plataforma HAZTUENVIO.MX permite a otros desarrollos a la medida cotizar envíos por medio del estilo de arquitectura de software de transferencia de estado representacional, entregando al servidor detalles sobre la guía que desea cotizar y para que este responda de manera desglosada con los detalles del costeo de la guía tal y como será cobrada por la empresa HAZTUENVIO.MX.

¿Cómo funciona la API?

El funcionamiento de la API es mediante peticiones HTTPS utilizando el método POST a través de nuestro siguiente Endpoint.

http://apiqa.haztuenvio.mx/ws-national-quoting

Nuestra aplicación retornará una respuesta JSON decodificable en forma de una cadena de caracteres larga a través de una respuesta HTTP.

Diccionario de datos.
Propiedad Obligatorio Tipo de dato Longitud Restricciones
key Si Texto Cifrado ilimitado Solicitar su generación
password Si Texto Cifrado ilimitado Solicitar su generación
applicationName No Texto Ilimitado Ninguna
type No Texto Ilimitado Ninguna
zipCode Si Cadena de caracteres 5 Ninguna
colonyName No Texto Ilimitado Ninguna
deliveryType Si Cadena de caracteres 1 Solo un caracter ("1" o "0")
totalDeclaredValue Si Flotante Valor mayor igual a 6000 Ninguna
physicalPackaging Si Texto Ilimitado Solo un caracter ("1" o "0")
weight Si Flotante Ninguna
width Condicional Flotante Ninguna
length Condicional Flotante Ninguna
height Condicional Flotante Ninguna
quantity Si Flotante Ninguna
DATOS DE REQUEST
Encabezado de la petición (header).

En esta sección obligatoria representada como un objeto de nombre “header” se solicitarán datos acerca del cliente que realiza la petición.

Seguridad (security).

En esta sección obligatoria representada como un objeto de nombre “security” se solicitarán detalles de autenticación del cliente que desea realizar la cotización.

Es una de las credenciales solicitadas para el acceso de la aplicación, se trata de una cadena de caracteres cifrados obligatoria cuyo nombre en la petición es “publicToken”, debe de ser solicitada al equipo de desarrollo de la API y está asociada al usuario generado para el consumo de la aplicación.
Es una de las credenciales solicitadas para el acceso de la aplicación, se trata de una cadena de caracteres cifrados obligatoria cuyo nombre en la petición es “secretToken”, debe de ser solicitada al equipo de desarrollo de la API y está asociada al usuario generado para el consumo de la aplicación.
Dispositivo (device).

En esta sección obligatoria se solicitarán detalles de la terminal que efectúa la petición, así como del aplicativo desarrollado que requiere la información.

En esta sección se solicitará una cadena de caracteres directa y sin restricciones de manera opcional cuyo nombre en la petición es “applicationName” en la cual el usuario podrá ingresar el nombre del aplicativo que realiza la petición.
En esta sección se solicitará una cadena de caracteres directa y sin restricciones de manera opcional cuyo nombre en la petición es “type” en la cual el usuario podrá ingresar el tipo de desarrollo que está realizando, ya sea Web, Móvil, Ejecutable para windows, etc...
Cuerpo de la petición (body).

En este objeto se describirán la mayoría de los detalles de la petición.

Detalles de la petición.

En esta sección se solicitarán los detalles propios de la cotización que se desea realizar en HAZTUENVIO.MX.

Dirección de origen (originAddress).

En esta sección se solicitará la información necesaria del remitente.

En esta sección se solicitará una cadena de caracteres directa de manera obligatoria, forzosamente compuesta por 5 caracteres. Se identifica en la petición con el nombre de “zipCode” en la cual el usuario deberá ingresar el código postal de la zona desde la cual se enviarán las piezas de la guía.
En esta sección se solicitará una cadena de caracteres directa y sin restricciones de manera opcional cuyo nombre en la petición es “colonyName” en la cual el usuario podrá ingresar el nombre de la colonia a la cual se enviarán las piezas de la guía.
Dirección destino (destinationAddress).

En esta sección se solicitará la información necesaria del destinatario.

En esta sección se solicitará una cadena de caracteres directa de manera obligatoria, forzosamente compuesta por 5 caracteres. Se identifica en la petición con el nombre de “zipCode” en la cual el usuario deberá ingresar el código postal de la zona a la cual se enviarán las piezas de la guía.
En esta sección se solicitará una cadena de caracteres directa y sin restricciones de manera opcional cuyo nombre en la petición es “colonyName” en la cual el usuario podrá ingresar el nombre de la colonia a la cual se enviarán las piezas de la guía.
Servicios (services).
En esta sección se solicitará una cadena de caracteres directa obligatoria, forzosamente compuesta por 1 carácter cuyo nombre en la petición es “deliveryType” en la cual el usuario deberá seleccionar una opción de entrega de la siguiente lista.
Valor (Cadena) Descripción
"1" Entrega a domicilio.
"0" Entrega en sucursal (Ocurre).
En esta sección se solicitará valor flotante obligatorio con un valor mayor igual a 6000 cuyo nombre en la petición es “totalDeclaredValue” en la cual el usuario deberá referir el valor del envío si y sólo si requiere asegurar el mismo, en caso de no desear asegurar el paquete puede introducir en ese dato el valor 0 y el sistema considerará que no se desea asegurar el envío.
Detalles del envío (shipmentDetail).
En esta sección se solicitará una cadena de caracteres directa obligatoria, forzosamente compuesta por 1 carácter cuyo nombre en la petición es “physicalPackaging” en la cual el usuario deberá seleccionar una opción de entrega de la siguiente lista.
Valor (Cadena) Descripción
"1" Sobre.
"0" Caja.
En esta sección se solicitará valor flotante obligatorio cuyo nombre en la petición es “weight” en la cual el usuario deberá referir el peso de esta pieza.
En esta sección se solicitará valor flotante cuyo nombre en la petición es “width” en la cual el usuario deberá referir la anchura en centímetros de la pieza solo si seleccionó caja.
En esta sección se solicitará valor flotante obligatorio cuyo nombre en la petición es “length” en la cual el usuario deberá referir la longitud en centímetros de la pieza solo si seleccionó caja.
En esta sección se solicitará valor entero obligatorio cuyo nombre en la petición es “quantity” en la cual el usuario deberá referir cuántas piezas iguales se envían.
DATOS DE RESPONSE
Status.

En esta sección se indicará si la petición procedió de manera exitosa o si presenta algún error, pueden interpretarse mediante la siguiente lista de estados.

Código Descripción
200 Todo OK
401 Error de autenticación
400 Error no especificado, consultar al proveedor del servicio
Message.

Apartado que presenta la descripción textual del estado de la petición, en caso de tener un error identificado se brindará la descripción en esta sección.

ResponseDetails.

Arreglo en el cual se mostrarán los detalles de todas las paqueterías y sus correspondientes servicios disponibles, cada elemento cuenta con un conjunto de atributos descritos a continuación.

Empresa de paquetería que entrega la opción mostrada.
Servicio de la opción mostrada con el cual se generará en caso de decidir utilizar la opción, se presentará una opción por cada servicio que ofrece la paquetería.
Muestra la fecha de entrega de la opción.
Muestra el precio del flete.
En caso de las paqueterías de tarifa variable según la distancia en esta sección se mostrará que tarifa es la correspondiente a la distancia entre los códigos postales solicitados.
En esta sección se muestra el cobro por el seguro del envío que se está cotizando basándose en su valor declarado.
En algunos casos se presentará este cargo adicional.
Describe en un arreglo cada cargo extra cobrado mostrando el nombre y el costo para tener una noción completa de la cobranza de los mismos.
REQUEST

"header": {
    "security": {
        "key": "[USER KEY]",
        "password": "[USER PASSWORD]"
    },
    "device": {
        "applicationName": "WSM",
        "type":
    }
},
"body": {
    "request": {
        "data": {
            "originAddress": {
                "zipCode": "44770",
                "colonyName": ""
            },
            "destinationAddress": {
                "zipCode": "44220",
                "colonyName": ""
            },
            "services": {
                "deliveryType": "1",
                "totalDeclaredValue": "0"
            },
            "shipmentDetail": [
                {
                    "physicalPackaging": "1",
                    "weight": "10",
                    "width": "10",
                    "length": "10",
                    "height": "10",
                    "quantity": "1"
                }
            ]
        }
    }
}
RESPONSE

 [
     {
       	"status": "200",
         "message": "Successful Request",
         "responseDetails": [
             {
                "parcelCompany": "ESTAFETA",
                "service": "TERRESTRE",
                "deliveryDate": "2022-06-12",
                "zone": "FLAT",
                "price": 263,
                "insurance": 0,
                "extendedArea": 0,
                "totalExtraCharges": 0,
                "totalAmount": 263,
                "extraChargesDetails": "",
                "X19pZF9jdWVudGFfXw": "NA"
             },
             {
                 "parcelCompany": "ESTAFETA",
                 "service": "EXPRESS",
                 "deliveryDate": "2022-06-09",
                 "zone": "FLAT",
                 "price": 504,
                 "insurance": 0,
                 "extendedArea": 0,
                 "totalExtraCharges": 0,
                 "totalAmount": 504,
                 "extraChargesDetails": "",
                 "X19pZF9jdWVudGFfXw": "NA"
             }
       ]
     }
 }
          
Scroll