Documentación - V1

API Cangoo

Entorno Sandbox

https//cangoo.mx/sandbox_v1.php

Características Principales

Todos los endpoints requieren un parámetro de encabezado con el formato: Authorization Bearer Token. El token de acceso es el mismo para el environment de sandbox y productions.

Recuerda que los tokens tienen una duración limitada. Asegúrate de renovar tu token cuando expire utilizando el refresh token.

Endpoints

GET - Status del API

Este endpoint permite a los usuarios consultar el estado del API. Al realizar la solicitud, el sistema procesa la información y devuelve el estado indicando si el API está operativa.

Ejemplos de Uso

CURL

                                curl --location 'https://cangoo.mx/api/sandbox_v1.php?method=status' \
                                --header 'Authorization: Bearer [ACCESS_TOKEN]'
                            

PHP

                                <?php
                            
                                    $curl = curl_init();
                                    
                                    curl_setopt_array($curl, array(
                                        CURLOPT_URL => 'https://cangoo.mx/api/sandbox_v1.php?method=status',
                                        CURLOPT_RETURNTRANSFER => true,
                                        CURLOPT_ENCODING => '',
                                        CURLOPT_MAXREDIRS => 10,
                                        CURLOPT_TIMEOUT => 0,
                                        CURLOPT_FOLLOWLOCATION => true,
                                        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                        CURLOPT_CUSTOMREQUEST => 'GET',
                                        CURLOPT_HTTPHEADER => array(
                                            'Authorization: Bearer [ACCESS_TOKEN]'
                                        ),
                                    ));
                            
                                    $response = curl_exec($curl);
                                    
                                    curl_close($curl);
                                    echo $response;
                                ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Authorization", "Bearer [ACCESS_TOKEN]");

                                const requestOptions = {
                                  method: "GET",
                                  headers: myHeaders,
                                  redirect: "follow"
                                };

                                fetch("https://cangoo.mx/api/sandbox_v1.php?method=status", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');

                                let config = {
                                  method: 'get',
                                  maxBodyLength: Infinity,
                                  url: 'https://cangoo.mx/api/sandbox_v1.php?method=status',
                                  headers: {
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  }
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests

                                url = "https://cangoo.mx/api/sandbox_v1.php?method=status"

                                payload = {}
                                headers = {
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("GET", url, headers=headers, data=payload)

                                print(response.text)
                            
Resultado

JSON

                                {
                                    "status": "online",
                                    "message": "API operativa y funcionando correctamente",
                                    "timestamp": "2024-12-06 17:21:40",
                                    "version": "1.0.0",
                                    "uptime": "0.19s"
                                }
                            
GET - Consultar Saldos

Este endpoint permite a los usuarios consultar el saldo disponible en su cuenta de Cangoo. Al realizar la solicitud, el sistema procesa la información y devuelve el monto actualizado del saldo. Esta funcionalidad es esencial para la gestión financiera de los comercios, ya que permite a los usuarios:

  • Monitorear su saldo de forma eficiente.
  • Facilitar la generación de guías.
  • Optimizar la planificación de operaciones.

Nota: Es importante destacar que cada vez que se genere una guía, el saldo actualizado se mostrará en la respuesta. Ver endpoint "Generar Guía con Token de cotización"

Ejemplos de Uso

CURL

                                curl --location 'https://cangoo.mx/api/sandbox_v1.php?method=funds' \
                                --header 'Authorization: Bearer [ACCESS_TOKEN]'
                            

PHP

                                <?php

                                    $curl = curl_init();
    
                                    curl_setopt_array($curl, array(
                                      CURLOPT_URL => 'https://cangoo.mx/api/sandbox_v1.php?method=status',
                                      CURLOPT_RETURNTRANSFER => true,
                                      CURLOPT_ENCODING => '',
                                      CURLOPT_MAXREDIRS => 10,
                                      CURLOPT_TIMEOUT => 0,
                                      CURLOPT_FOLLOWLOCATION => true,
                                      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                      CURLOPT_CUSTOMREQUEST => 'GET',
                                      CURLOPT_HTTPHEADER => array(
                                        'Authorization: Bearer [ACCESS_TOKEN]'
                                      ),
                                    ));

                                    $response = curl_exec($curl);

                                    curl_close($curl);
                                    echo $response;
                                    ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Authorization", "Bearer [ACCESS_TOKEN]");

                                const requestOptions = {
                                  method: "GET",
                                  headers: myHeaders,
                                  redirect: "follow"
                                };

                                fetch("https://cangoo.mx/api/sandbox_v1.php?method=funds", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');

                                let config = {
                                  method: 'get',
                                  maxBodyLength: Infinity,
                                  url: 'https://cangoo.mx/api/sandbox_v1.php?method=funds',
                                  headers: {
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  }
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests

                                url = "https://cangoo.mx/api/sandbox_v1.php?method=funds"

                                payload = {}
                                headers = {
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("GET", url, headers=headers, data=payload)

                                print(response.text)
                            
Resultado

JSON

                                {
                                    "funds": "2500.00",
                                    "format_funds": "$2,500.00 MXN",
                                    "timestamp": "2024-12-06 08:39:35",
                                    "version": "1.0.0",
                                    "uptime": "0.2s"
                                }
                            
POST - Renovar Token

Este endpoint permite a los usuarios renovar su token de acceso.

Para obtener un nuevo token, es necesario incluir el refresh token y el método en el cuerpo de la solicitud, utilizando el formato JSON.

  • method: (string) valor permitido renewAccessToken
  • refreshToken: (string)
Ejemplos de Uso

CURL

                                    curl --location 'https://cangoo.mx/api/sandbox_v1.php' \
                                    --header 'Content-Type: application/json' \
                                    --header 'Authorization: Bearer [ACCESS_TOKEN]' \
                                    --data '{
                                        "method":"renewAccessToken",
                                        "refreshToken":"[REFRESH_TOKEN]"
                                    }'
                            

PHP

                                <?php

                                    $curl = curl_init();
                                    
                                    curl_setopt_array($curl, array(
                                      CURLOPT_URL => 'https://cangoo.mx/api/sandbox_v1.php',
                                      CURLOPT_RETURNTRANSFER => true,
                                      CURLOPT_ENCODING => '',
                                      CURLOPT_MAXREDIRS => 10,
                                      CURLOPT_TIMEOUT => 0,
                                      CURLOPT_FOLLOWLOCATION => true,
                                      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                      CURLOPT_CUSTOMREQUEST => 'POST',
                                      CURLOPT_POSTFIELDS =>'{
                                        "method":"renewAccessToken",
                                        "refreshToken":"[REFRESH_TOKEN]"
                                    }',
                                      CURLOPT_HTTPHEADER => array(
                                        'Content-Type: application/json',
                                        'Authorization: Bearer [ACCESS_TOKEN]'
                                      ),
                                    ));
                                    
                                    $response = curl_exec($curl);
                                    
                                    curl_close($curl);
                                    echo $response;
                                ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Content-Type", "application/json");
                                myHeaders.append("Authorization", "[ACCESS_TOKEN]");

                                const raw = JSON.stringify({
                                  "method": "renewAccessToken",
                                  "refreshToken": "[REFRESH_TOKEN]"
                                });

                                const requestOptions = {
                                  method: "POST",
                                  headers: myHeaders,
                                  body: raw,
                                  redirect: "follow"
                                };

                                fetch("https://cangoo.mx/api/sandbox_v1.php", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');
                                let data = JSON.stringify({
                                  "method": "renewAccessToken",
                                  "refreshToken": "[REFRESH_TOKEN]"
                                });

                                let config = {
                                  method: 'post',
                                  maxBodyLength: Infinity,
                                  url: 'https://cangoo.mx/api/sandbox_v1.php',
                                  headers: {
                                    'Content-Type': 'application/json',
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  },
                                  data : data
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests
                                import json

                                url = "https://cangoo.mx/api/sandbox_v1.php"

                                payload = json.dumps({
                                  "method": "renewAccessToken",
                                  "refreshToken": "[REFRESH_TOKEN]"
                                })
                                headers = {
                                  'Content-Type': 'application/json',
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("POST", url, headers=headers, data=payload)

                                print(response.text)

                            
Resultado

JSON

                                {
                                    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjEdscddszkyNTic3ViIjoiMSJ9...",
                                    "refresh_token": "3e9b65cbdf4e08f26354f..."
                                }
                            
POST - Generar cotización

Este endpoint permite a los usuarios obtener cotizaciones de envío de diversas paqueterías, simplificando la comparación de costos y opciones disponibles. Para utilizar este servicio, es necesario proporcionar el código postal de origen y destino, junto con las dimensiones y el peso del paquete.

Al procesar la solicitud, el sistema genera una lista de cotizaciones de distintos proveedores de paquetería, brindando al usuario la posibilidad de:

  • Comparar tarifas.
  • Optimizar costos.
  • Elegir la opción de envío que mejor se adapte a sus necesidades.

Para obtener cotizaciones, es necesario incluir en el cuerpo de la solicitud, utilizando el formato JSON:

  • method: (string) valor permitido quote
  • PackageType: (string) valores permitidos envelope (para sobres), y box para paquetes
  • OriginPostalCode: (string) Código postal de la dirección de origen
  • DestinationPostalCode: (string) Código postal de la dirección de destino
  • Length: (integer): Largo del paquete en centímetros.
  • Width: (integer): Ancho del paquete en centímetros.
  • Height: (integer): Alto del paquete en centímetros.
  • Weight: (integer): Peso del paquete en kilogramos.
  • ItemType: (string): Tipo de artículo. Es opcional, en caso de no poner valor, el valor por defecto es "otros". Valores permitidos: alimentacion, alimento_fresco, archivo, articulos_fragiles, liquido, necesidades_diarias, producto_digital, ropa, otros
  • Insurance: (bool) Indica si el paquete está asegurado: true o false.
  • PackageValue: (decimal) Se debe indicar el valor si el campo "seguro" es true. Valor de factura del paquete. En caso de que el campo "seguro" sea false, se debe indicar este campo en 0.
  • Environment: (string) valor permitido sandbox
Ejemplos de Uso

CURL

                                curl --location 'https://localhots:8080.mx/api/sandbox_v1.php' \
                                --header 'Content-Type: application/json' \
                                --header 'Authorization: Bearer [ACCESS_TOKEN]' \
                                --data '{
                                    "method": "quote",
                                    "PackageType": "envelope",
                                    "OriginPostalCode": "44100",
                                    "DestinationPostalCode": "45238",
                                    "Length": 10,
                                    "Width": 10,
                                    "Height": 12,
                                    "Weight": 2,
                                    "ItemType" : "otros",
                                    "Insurance": true,
                                    "PackageValue": 55000,
                                    "Environment": "sandbox"
                                }'
                            

PHP

                                <?php

                                    $curl = curl_init();
                                    
                                    curl_setopt_array($curl, array(
                                      CURLOPT_URL => 'https://cangoo.mx/api/sandbox_v1.php',
                                      CURLOPT_RETURNTRANSFER => true,
                                      CURLOPT_ENCODING => '',
                                      CURLOPT_MAXREDIRS => 10,
                                      CURLOPT_TIMEOUT => 0,
                                      CURLOPT_FOLLOWLOCATION => true,
                                      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                      CURLOPT_CUSTOMREQUEST => 'POST',
                                      CURLOPT_POSTFIELDS =>'{
                                        "method": "quote",
                                        "PackageType": "envelope", 
                                        "OriginPostalCode": "44100",
                                        "DestinationPostalCode": "45238",
                                        "Length": 10,
                                        "Width": 10,
                                        "Height": 12,
                                        "Weight": 2,
                                        "ItemType" : "", 
                                        "Insurance": true,
                                        "PackageValue": 55000,
                                        "Environment": "sandbox" 
                                    }',
                                      CURLOPT_HTTPHEADER => array(
                                        'Content-Type: application/json',
                                        'Authorization: Bearer [ACCESS_TOKEN]'
                                      ),
                                    ));
                                    
                                    $response = curl_exec($curl);
                                    
                                    curl_close($curl);
                                    echo $response;
                                ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Content-Type", "application/json");
                                myHeaders.append("Authorization", "Bearer [ACCESS_TOKEN]");

                                const raw = JSON.stringify({
                                  "method": "quote",
                                  "PackageType": "envelope",
                                  "OriginPostalCode": "44100",
                                  "DestinationPostalCode": "45238",
                                  "Length": 10,
                                  "Width": 10,
                                  "Height": 12,
                                  "Weight": 2,
                                  "ItemType" : "otros",
                                  "Insurance": true,
                                  "PackageValue": 55000,
                                  "Environment": "sandbox"
                                });

                                const requestOptions = {
                                  method: "POST",
                                  headers: myHeaders,
                                  body: raw,
                                  redirect: "follow"
                                };

                                fetch("https://cangoo.mx/api/sandbox_v1.php", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');
                                let data = JSON.stringify({
                                  "method": "quote",
                                  "PackageType": "envelope",
                                  "OriginPostalCode": "44100",
                                  "DestinationPostalCode": "45238",
                                  "Length": 10,
                                  "Width": 10,
                                  "Height": 12,
                                  "Weight": 2,
                                  "ItemType" : "",
                                  "Insurance": true,
                                  "PackageValue": 55000,
                                  "Environment": "sandbox"
                                });

                                let config = {
                                  method: 'post',
                                  maxBodyLength: Infinity,
                                  url: 'https://cangoo.mx/api/sandbox_v1.php',
                                  headers: {
                                    'Content-Type': 'application/json',
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  },
                                  data : data
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests
                                import json

                                url = "https://cangoo.mx/api/sandbox_v1.php"

                                payload = json.dumps({
                                  "method": "quote",
                                  "PackageType": "envelope",
                                  "OriginPostalCode": "44100",
                                  "DestinationPostalCode": "45238",
                                  "Length": 10,
                                  "Width": 10,
                                  "Height": 12,
                                  "Weight": 2,
                                  "ItemType" : "otros",
                                  "Insurance": True,
                                  "PackageValue": 55000,
                                  "Environment": "sandbox"
                                })
                                headers = {
                                  'Content-Type': 'application/json',
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("POST", url, headers=headers, data=payload)

                                print(response.text)
                            
Resultado

JSON

                                {
                                    "status": "true",
                                    "timestamp": "2024-12-08 02:34:20",
                                    "version": "1.0.0",
                                    "uptime": "4.62s",
                                    "quote": [
                                        {
                                            "op_id": 1,
                                            "company_name": "DHL",
                                            "service_name": "EXPRESS DOMESTIC",
                                            "service_type": "Dia Siguiente",
                                            "total_packages": 1,
                                            "total_cost": 145.51,
                                            "courier_delivery_date": "2024-12-10",
                                            "delivery_days": 2,
                                            "insurance_percentage": 0,
                                            "insurance_cost": 0,
                                            "package_value": 55000,
                                            "currency": "MXN",
                                            "extended_zone_cost": 0,
                                            "costo_total_seguro": 0,
                                            "token": "3jRaFga9bR67LEXtHSYoM1N4L7Wy0PavsKgtesB8yiBkGITYOWtbzmrPmrkM"
                                        },
                                        {
                                            "op_id": 1,
                                            "company_name": "DHL",
                                            "service_name": "ECONOMY SELECT DOMESTIC",
                                            "service_type": "Economico / 2 dias",
                                            "total_packages": 1,
                                            "total_cost": 145.51,
                                            "courier_delivery_date": "2024-12-10",
                                            "delivery_days": 2,
                                            "insurance_percentage": 0,
                                            "insurance_cost": 0,
                                            "package_value": 55000,
                                            "currency": "MXN",
                                            "extended_zone_cost": 0,
                                            "costo_total_seguro": 0,
                                            "token": "vYibtlPuUPzYnAlNY5i05AMezhxKc0qJKjiAX0iEyiKLS4pcvby7NtR9lWCf"
                                        },
                                        {
                                            "op_id": 2,
                                            "company_name": "FEDEX",
                                            "service_name": "STANDARD_OVERNIGHT",
                                            "service_type": "Mismo día / 24H /SO24NRS",
                                            "total_packages": 1,
                                            "total_cost": 457.21,
                                            "courier_delivery_date": "2024-12-08",
                                            "delivery_days": 1,
                                            "insurance_percentage": 0,
                                            "insurance_cost": 0,
                                            "package_value": 55000,
                                            "currency": "MXN",
                                            "extended_zone_cost": 0,
                                            "costo_total_seguro": 0,
                                            "token": "KdHy14NKpW3GZ3IQVW3dUp5GkhwwmCo4sxEHnQ2vxpVkyVkZcppFxfK1eTqJ"
                                        },
                                        {
                                            "op_id": 2,
                                            "company_name": "FEDEX",
                                            "service_name": "FEDEX_EXPRESS_SAVER",
                                            "service_type": "Economico / Día siguiente / semanal/XS-ECONOMY",
                                            "total_packages": 1,
                                            "total_cost": 183.48,
                                            "courier_delivery_date": "2024-12-12",
                                            "delivery_days": 5,
                                            "insurance_percentage": 0,
                                            "insurance_cost": 0,
                                            "package_value": 55000,
                                            "currency": "MXN",
                                            "extended_zone_cost": 0,
                                            "costo_total_seguro": 0,
                                            "token": "2Eelv9E8EYK68oUDjyr8NRZp5Anf1AcPQFKYGuNJSGbkiXoQkJPzD8u2xB4B"
                                        },
                                        {
                                            "op_id": 20,
                                            "company_name": "UPS",
                                            "service_name": "UPS_SAVER",
                                            "service_type": "UPS SAVER (65) Express",
                                            "total_packages": 1,
                                            "total_cost": 532.16,
                                            "courier_delivery_date": "2024-12-08",
                                            "delivery_days": 1,
                                            "insurance_percentage": 0,
                                            "insurance_cost": 0,
                                            "package_value": 55000,
                                            "currency": "MXN",
                                            "extended_zone_cost": 0,
                                            "costo_total_seguro": 0,
                                            "token": "AuMebJ8draH402l7u1ypOBuUMQolqYCidJv6r2yLjg0lkkcCrh5TnXwluXsj"
                                        },
                                        {
                                            "op_id": 22,
                                            "company_name": "EXPRESS",
                                            "service_name": "STD-T",
                                            "service_type": "Estándar",
                                            "total_packages": 1,
                                            "total_cost": 1437.36,
                                            "courier_delivery_date": "2024-12-07",
                                            "delivery_days": 0,
                                            "insurance_percentage": 0,
                                            "insurance_cost": 0,
                                            "package_value": 55000,
                                            "currency": "MXN",
                                            "extended_zone_cost": 0,
                                            "costo_total_seguro": 0,
                                            "token": "BKpeBxXX5kvFdq3riIoLKJGvCpjsQqedIVTaBmHqW3c3gI4vPCI0XHlr4ktC"
                                        }
                                        {
                                            "op_id": 1,
                                            "company_name": "SENDEX",
                                            "service_name": "REGULAR",
                                            "service_type": "CONTRATO",
                                            "service_type_id": 3,
                                            "total_packages": 1,
                                            "total_flete": 44.45,
                                            "total_combustible": 4.5339,
                                            "total_servicio": 54.57,
                                            "total_descuento": 0,
                                            "total_retencion": 0,
                                            "total_iva": 16.568624,
                                            "total_subTotal": 103.5539,
                                            "total_cost": 156.16,
                                            "courier_delivery_date": "2025-07-14",
                                            "delivery_days": 8,
                                            "insurance_percentage": 0,
                                            "insurance_cost": 0,
                                            "package_value": 0,
                                            "currency": "MXN",
                                            "extended_zone_cost": 0,
                                            "costo_total_seguro": 0,
                                            "token": "NjY3NTQ0"
                                        },
                                    ]
                                }
                            
POST - Generar Guía con Token de cotización

Este endpoint permite a los usuarios generar una guía de envío a partir de una cotización previamente obtenida. Para completar esta operación, el usuario debe proporcionar el token de cotización junto con la información necesaria del remitente y del destinatario.

El método ofrece la flexibilidad de seleccionar un token de cotización previamente generado, lo que permite al usuario elegir la opción que mejor se ajuste a sus necesidades. Esto optimiza el proceso de envío, garantizando que la guía se cree de manera eficiente y personalizada.

Para generar una guía de envío, es necesario incluir en el cuerpo de la solicitud, utilizando el formato JSON:

  • method: (string) valor permitido generateGuide
  • Content: (string) Breve descripción del contenido del paquete (Máx: 25 caracteres)
  • SourceName: (string) Nombre del remitente (Máx: 25 caracteres).
  • SourceLastName: (string) Apellidos del remitente (Máx: 25 caracteres).
  • SourceEmail: (string) Email del remitente (Máx: 35 caracteres).
  • SourceStreet: (string) Calle del remitente (Máx: 35 caracteres).
  • SourceNumber: (string) Número exterior del remitente (Máx: 8 caracteres).
  • SourceIntNumber: (string) Número interior del remitente (Máx: 8 caracteres; Es opcional).
  • SourceNeighborhood: (string) Colonia del remitente.
  • SourcePhone: (string) Teléfono del remitente (Min: 8 caracteres & Máx: 10 caracteres).
  • SourceState: (string) Estado del remitente.
  • SourceMunicipality: (string) Municipio del remitente.
  • SourceReferences: (string) Referencias de la dirección del remitente (Máx: 35 caracteres).
  • DestinationName: (string) Nombre del destinatario (Máx: 25 caracteres).
  • DestinationLastName: (string) Apellidos del destinatario (Máx: 25 caracteres).
  • DestinationEmail: (string) Email del destinatario (Máx: 35 caracteres).
  • DestinationStreet: (string) Calle del destinatario (Máx: 35 caracteres).
  • DestinationNumber: (string) Número exterior del destinatario (Máx: 8 caracteres).
  • DestinationIntNumber: (string) Número interior del destinatario (Máx: 8 caracteres; Es opcional).
  • DestinationNeighborhood: (string) Colonia del destinatario.
  • DestinationPhone: (string) Teléfono del destinatario (Min: 8 caracteres).
  • DestinationState: (string) Estado del destinatario.
  • DestinationMunicipality: (string) Municipio del destinatario.
  • DestinationReferences: (string) Referencias de la dirección del destinatario (Máx: 35 caracteres).
  • Token: (string) Token de la cotización.
  • Environment: (string) valor permitido sandbox

Es tu responsabilidad proporcionar y verificar cuidadosamente los datos del remitente y del destinatario para asegurar que tus envíos se procesen sin errores ni contratiempos.

Ejemplos de Uso

CURL

                                curl --location 'https://cangoo.mx/api/sandbox_v1.php' \
                                --header 'Content-Type: application/json' \
                                --header 'Authorization: Bearer [ACCESS_TOKEN]' \
                                --data-raw '{
                                    "method": "generateGuide",
                                    "Content": "Herramientas.",
                                    "SourceName": "Eduardo",
                                    "SourceLastName": "Gomez Gtz",
                                    "SourceEmail": "eduardo@cangoo.com",
                                    "SourceStreet": "Manuel Acuna",
                                    "SourceNumber": "12",
                                    "SourceNeighborhood": "El venado",
                                    "SourcePhone": "3332412342",
                                    "SourceState": "Jalisco",
                                    "SourceMunicipality": "Tala",
                                    "SourceReferences": "Por la CFE",
                                    "DestinationName": "Raul",
                                    "DestinationLastName": "Corona",
                                    "DestinationEmail": "rrcorona@gmail.com",
                                    "DestinationStreet": "Hidalgo",
                                    "DestinationNumber": "12",
                                    "DestinationIntNumber" : "B",
                                    "DestinationNeighborhood": "San Angel",
                                    "DestinationPhone": "3332412345",
                                    "DestinationState": "Estado de México",
                                    "DestinationMunicipality": "Ciudad de Mexico",
                                    "DestinationReferences": "Por el estadio",
                                    "Token" : "5rnhqRGYDnVCTaZi11IGTaupbsiPRrU5Cgw82QMe",
                                    "Environment": "sandbox"
                                }'
                            

PHP

                                <?php

                                    $curl = curl_init();
                                    
                                    curl_setopt_array($curl, array(
                                      CURLOPT_URL => 'https://cangoo.mx/api/sandbox_v1.php',
                                      CURLOPT_RETURNTRANSFER => true,
                                      CURLOPT_ENCODING => '',
                                      CURLOPT_MAXREDIRS => 10,
                                      CURLOPT_TIMEOUT => 0,
                                      CURLOPT_FOLLOWLOCATION => true,
                                      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                      CURLOPT_CUSTOMREQUEST => 'POST',
                                      CURLOPT_POSTFIELDS =>'{
                                        "method": "generateGuide",
                                        "Content": "Herramientas.",
                                        "SourceName": "Eduardo",
                                        "SourceLastName": "Gomex Gtz",
                                        "SourceEmail": "eduardo@cangoo.com",
                                        "SourceStreet": "Manuel Acuna",
                                        "SourceNumber": "12",
                                        "SourceNeighborhood": "El venado",
                                        "SourcePhone": "3332412342",
                                        "SourceState": "Jalisco",
                                        "SourceMunicipality": "Tala",
                                        "SourceReferences": "Por la CFE",
                                        "DestinationName": "Raul",
                                        "DestinationLastName": "Corona",
                                        "DestinationEmail": "rrcorona@gmail.com",
                                        "DestinationStreet": "Hidalgo",
                                        "DestinationNumber": "12",
                                        "DestinationNeighborhood": "San Angel",
                                        "DestinationPhone": "3332412345",
                                        "DestinationState": "Estado de México",
                                        "DestinationMunicipality": "Ciudad de Mexico",
                                        "DestinationReferences": "Por el estadio",
                                        "Token" : "5rnhqRGYDnVCTaZi11IGTaupbsiPRrU5Cgw82QMe",
                                        "Environment": "sandbox" 
                                    }',
                                      CURLOPT_HTTPHEADER => array(
                                        'Content-Type: application/json',
                                        'Authorization: Bearer [ACCESS_TOKEN]'
                                      ),
                                    ));
                                    
                                    $response = curl_exec($curl);
                                    
                                    curl_close($curl);
                                    echo $response;
                                ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Content-Type", "application/json");
                                myHeaders.append("Authorization", "Bearer sandbox");

                                const raw = JSON.stringify({
                                  "method": "generateGuide",
                                  "Content": "Herramientas.",
                                  "SourceName": "Eduardo",
                                  "SourceLastName": "Gomez Gtz",
                                  "SourceEmail": "eduardo@cangoo.com",
                                  "SourceStreet": "Manuel Acuna",
                                  "SourceNumber": "12",
                                  "SourceNeighborhood": "El venado",
                                  "SourcePhone": "3332412342",
                                  "SourceState": "Jalisco",
                                  "SourceMunicipality": "Tala",
                                  "SourceReferences": "Por la CFE",
                                  "DestinationName": "Raul",
                                  "DestinationLastName": "Corona",
                                  "DestinationEmail": "rrcorona@gmail.com",
                                  "DestinationStreet": "Hidalgo",
                                  "DestinationNumber": "12",
                                  "DestinationNeighborhood": "San Angel",
                                  "DestinationPhone": "3332412345",
                                  "DestinationState": "Estado de México",
                                  "DestinationMunicipality": "Ciudad de Mexico",
                                  "DestinationReferences": "Por el estadio",
                                  "Token": "5rnhqRGYDnVCTaZi11IGTaupbsiPRrU5Cgw82QMe",
                                  "Environment": "sandbox"
                                });

                                const requestOptions = {
                                  method: "POST",
                                  headers: myHeaders,
                                  body: raw,
                                  redirect: "follow"
                                };

                                fetch("https://cangoo.mx/api/sandbox_v1.php", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');
                                let data = JSON.stringify({
                                  "method": "generateGuide",
                                  "Content": "Herramientas.",
                                  "SourceName": "Eduardo",
                                  "SourceLastName": "Gomez Gtz",
                                  "SourceEmail": "eduardo@cangoo.com",
                                  "SourceStreet": "Manuel Acuna",
                                  "SourceNumber": "12",
                                  "SourceNeighborhood": "El venado",
                                  "SourcePhone": "3332412342",
                                  "SourceState": "Jalisco",
                                  "SourceMunicipality": "Tala",
                                  "SourceReferences": "Por la CFE",
                                  "DestinationName": "Raul",
                                  "DestinationLastName": "Corona",
                                  "DestinationEmail": "rrcorona@gmail.com",
                                  "DestinationStreet": "Hidalgo",
                                  "DestinationNumber": "12",
                                  "DestinationNeighborhood": "San Angel",
                                  "DestinationPhone": "3332412345",
                                  "DestinationState": "Estado de México",
                                  "DestinationMunicipality": "Ciudad de Mexico",
                                  "DestinationReferences": "Por el estadio",
                                  "Token": "5rnhqRGYDnVCTaZi11IGTaupbsiPRrU5Cgw82QMe",
                                  "Environment": "sandbox"
                                });

                                let config = {
                                  method: 'post',
                                  maxBodyLength: Infinity,
                                  url: 'https://cangoo.mx/api/sandbox_v1.php',
                                  headers: {
                                    'Content-Type': 'application/json',
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  },
                                  data : data
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests
                                import json

                                url = "https://cangoo.mx/api/sandbox_v1.php"

                                payload = json.dumps({
                                  "method": "generateGuide",
                                  "Content": "Herramientas.",
                                  "SourceName": "Eduardo",
                                  "SourceLastName": "Gomez Gtz",
                                  "SourceEmail": "eduardo@cangoo.com",
                                  "SourceStreet": "Manuel Acuna",
                                  "SourceNumber": "12",
                                  "SourceNeighborhood": "El venado",
                                  "SourcePhone": "3332412342",
                                  "SourceState": "Jalisco",
                                  "SourceMunicipality": "Tala",
                                  "SourceReferences": "Por la CFE",
                                  "DestinationName": "Raul",
                                  "DestinationLastName": "Corona",
                                  "DestinationEmail": "rrcorona@gmail.com",
                                  "DestinationStreet": "Hidalgo",
                                  "DestinationNumber": "12",
                                  "DestinationNeighborhood": "San Angel",
                                  "DestinationPhone": "3332412345",
                                  "DestinationState": "Estado de México",
                                  "DestinationMunicipality": "Ciudad de Mexico",
                                  "DestinationReferences": "Por el estadio",
                                  "Token": "5rnhqRGYDnVCTaZi11IGTaupbsiPRrU5Cgw82QMe",
                                  "Environment": "sandbox"
                                })
                                headers = {
                                  'Content-Type': 'application/json',
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("POST", url, headers=headers, data=payload)

                                print(response.text)
                            
Resultado

JSON

                                {
                                    "status": "true",
                                    "timestamp": "2025-01-24 15:11:27",
                                    "version": "1.0.0",
                                    "uptime": "0.49s",
                                    "guide": {
                                        "packages": 1,
                                        "order_num": 1925962,
                                        "paqueteria": "DHL",
                                        "creation_date": "2025-01-24 15:11:27",
                                        "cost": 686.48,
                                        "guide": 6768246905,
                                        "link_guide": "https://cangoo.mx/assets/images/guias_sandbox/guia.pdf",
                                        "funds": 6918.44
                                    }
                                }
                            
POST - Generar recolección

Este endpoint permite a los usuarios generar una recolección para servicios de paquetería. Los usuarios pueden especificar la paquetería de la que desean solicitar la recolección, lo que permite una integración eficiente con múltiples proveedores de servicio.

Para generar una recolección, es necesario incluir en el cuerpo de la solicitud, utilizando el formato JSON:

  • method: (string) valor permitido generatePickup
  • Messaging: (string) Nombre de mensajería: DHL, FEDEX, UPS, SENDEX.
  • Name: (string) Nombre de contacto.
  • LastName: (string) Apellidos de contacto.
  • Email: (string) Email de contacto.
  • Street: (string) Calle donde será la recolección.
  • Number: (string) Número donde será la recolección.
  • NumberInt: (string) Número interior donde será la recolección (opcional).
  • Neighborhood: (string) Colonia donde será la recolección.
  • Phone: (string) Teléfono de contacto (Min: 8 caracteres).
  • City: (string) Ciudad donde será la recolección. (Opcional).
  • Municipality: (string) Municipio donde será la recolección.
  • State: (string) Estado donde será la recolección.
  • References: (string) Referencias donde será la recolección.
  • ZipCode: (string) Código postal donde será la recolección.
  • Packages: (integer) Cantidad de piezas recolectadas.
  • PackageType: (string) Tipo de paquete de la recolección. Valores permitidos (Paquetes, Sobres, Valijas, Tarimas)
  • Weight: (integer) Peso total del paquete o la suma de todos los paquetes.
  • Long: (integer) Largo en cm que tiene el paquete o la suma de todos los paquetes.
  • Width: (integer) Ancho en cm que tiene el paquete o la suma de todos los paquetes.
  • Height: (integer) Alto en cm que tiene el paquete o la suma de todos los paquetes.
  • DatePickup: (string) Fecha de recolección. Formato de fecha 2025-11-14
  • OpeningHours: (string) Hora de apertura de comercio. Formato de hora 09:00
  • OpeningHours: (string) Hora de cierre.Formato de hora 18:00
  • Instructions: (string) Instrucciones para la recolección (opcional)
  • Environment: (string) valor permitido sandbox
Ejemplos de Uso

CURL

                                curl --location 'https://cangoo.mx/api/sandbox_v1.php' \
                                --header 'Content-Type: application/json' \
                                --header 'Authorization: Bearer [ACCESS_TOKEN]' \
                                --data-raw '{
                                    "method": "generatePickup",
                                    "Messaging": "DHL",
                                    "Name": "Eduardo",
                                    "LastName": "Gomez",
                                    "Email": "eduardo@cangoo.com",
                                    "Street": "Manuel Acuna",
                                    "Number": "12",
                                    "Neighborhood": "El venado",
                                    "Phone": "3332412342",
                                    "State": "Jalisco",
                                    "Municipality": "Tala",
                                    "References": "Por la CFE",
                                    "ZipCode": "45300",
                                    "PackageType": "Sobres",
                                    "Packages": 2,
                                    "Weight": 3,
                                    "Long": 3,
                                    "Width": 3,
                                    "Height": 3,
                                    "DatePickup": "2025-02-07",
                                    "OpeningHours": "09:00",
                                    "ClosingHours": "18:00",
                                    "Environment": "sandbox"
                                }'
                            

PHP

                                <?php

                                        $curl = curl_init();
                                        
                                        curl_setopt_array($curl, array(
                                          CURLOPT_URL => 'https://cangoo.mx/api/sandbox_v1.php',
                                          CURLOPT_RETURNTRANSFER => true,
                                          CURLOPT_ENCODING => '',
                                          CURLOPT_MAXREDIRS => 10,
                                          CURLOPT_TIMEOUT => 0,
                                          CURLOPT_FOLLOWLOCATION => true,
                                          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                          CURLOPT_CUSTOMREQUEST => 'POST',
                                          CURLOPT_POSTFIELDS =>'{
                                            "method": "generatePickup",
                                            "Messaging": "DHL",
                                            "Name": "Eduardo",
                                            "LastName": "Gomez",
                                            "Email": "eduardo@cangoo.com",
                                            "Street": "Manuel Acuna",
                                            "Number": "12",
                                            "Neighborhood": "El venado",
                                            "Phone": "3332412342",
                                            "State": "Jalisco",
                                            "Municipality": "Tala",
                                            "References": "Por la CFE",
                                            "ZipCode": "45300",
                                            "PackageType": "Sobres",
                                            "Packages": 2,
                                            "Weight": 3,
                                            "Long": 3,
                                            "Width": 3,
                                            "Height": 3,
                                            "DatePickup": "2025-02-07",
                                            "OpeningHours": "09:00",
                                            "ClosingHours": "18:00",
                                            "Environment": "sandbox"
                                        }',
                                          CURLOPT_HTTPHEADER => array(
                                            'Content-Type: application/json',
                                            'Authorization: Bearer [ACCESS_TOKEN]'
                                          ),
                                        ));
                                        
                                        $response = curl_exec($curl);
                                        
                                        curl_close($curl);
                                        echo $response;
                                ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Content-Type", "application/json");
                                myHeaders.append("Authorization", "Bearer [ACCESS_TOKEN]");

                                const raw = JSON.stringify({
                                  "method": "generatePickup",
                                  "Messaging": "DHL",
                                  "Name": "Eduardo",
                                  "LastName": "Gomez",
                                  "Email": "eduardo@cangoo.com",
                                  "Street": "Manuel Acuna",
                                  "Number": "12",
                                  "Neighborhood": "El venado",
                                  "Phone": "3332412342",
                                  "State": "Jalisco",
                                  "Municipality": "Tala",
                                  "References": "Por la CFE",
                                  "ZipCode": "45300",
                                  "PackageType": "Sobres",
                                  "Packages": 2,
                                  "Weight": 3,
                                  "Long": 3,
                                  "Width": 3,
                                  "Height": 3,
                                  "DatePickup": "2025-02-07",
                                  "OpeningHours": "09:00",
                                  "ClosingHours": "18:00",
                                  "Environment": "sandbox"
                                });

                                const requestOptions = {
                                  method: "POST",
                                  headers: myHeaders,
                                  body: raw,
                                  redirect: "follow"
                                };

                                fetch("https://cangoo.mx/api/sandbox_v1.php", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');
                                let data = JSON.stringify({
                                  "method": "generatePickup",
                                  "Messaging": "DHL",
                                  "Name": "Eduardo",
                                  "LastName": "Gomez",
                                  "Email": "eduardo@cangoo.com",
                                  "Street": "Manuel Acuna",
                                  "Number": "12",
                                  "Neighborhood": "El venado",
                                  "Phone": "3332412342",
                                  "State": "Jalisco",
                                  "Municipality": "Tala",
                                  "References": "Por la CFE",
                                  "ZipCode": "45300",
                                  "PackageType": "Sobres",
                                  "Packages": 2,
                                  "Weight": 3,
                                  "Long": 3,
                                  "Width": 3,
                                  "Height": 3,
                                  "DatePickup": "2025-02-07",
                                  "OpeningHours": "09:00",
                                  "ClosingHours": "18:00",
                                  "Environment": "sandbox"
                                });

                                let config = {
                                  method: 'post',
                                  maxBodyLength: Infinity,
                                  url: 'https://cangoo.mx/api/sandbox_v1.php',
                                  headers: {
                                    'Content-Type': 'application/json',
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  },
                                  data : data
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests
                                import json

                                url = "https://cangoo.mx/api/sandbox_v1.php"

                                payload = json.dumps({
                                  "method": "generatePickup",
                                  "Messaging": "DHL",
                                  "Name": "Eduardo",
                                  "LastName": "Gomez",
                                  "Email": "eduardo@cangoo.com",
                                  "Street": "Manuel Acuna",
                                  "Number": "12",
                                  "Neighborhood": "El venado",
                                  "Phone": "3332412342",
                                  "State": "Jalisco",
                                  "Municipality": "Tala",
                                  "References": "Por la CFE",
                                  "ZipCode": "45300",
                                  "PackageType": "Sobres",
                                  "Packages": 2,
                                  "Weight": 3,
                                  "Long": 3,
                                  "Width": 3,
                                  "Height": 3,
                                  "DatePickup": "2025-02-07",
                                  "OpeningHours": "09:00",
                                  "ClosingHours": "18:00",
                                  "Environment": "sandbox"
                                })
                                headers = {
                                  'Content-Type': 'application/json',
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("POST", url, headers=headers, data=payload)

                                print(response.text)
                            
Resultado

JSON

                                {
                                    "status": "true",
                                    "timestamp": "2025-02-05 09:17:33",
                                    "version": "1.0.0",
                                    "uptime": "14.44s",
                                    "pickup": {
                                        "pick_up": "246",
                                        "message": "Petición exitosa!"
                                    }
                                }
                            
POST - Rastreo de guía

Este endpoint permite a los usuarios rastrear el estado actual de un envío mediante la introducción del número de guía correspondiente. Al realizar la consulta, el sistema proporciona información detallada sobre la ubicación y el estado del paquete a lo largo de su trayecto.

La respuesta incluye:

  • Estado del paquete: Información sobre su condición y etapa en el proceso de envío.
  • Historial de movimientos: Registro detallado de las ubicaciones y eventos relacionados con el paquete.
  • Información del receptor: Datos relevantes sobre la entrega y confirmación.

Esta funcionalidad es esencial para el seguimiento en tiempo real de los envíos, facilitando a los usuarios una gestión eficiente de sus paquetes y permitiéndoles ofrecer información actualizada y precisa a los destinatarios.

Para rasterar el estado actual de un envío, es necesario incluir en el cuerpo de la solicitud, utilizando el formato JSON:

  • method: (string) valor permitido trackingGuide
  • Guide: (string) Número de guía a consultar.
Catálogo de estatus del envío:
  • Por Recolecta
  • Recolectado
  • En Transito
  • Entregada
  • Cancelada
  • Excepcion entrega
Ejemplos de Uso

CURL

                                curl --location 'https://cangoo.mx/api/sandbox_v1.php' \
                                --header 'Content-Type: application/json' \
                                --header 'Authorization: Bearer [ACCESS_TOKEN]' \
                                --data '{
                                    "method": "trackingGuide",
                                    "Guide": "8364935758"
                                }'
                            

PHP

                                <?php

                                    $curl = curl_init();
                                    
                                    curl_setopt_array($curl, array(
                                      CURLOPT_URL => 'https://cangoo.mx/api/sandbox_v1.php',
                                      CURLOPT_RETURNTRANSFER => true,
                                      CURLOPT_ENCODING => '',
                                      CURLOPT_MAXREDIRS => 10,
                                      CURLOPT_TIMEOUT => 0,
                                      CURLOPT_FOLLOWLOCATION => true,
                                      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                      CURLOPT_CUSTOMREQUEST => 'POST',
                                      CURLOPT_POSTFIELDS =>'{
                                        "method": "trackingGuide",
                                        "Guide": "8364935758"
                                    }',
                                      CURLOPT_HTTPHEADER => array(
                                        'Content-Type: application/json',
                                        'Authorization: Bearer [ACCESS_TOKEN]'
                                      ),
                                    ));
                                    
                                    $response = curl_exec($curl);
                                    
                                    curl_close($curl);
                                    echo $response;
                                ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Content-Type", "application/json");
                                myHeaders.append("Authorization", "Bearer [ACCESS_TOKEN]");

                                const raw = JSON.stringify({
                                  "method": "trackingGuide",
                                  "Guide": "8364935758"
                                });

                                const requestOptions = {
                                  method: "POST",
                                  headers: myHeaders,
                                  body: raw,
                                  redirect: "follow"
                                };

                                fetch("https://cangoo.mx/api/sandbox_v1.php", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');
                                let data = JSON.stringify({
                                  "method": "trackingGuide",
                                  "Guide": "8364935758"
                                });

                                let config = {
                                  method: 'post',
                                  maxBodyLength: Infinity,
                                  url: 'https://cangoo.mx/api/sandbox_v1.php',
                                  headers: {
                                    'Content-Type': 'application/json',
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  },
                                  data : data
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests
                                import json

                                url = "https://cangoo.mx/api/sandbox_v1.php"

                                payload = json.dumps({
                                  "method": "trackingGuide",
                                  "Guide": "8364935758"
                                })
                                headers = {
                                  'Content-Type': 'application/json',
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("POST", url, headers=headers, data=payload)

                                print(response.text)
                            
Resultado

JSON

                                {
                                    "status": "true",
                                    "timestamp": "2025-01-24 15:10:27",
                                    "version": "1.0.0",
                                    "uptime": "0.28s",
                                    "guide": {
                                        "order": "4386889",
                                        "clave": "DHL",
                                        "link_guide": "https://cangoo.mx/assets/images/guias_sandbox/guia.pdf",
                                        "status": "Por Recolectar",
                                        "guide": "8364935758"
                                    }
                                }
                            
POST - Cancelar Guía

Este endpoint te permite generar una solicitud para cancelar una guía de envío.

Consideraciones Importantes:
Plazo de Solicitud : Solo puedes solicitar la cancelación dentro de las 24 horas posteriores a la creación de la guía.
Paqueterías Soportadas: Actualmente, solo la paquetería SENDEX permite cancelaciones a través de este sistema.
Tiempo de Procesamiento: Si tu solicitud cumple con todos los requisitos, la cancelación de la guía se procesará en un plazo de 72 horas.
Seguimiento de la Solicitud: Para darle seguimiento al estado de tu solicitud de cancelación, puedes hacerlo utilizando el endpoint de Rastreo de guía.

Para generar una solicitud de cancelación, es necesario incluir en el cuerpo de la solicitud, utilizando el formato JSON:

  • method: (string) valor permitido cancelGuide
  • Guide: (string) Número de guía a cancelar.
  • Comment: (string) Motivo de la cancelación.
  • Environment: (string) valor permitido sandbox
Ejemplos de Uso

CURL

                                curl --location 'http://localhost:8080/api/sandbox_v1.php' \
                                --header 'Content-Type: application/json' \
                                --header 'Authorization: Bearer [ACCESS_TOKEN]' \
                                --data '{
                                    "method": "cancelGuide",
                                    "Guide": "340868060013",
                                    "Comment" : "Se genero incorrectamente",
                                    "Environment": "production"
                                }'
                            

PHP

                                <?php

                                    $curl = curl_init();

                                    curl_setopt_array($curl, array(
                                      CURLOPT_URL => 'http://localhost:8080/api/sandbox_v1.php',
                                      CURLOPT_RETURNTRANSFER => true,
                                      CURLOPT_ENCODING => '',
                                      CURLOPT_MAXREDIRS => 10,
                                      CURLOPT_TIMEOUT => 0,
                                      CURLOPT_FOLLOWLOCATION => true,
                                      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                      CURLOPT_CUSTOMREQUEST => 'POST',
                                      CURLOPT_POSTFIELDS =>'{
                                        "method": "cancelGuide",
                                        "Guide": "340868060013",
                                        "Comment" : "Se genero incorrectamente",
                                        "Environment": "production"
                                    }',
                                      CURLOPT_HTTPHEADER => array(
                                        'Content-Type: application/json',
                                        'Authorization: Bearer [ACCESS_TOKEN]'
                                      ),
                                    ));

                                    $response = curl_exec($curl);

                                    curl_close($curl);
                                    echo $response;
                                ?>                            

JavaScript (Fetch API)

                                const myHeaders = new Headers();
                                myHeaders.append("Content-Type", "application/json");
                                myHeaders.append("Authorization", "Bearer [ACCESS_TOKEN]");

                                const raw = JSON.stringify({
                                  "method": "cancelGuide",
                                  "Guide": "340868060013",
                                  "Comment": "Se genero incorrectamente",
                                  "Environment": "production"
                                });

                                const requestOptions = {
                                  method: "POST",
                                  headers: myHeaders,
                                  body: raw,
                                  redirect: "follow"
                                };

                                fetch("http://localhost:8080/api/sandbox_v1.php", requestOptions)
                                  .then((response) => response.text())
                                  .then((result) => console.log(result))
                                  .catch((error) => console.error(error));
                            

Node.js

                                const axios = require('axios');
                                let data = JSON.stringify({
                                  "method": "cancelGuide",
                                  "Guide": "340868060013",
                                  "Comment": "Se genero incorrectamente",
                                  "Environment": "production"
                                });

                                let config = {
                                  method: 'post',
                                  maxBodyLength: Infinity,
                                  url: 'http://localhost:8080/api/sandbox_v1.php',
                                  headers: {
                                    'Content-Type': 'application/json',
                                    'Authorization': 'Bearer [ACCESS_TOKEN]'
                                  },
                                  data : data
                                };

                                axios.request(config)
                                .then((response) => {
                                  console.log(JSON.stringify(response.data));
                                })
                                .catch((error) => {
                                  console.log(error);
                                });
                            

Python

                                import requests
                                import json

                                url = "http://localhost:8080/api/sandbox_v1.php"

                                payload = json.dumps({
                                  "method": "cancelGuide",
                                  "Guide": "340868060013",
                                  "Comment": "Se genero incorrectamente",
                                  "Environment": "production"
                                })
                                headers = {
                                  'Content-Type': 'application/json',
                                  'Authorization': 'Bearer [ACCESS_TOKEN]'
                                }

                                response = requests.request("POST", url, headers=headers, data=payload)

                                print(response.text)
                            
Resultado

JSON

                                {
                                    "status": "true",
                                    "timestamp": "2025-07-21 15:10:58",
                                    "message": "The cancellation request has been successfully registered. If everything is correct, the tracking number will be canceled within 72 hours.",
                                    "version": "1.0.0",
                                    "uptime": "0.66s",
                                    "guide": "340868060013"
                                }
                            

Regresar