Lokalisa
Lokalisa Developers
Public API v1

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

  1. Generar token: POST /api/v1/auth/token
  2. Consultar pickups: GET /api/v1/catalog/addresses
  3. Cotizar: POST /api/v1/quotes con pickup_address_id
  4. Consultar productos+stock (FULL): GET /api/v1/catalog/products
  5. Crear pedido: POST /api/v1/orders con pickup_address_id

En creación de pedido, Idempotency-Key es obligatoria.

Endpoints disponibles (v1)

POST /api/v1/auth/token
GET /api/v1/catalog/addresses
POST /api/v1/quotes
GET /api/v1/catalog/products (FULL)
POST /api/v1/orders

El 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=FULLEstado inicial CREATED. Flujo de entrega estándar.
fulfillment_mode=NO_FULLEstado inicial PICKING_UP. Crea recolección a bodega y empaquetado consolidado.
billing_type=PREPAIDDescuenta costo de envío desde wallet; requiere saldo suficiente.
billing_type=POSTPAIDSi no hay saldo suficiente, pedido queda en payment_status=DUE.
payment_mode=COD/ONLINE/PAIDControla cobro al cliente final y campos de pago del pedido.

Códigos de error comunes

VALIDATION_ERROR
API_AUTH_INVALID
API_TOKEN_INVALID
IDEMPOTENCY_CONFLICT
ORDER_EXTERNAL_ID_ALREADY_EXISTS
OUT_OF_COVERAGE
WALLET_INSUFFICIENT