Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Version 3 Webhooks API
version: 3.0.0
description: This is the documentation for the public api *(version 3)* of 99minutos.
servers:
- url: https://delivery.99minutos.com
description: Produccion
- url: https://sandbox.99minutos.com
description: Sandbox Environment
tags:
- name: Webhooks
paths:
/api/v3/webhooks:
post:
summary: Post api v3 webhooks
operationId: post-api-v3-webhooks
responses:
'200':
$ref: '#/components/responses/ConfigResponse'
description: '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.
]
}
```'
security:
- AuthJWT: []
tags:
- Webhooks
requestBody:
$ref: '#/components/requestBodies/Config'
x-summary-source: derived
get:
summary: Get api v3 webhooks
operationId: get-api-v3-webhooks
responses:
'200':
$ref: '#/components/responses/ConfigGetResponse'
description: '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.
]
}
```'
security:
- AuthJWT: []
tags:
- Webhooks
x-summary-source: derived
/api/v3/webhooks/{webhook_id}:
parameters:
- schema:
type: string
format: uuid
example: 4c136c4a-cdf6-4b37-879e-f0c4a1082856
name: webhook_id
in: path
required: true
description: Webhook uuid
patch:
summary: Patch api v3 webhooks webhook id
operationId: patch-api-v3-webhooks-webhook_id
responses:
'200':
$ref: '#/components/responses/ConfigResponse'
description: '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
]
}
}
```'
tags:
- Webhooks
security:
- AuthJWT: []
x-summary-source: derived
delete:
summary: Delete api v3 webhooks webhook id
operationId: delete-api-v3-webhooks-webhook_id
responses:
'200':
$ref: '#/components/responses/DeleteConfigResponse'
description: Delete webhook config by id
tags:
- Webhooks
security:
- AuthJWT: []
x-summary-source: derived
/api/v3/webhooks/evidences/{tracking_id}:
parameters:
- schema:
type: string
example: 9107062174
name: tracking_id
in: path
required: true
description: Tracking id
get:
summary: Get api v3 webhooks evidences by tracking id
operationId: get-api-v3-webhooks-evidences-by-tracking-id
responses:
'200':
$ref: '#/components/responses/Notification'
description: Get evidences by trackingId
security:
- AuthJWT: []
tags:
- Webhooks
x-summary-source: derived
components:
securitySchemes:
AuthJWT:
type: http
scheme: bearer
bearerFormat: JWT