# 99 Minutos Documentation > Developer Portal - Resolvemos toda la logística de tu ecommerce. Tu vendes, nosotros nos encargamos de lo demás. ## Guides - [Tipo de Envios](https://developers.99minutos.com/docs/tipo-de-envios.md) - [Estados de 99minutos](https://developers.99minutos.com/docs/estados-de-99minutos.md) ## API Reference - [/api/v3/orders/{orderid}/confirm](https://developers.99minutos.com/reference/orders_confirm_create.md): Confirm change the value draft to False for the given order id - [/api/v3/orders/{id}](https://developers.99minutos.com/reference/orders_retrieve.md): Return a order given an encoded order id. The order id must be MongoDB identifier - [/api/v3/orders](https://developers.99minutos.com/reference/orders_list.md): Get the list of active orders. - [/api/v3/orders](https://developers.99minutos.com/reference/orders_create.md): Create orders. - [/api/v3/orders/multibox](https://developers.99minutos.com/reference/orders_multibox_create.md): Create a multibox order that groups multiple packages (children) under a single parent order (master). All children share the same origin, destination, sender and recipient. Useful when a single shipment contains multiple parcels that must travel together. Minimum 1 child, maximum 20 children per order. - [/api/v3/coverage/zipcodes/{country}](https://developers.99minutos.com/reference/getzipcodesbycountry.md): Return list of postal codes by country paginated - [/api/v3/documents/guides](https://developers.99minutos.com/reference/documents_guides_create.md): Return a list of pdf guides for the given identifiers. Allowed sizes | Value | Description | | --- | --- | | letter | Document size of 9 x 11 | | zebra | Document size of 4 x 6 | | small | Document size of 4 x 3 | All sizes are inches - [/api/v3/documents/zpl](https://developers.99minutos.com/reference/documents_zpl_create.md): ZPL returns a list of ZPL based on the received identifiers. - [/api/v3/locations](https://developers.99minutos.com/reference/locations_create.md): Get the location id of a given address Through this endpoint you can exchange an address for a location id. The purpose of this exchange is that later, in a second request, you can include the location id as origin or destination to create an order. Using this flow you won't need to include any more information and you can always reuse the location id for that point. - [/api/v3/locations/all](https://developers.99minutos.com/reference/locations_all_retrieve.md): Location viewset. - [/api/v3/locations/nearest](https://developers.99minutos.com/reference/locations_nearest_create.md): Location viewset. - [/api/v3/oauth/token](https://developers.99minutos.com/reference/oauth_token_create.md): Request an access token sending the client credentials. - [/api/v3/shipments/{id}](https://developers.99minutos.com/reference/get-api-v3-shipments-id.md): Return a shipment given an trackingId or internalKey - [/api/v3/shipments/{id}](https://developers.99minutos.com/reference/shipments_partial_update.md): Update the destination address of a shipment. The shipment must be in one of the following statuses: DRAFT CONFIRMED UNSUCCESSFULLPICKUP ONROADTOPICKUP COLLECTED STORED - [/api/v3/shipments/{id}](https://developers.99minutos.com/reference/delete-api-v3-shipments-id.md): Cancels an order by trackingId or internalKey. - [/api/v3/shipments/tracking](https://developers.99minutos.com/reference/shipments_tracking_retrieve.md): Track a shipment by the given identifier. Get all information about the shipments with the related events and data. **Remember that if you are thinking of implementing a recurring pull system on this endpoint, you must limit requests to a maximum of 8 per second. However, we also offer a real-time webhook notification system so you get every change in the status of the shipments, which is more efficient than pulling. For more information go to the webhooks section** | **STATUS CODE** | **STATUS NAME** | **DESCRIPTION** | | --- | --- | --- | | 1001 | DRAFT | It is the first status when the shipment is created `in draft mode`. It means that the shipment is not yet ready by the client and its flow will not start until it is confirmed. Note that the draft value is passed when creating the order and defaults to false. Therefore, this status is only passed through if the draft was previously set to true when creating the order. | | 1002 | CONFIRMED | The shipment has been confirmed. It is the first status to trigger the logistics operation. It is the first default state when creating an order (false draft) or when confirming a shipment that was previously created as a draft. | | 2002 | ON_ROAD_TO_PICKUP | The shipment is on its way to be picked up. So a driver is heading to the point of origin. *`Does not apply to p99`* | | 2003 | COLLECTED | The shipment has been collected and is in the domain of an associated driver of 99minutos. | | 2101 | UNSUCCESSFUL_PICKUP | The shipment could not be collected. Within the response object, the attempt attribute is added with the number of collection attempts. `See examples` | | 3001 | STORED | The shipment is stored in a wharehouse for 99minutos. | | 3004 | ON_LINEHAUL | The shipment is in transit between stations for 99minutos `Not all shipments go through this state.` | | 4001 | ON_ROAD_TO_DELIVERY | The shipment has left the network of 99minutos stations to the final destination | | 4002 | DELIVERED | The shipment has been successfully delivered to its recipient | | 4101 | UNSUCCESSFUL_DELIVERY | The shipment could not be delivered. Inside the response object, the attempt attribute is added with the number of delivery attempts. `See examples` | | 5001 | ON_ROAD_TO_RETURN | Shipping on the way to return. The return occurs when it is not possible to deliver the package to the recipient and it is returned to the origin | | 5002 | RETURNED | The shipment has been returned to the origin successfully | | 5101 | UNSUCCESSFUL_RETURN | The shipment could not be returned. Inside the response object, the attempt attribute is added with the number of return attempts. `See examples` | | 7101 | IN_CORRECTION | In some cases the information of origin, destination, etc. may not be precise enough to make the shipment. Therefore, this status indicates that some information of the shipment must be corrected. | | 7102 | CORRECTED | If the shipment required correction, it indicates that this has already been done. | | 8001 | STOLEN | In extremely rare cases for reasons other than 99minutos the shipment is stolen. `This is extremely rare.` | | 8003 | CANCELLED | The shipment has been canceled via API by the client | | 8004 | DAMAGED | The shipment was damaged during delivery. | - [/api/v3/shipments/tracking/batch](https://developers.99minutos.com/reference/shipments_tracking_batch_retrieve.md): Batch tracking can add multiple identifiers of the following format --> `/api/v3/shipments/tracking/batch?identifiers={trackingId}&identifiers={trackingId}` Track a shipment by the given identifier. Get all information about the shipments with the related events and data. **Remember that if you are thinking of implementing a recurring pull system on this endpoint, you must limit requests to a maximum of 8 per second. However, we also offer a real-time webhook notification system so you get every change in the status of the shipments, which is more efficient than pulling. For more information go to the webhooks section** | **STATUS CODE** | **STATUS NAME** | **DESCRIPTION** | | --- | --- | --- | | 1001 | DRAFT | It is the first status when the shipment is created `in draft mode`. It means that the shipment is not yet ready by the client and its flow will not start until it is confirmed. Note that the draft value is passed when creating the order and defaults to false. Therefore, this status is only passed through if the draft was previously set to true when creating the order. | | 1002 | CONFIRMED | The shipment has been confirmed. It is the first status to trigger the logistics operation. It is the first default state when creating an order (false draft) or when confirming a shipment that was previously created as a draft. | | 2002 | ON_ROAD_TO_PICKUP | The shipment is on its way to be picked up. So a driver is heading to the point of origin. *`Does not apply to p99`* | | 2003 | COLLECTED | The shipment has been collected and is in the domain of an associated driver of 99minutos. | | 2101 | UNSUCCESSFUL_PICKUP | The shipment could not be collected. Within the response object, the attempt attribute is added with the number of collection attempts. `See examples` | | 3001 | STORED | The shipment is stored in a wharehouse for 99minutos. | | 3004 | ON_LINEHAUL | The shipment is in transit between stations for 99minutos `Not all shipments go through this state.` | | 4001 | ON_ROAD_TO_DELIVERY | The shipment has left the network of 99minutos stations to the final destination | | 4002 | DELIVERED | The shipment has been successfully delivered to its recipient | | 4101 | UNSUCCESSFUL_DELIVERY | The shipment could not be delivered. Inside the response object, the attempt attribute is added with the number of delivery attempts. `See examples` | | 5001 | ON_ROAD_TO_RETURN | Shipping on the way to return. The return occurs when it is not possible to deliver the package to the recipient and it is returned to the origin | | 5002 | RETURNED | The shipment has been returned to the origin successfully | | 5101 | UNSUCCESSFUL_RETURN | The shipment could not be returned. Inside the response object, the attempt attribute is added with the number of return attempts. `See examples` | | 7101 | IN_CORRECTION | In some cases the information of origin, destination, etc. may not be precise enough to make the shipment. Therefore, this status indicates that some information of the shipment must be corrected. | | 7102 | CORRECTED | If the shipment required correction, it indicates that this has already been done. | | 8001 | STOLEN | In extremely rare cases for reasons other than 99minutos the shipment is stolen. `This is extremely rare.` | | 8003 | CANCELLED | The shipment has been canceled via API by the client | | 8004 | DAMAGED | The shipment was damaged during delivery. | - [/api/v3/webhooks](https://developers.99minutos.com/reference/post-api-v3-webhooks.md): Submit a new webhook configuration. You can set 2 settings at most. webhook notification example: ```json { "StatusName": "stored", // Current status of the order, the complete list of events at the tracking endpoint, are sent in camelCase. "TrackingId": "2139671481", // Identifier generated by 99minutos "InternalKey": "SOME_ID", // Identifier sent by the customer "Events": [ // List of events through which the shipment has transited in ascending order { "StatusCode": "1002", "StatusName": "confirmed", "Data": { "comment": "NEW_ORDER_CONFIRMED", // Additional event information "evidence": [] // Evidence of transition, applies only to delivery events, failed delivery attempts and pickup. }, "CreatedAt": "2023-01-02 23:55:39" // UTC Time }, { "StatusCode": "2003", "StatusName": "collected", "Data": { "comment": "Recolectada por el veloz Don Veloz N/A 99m B 2eeb2a6", "evidence": [] }, "CreatedAt": "2023-01-03 20:12:43" }, { "StatusCode": "3001", "StatusName": "stored", "Data": { "comment": "En estación MX5 por módulo de inducción", "evidence": [] }, "CreatedAt": "2023-01-03 22:20:02" }, { "StatusCode": "3004", "StatusName": "onLinehaul", "Data": { "comment": "En camino a estación Tultitlán desde estación Pantaco por jhon.doe el número de orden 2139671481", "evidence": [] }, "CreatedAt": "2023-01-04 01:13:46" }, { "StatusCode": "3001", "StatusName": "stored", "Data": { "comment": "En estación MX0 por módulo de inducción", "evidence": [] }, "CreatedAt": "2023-01-04 04:17:42" }, { "StatusCode": "3002", "StatusName": "onContainer", "Data": { "comment": "Contenerizado en la estación MX0 en el contenedor VQA-319 en el finger F1", "evidence": [] }, "CreatedAt": "2023-01-04 06:28:12" }, { "StatusCode": "3003", "StatusName": "chargedToVehicle", "Data": { "comment": "Subida al line haul del veloz Jhon Doe con las placas LA37321 en la estacion MX0 dentro del contenedor VQA-319", "evidence": [] }, "CreatedAt": "2023-01-05 05:13:24" }, { "StatusCode": "3004", "StatusName": "onLinehaul", "Data": { "comment": "Despachado de la estación MX0 hacia la estación MCH2, en el line haul del veloz Jhon Doe con las placas LA37321 en el contenedor VQA-319", "evidence": [] }, "CreatedAt": "2023-01-05 06:31:29" }, { "StatusCode": "3001", "StatusName": "stored", "Data": { "comment": "En estación final MCH2 por módulo de inducción", "evidence": [] }, "CreatedAt": "2023-01-05 16:37:06" }, { "StatusCode": "4001", "StatusName": "onRoadToDelivery", "Data": { "comment": "Asignada a entrega en la estación al veloz Jhon. Ruta: 49b91331-2be0-2fd4-9b25-1accc772f937", "evidence": [] }, "CreatedAt": "2023-01-05 16:01:40" }, { "StatusCode": "4002", "StatusName": "delivered", "Data": { "comment": "Titular - Carlos Ramirez | <>", "evidence": [ "https://copilot-image-proxy-qndxoltwga-uc.a.run.app/view/62b6fec1836a6321a5ca5a4a.jpeg", // url to the photo of the evidences "https://copilot-image-proxy-qndxoltwga-uc.a.run.app/view/63b1fec1b030b63f06db10a5.jpeg", "https://copilot-image-proxy-qndxoltwga-uc.a.run.app/view/62b1fab2b031b63d01da31b7.jpeg" ] }, "CreatedAt": "2023-01-05 16:45:54" } // You can have n events until delivery or return. ] } ``` - [/api/v3/webhooks](https://developers.99minutos.com/reference/get-api-v3-webhooks.md): Get webhooks configurations webhook notification example: ```json { "StatusName": "stored", // Current status of the order, the complete list of events at the tracking endpoint, are sent in camelCase. "TrackingId": "2139671481", // Identifier generated by 99minutos "InternalKey": "SOME_ID", // Identifier sent by the customer "Events": [ // List of events through which the shipment has transited in ascending order { "StatusCode": "1002", "StatusName": "confirmed", "Data": { "comment": "NEW_ORDER_CONFIRMED", // Additional event information "evidence": [] // Evidence of transition, applies only to delivery events, failed delivery attempts and pickup. }, "CreatedAt": "2023-01-02 23:55:39" // UTC Time }, { "StatusCode": "2003", "StatusName": "collected", "Data": { "comment": "Recolectada por el veloz Don Veloz N/A 99m B 2eeb2a6", "evidence": [] }, "CreatedAt": "2023-01-03 20:12:43" }, { "StatusCode": "3001", "StatusName": "stored", "Data": { "comment": "En estación MX5 por módulo de inducción", "evidence": [] }, "CreatedAt": "2023-01-03 22:20:02" }, { "StatusCode": "3004", "StatusName": "onLinehaul", "Data": { "comment": "En camino a estación Tultitlán desde estación Pantaco por jhon.doe el número de orden 2139671481", "evidence": [] }, "CreatedAt": "2023-01-04 01:13:46" }, { "StatusCode": "3001", "StatusName": "stored", "Data": { "comment": "En estación MX0 por módulo de inducción", "evidence": [] }, "CreatedAt": "2023-01-04 04:17:42" }, { "StatusCode": "3002", "StatusName": "onContainer", "Data": { "comment": "Contenerizado en la estación MX0 en el contenedor VQA-319 en el finger F1", "evidence": [] }, "CreatedAt": "2023-01-04 06:28:12" }, { "StatusCode": "3003", "StatusName": "chargedToVehicle", "Data": { "comment": "Subida al line haul del veloz Jhon Doe con las placas LA37321 en la estacion MX0 dentro del contenedor VQA-319", "evidence": [] }, "CreatedAt": "2023-01-05 05:13:24" }, { "StatusCode": "3004", "StatusName": "onLinehaul", "Data": { "comment": "Despachado de la estación MX0 hacia la estación MCH2, en el line haul del veloz Jhon Doe con las placas LA37321 en el contenedor VQA-319", "evidence": [] }, "CreatedAt": "2023-01-05 06:31:29" }, { "StatusCode": "3001", "StatusName": "stored", "Data": { "comment": "En estación final MCH2 por módulo de inducción", "evidence": [] }, "CreatedAt": "2023-01-05 16:37:06" }, { "StatusCode": "4001", "StatusName": "onRoadToDelivery", "Data": { "comment": "Asignada a entrega en la estación al veloz Jhon. Ruta: 49b91331-2be0-2fd4-9b25-1accc772f937", "evidence": [] }, "CreatedAt": "2023-01-05 16:01:40" }, { "StatusCode": "4002", "StatusName": "delivered", "Data": { "comment": "Titular - Carlos Ramirez | <>", "evidence": [ "https://copilot-image-proxy-qndxoltwga-uc.a.run.app/view/62b6fec1836a6321a5ca5a4a.jpeg", // url to the photo of the evidences "https://copilot-image-proxy-qndxoltwga-uc.a.run.app/view/63b1fec1b030b63f06db10a5.jpeg", "https://copilot-image-proxy-qndxoltwga-uc.a.run.app/view/62b1fab2b031b63d01da31b7.jpeg" ] }, "CreatedAt": "2023-01-05 16:45:54" } // You can have n events until delivery or return. ] } ``` - [/api/v3/webhooks/{webhook_id}](https://developers.99minutos.com/reference/patch-api-v3-webhooks-webhook_id.md): Update webhook configuration. You can update headers or/and status_rules. webhook notification example: ```json { "headers": { "Content-Type": "application/json" // Change the headers }, "status_rules": { "status_version": 2, // Change status version "allowed_status_names": [ "delivered" // Change the allowed status names ] } } ``` - [/api/v3/webhooks/{webhook_id}](https://developers.99minutos.com/reference/delete-api-v3-webhooks-webhook_id.md): Delete webhook config by id - [/api/v3/webhooks/evidences/{tracking_id}](https://developers.99minutos.com/reference/get-api-v3-webhooks-evidences-by-tracking-id.md): Get evidences by trackingId - [/api/v3/shipping/rates](https://developers.99minutos.com/reference/calculate_shipping_rates.md): Estimate shipping cost and validate coverage based on origin and destination, package dimensions, and weight. If the country is different from Mexico, the zipcode must be empty, and validation will be done using coordinates only. - [Rates by Address](https://developers.99minutos.com/reference/get_api-v3-shipping-rates-addresses-origin-country-origin-address-destination-country-destination-address.md) - [Rates by Coordinates](https://developers.99minutos.com/reference/get_api-v3-shipping-rates-coordinates-origin-country-origin-lat-origin-lng-destination-country-destination-lat-destination-lng.md) - [Get package size by dimensions](https://developers.99minutos.com/reference/get_api-v3-shipping-rates-sizes.md) - [Rates by Zipcodes](https://developers.99minutos.com/reference/get_api-v3-shipping-rates-zipcodes-origin-country-origin-zipcode-destination-country-destination-zipcode.md) - [super geocoding](https://developers.99minutos.com/reference/validate_address_validate_address_post.md) - [Create multibox orders](https://developers.99minutos.com/reference/createmultiboxorder.md): Create multibox orders. N child shipments will be created plus the master shipment. The number of child shipments is determined by the `packages` field, and by default, always 1 master shipment is created. Note: This function is only allowed for prepaid users. ## Recipes - [Autenticarse (Login)](https://developers.99minutos.com/recipes/autenticarse-login.md) - [Crea una guía con pago contra entrega (COD)](https://developers.99minutos.com/recipes/crea-una-guía-con-pago-contra-entrega-cod-1.md) - [Crea una guía y asegura tu envío](https://developers.99minutos.com/recipes/crea-una-guía-y-asegura-tu-envío.md) - [Crea una Guía](https://developers.99minutos.com/recipes/crea-una-guía.md) - [Guías con Punto99](https://developers.99minutos.com/recipes/guías-con-punto99.md) - [Impresión Guías PDF](https://developers.99minutos.com/recipes/impresión-guías-pdf.md) - [Imprime ZPL](https://developers.99minutos.com/recipes/imprime-zpl.md) - [Obtener Coordenadas /LocationID](https://developers.99minutos.com/recipes/obtener-coordenadas-locationid.md) - [Validar Direcciones por código postal](https://developers.99minutos.com/recipes/validar-direcciones-por-código-postal.md) ## Pages - [API Installation Bigcommerce](https://developers.99minutos.com/api-installation-bigcommerce.md) - [Coming soon](https://developers.99minutos.com/coming-soon.md) - [Integra tu Ecommerce con nuestros Plugins](https://developers.99minutos.com/integrate-your-business.md) - [Cómo integrar 99minutos a Mercado Libre Flex](https://developers.99minutos.com/meli-flex.md) - [Plugin Installation BigCommerce](https://developers.99minutos.com/plugin-installation-bigcommerce.md) - [Plugin Installation JumpSeller](https://developers.99minutos.com/plugin-installation-jumpseller.md) - [Plugin Installation Magento](https://developers.99minutos.com/plugin-installation-magento.md) - [Plugin Installation PrestaShop](https://developers.99minutos.com/plugin-installation-prestashop.md) - [Plugin Installation Shopify for Fulfillment](https://developers.99minutos.com/plugin-installation-shopify-for-fulfillment.md) - [Plugin Installation Tienda Nube](https://developers.99minutos.com/plugin-installation-tienda-nube.md) - [Plugin Installation WooCommerce](https://developers.99minutos.com/plugin-installation-woocommerce.md) - [Release Notes](https://developers.99minutos.com/release-notes.md) - [Plugin Installation Shopify](https://developers.99minutos.com/shopify.md) - [Plugin - TikTok Shop](https://developers.99minutos.com/tiktok-shop.md)