Skip to content

Endpoints

Base: https://api.motochaski.com/v1. Autenticación por X-API-Key salvo donde se indique. Fuente: api/internal/handlers/public_v1.go.

Pedidos

MétodoRutaScopeQué hace
POST/orderswrite:ordersCrear pedido. Campos
GET/ordersread:ordersListar. Filtros: status, from_date, to_date, page, limit (default 50)
GET/orders/:idread:ordersDetalle
PATCH/orders/:id/cancelwrite:ordersCancelar. Body { reason, note }. Solo en registered

Con llave atada a una tienda, todo queda acotado a esa tienda: un pedido de otra responde 404, no 403.

Seguimiento

MétodoRutaAuthQué hace
GET/track/:guide_codeninguna{ guide_code, status, status_label, product, events[], tenant_name, tenant_logo_url }

Es lo mismo que ve el cliente final en la página de seguimiento: la línea de tiempo (events) y la marca del delivery. No devuelve al motorizado ni la dirección: cualquiera que vea el sticker tiene el código. Para el detalle completo usa GET /orders/:id con llave.

Tiendas

MétodoRutaScopeQué hace
GET/storesread:storesTiendas activas asociadas al delivery

Webhooks

MétodoRutaScopeQué hace
GET/webhooksmanage:webhooksActivos
POST/webhooksmanage:webhooksRegistrar. Body { url, events[], store_id? }. Devuelve secret una sola vez
DELETE/webhooks/:idmanage:webhooksDesactivar

Catálogo (sin autenticación, fuera de /v1)

RutaQué devuelve
GET /public/countriesPaíses
GET /public/cities?country_code=PECiudades operativas
GET /public/locations/tree?country_code=PE&city=LimaDistritos de la ciudad con sus zonas
GET /public/locations/ubigeo?country_code=PE&codes=150122,150131location_id a partir de ubigeo INEI
GET /public/locations?country_code=PE&q=textoBúsqueda
GET /public/locations/:id/childrenZonas de un distrito

Cabeceras

CabeceraDirecciónUso
X-API-KeyrequestLa llave
Content-Type: application/jsonrequestEn POST/PATCH
Idempotency-KeyrequestEn POST /orders: reintentar sin duplicar
Idempotent-Replayed: trueresponseLa respuesta salió del registro de idempotencia, no se creó nada
X-Motochaski-EventwebhookNombre del evento
X-Motochaski-TimestampwebhookUnix seconds
X-Motochaski-Signaturewebhooksha256=<hex>

Versionado

Dentro de /v1 solo se agregan campos. Tu parser tiene que tolerar campos nuevos que no conoce. Quitar o cambiar de tipo un campo sería /v2.

API pública de Motochaski · v1