API pública para crear pedidos
Versión estable: v1. Estado: LIVE
Quickstart
Base URL Sandbox
https://sandbox-api.lokalisa.com
Base URL Producción
https://api.lokalisa.com
POST /api/v1/orders Headers: Content-Type: application/json Accept: application/json Authorization: Bearer <access_token> Idempotency-Key: <unique_key>
Autenticación
Primero genera un token usando tu API key y secret.
POST /api/v1/auth/token Headers: X-API-Key: <issued_key> X-API-Secret: <issued_secret>
Flujo recomendado
- Generar token:
POST /api/v1/auth/token - Consultar pickups:
GET /api/v1/catalog/addresses - Cotizar:
POST /api/v1/quotesconpickup_address_id - Consultar productos+stock (FULL):
GET /api/v1/catalog/products - Crear pedido:
POST /api/v1/ordersconpickup_address_id
En creación de pedido, Idempotency-Key es obligatoria.
Endpoints disponibles (v1)
POST
/api/v1/auth/tokenGET
/api/v1/catalog/addressesPOST
/api/v1/quotesGET
/api/v1/catalog/products (FULL)POST
/api/v1/ordersEl pedido mantiene trazabilidad por external_id.
Ejemplo de payload
{
"external_id": "ERP-1001",
"pickup_address_id": 12,
"dropoff_name": "Ana Lopez",
"dropoff_phone": "5511112233",
"dropoff_address": "Napoles 21, CDMX",
"dropoff_lat": 19.39,
"dropoff_lng": -99.17,
"delivery_date": "2026-02-07",
"payment_mode": "ONLINE",
"items": [
{ "name": "Playera Negra", "quantity": 1, "unit_price": 299 }
]
}Reglas por tipo de negocio
| Configuración | Comportamiento en create order |
|---|---|
fulfillment_mode=FULL | Estado inicial CREATED. Flujo de entrega estándar. |
fulfillment_mode=NO_FULL | Estado inicial PICKING_UP. Crea recolección a bodega y empaquetado consolidado. |
billing_type=PREPAID | Descuenta costo de envío desde wallet; requiere saldo suficiente. |
billing_type=POSTPAID | Si no hay saldo suficiente, pedido queda en payment_status=DUE. |
payment_mode=COD/ONLINE/PAID | Controla cobro al cliente final y campos de pago del pedido. |
Códigos de error comunes
VALIDATION_ERRORAPI_AUTH_INVALIDAPI_TOKEN_INVALIDIDEMPOTENCY_CONFLICTORDER_EXTERNAL_ID_ALREADY_EXISTSOUT_OF_COVERAGEWALLET_INSUFFICIENT