Referencia de la API
Crear pedido
Registra un envío en Beartrack desde tu propia tienda o sistema.
/integrations/public-api/packageshttps://api.beartrackapp.com/api/v1Da de alta un paquete a nombre de tu comercio. Beartrack geocodifica la dirección, le asigna un número de seguimiento y lo deja disponible para ruteo y para el seguimiento público. Es el endpoint que usas si integras tu propio checkout, ERP o sistema de gestión.
Autenticación
Envía estas cabeceras en cada petición.
AuthorizationstringrequeridoToken de acceso: Bearer seguido del access_token que devuelve POST /integrations/oauth/token.
client_id y tu client_secret en POST /integrations/oauth/token, y dura una hora. Este endpoint exige el scope packages:write. Cómo crear las credenciales y pedir el token: Autenticación.Cuerpo de la petición
JSON · RequestCreateOwnStorePackageDTo · requerido
typeenumrequeridoOrigen del pedido. Siempre ownStore.
Valores:ownStore
receiver_namestringrequeridoNombre de quien recibe.
receiver_lastNamestringopcionalApellido de quien recibe.
receiver_phonestringrequeridoTeléfono de contacto del receptor, con código de país. El repartidor lo usa para coordinar la entrega.
commentsstringrequeridonullableInstrucciones para la entrega: piso, departamento, referencias, a quién dejar el paquete.
order_idstringrequeridoTu identificador de pedido. Es la clave de idempotencia: reintentar con el mismo order_id y los mismos datos dentro de 24 horas no duplica el pedido.
Dirección de entrega.
street_namestringrequeridoNombre de la calle, sin el número.
street_numberstringrequeridoNúmero de la dirección.
commentstringopcionalnullableDetalle adicional de la dirección.
Ciudad o región.
Barrio o sector.
Comuna o municipio.
delivery_preferencestringopcionalnullablePreferencia de entrega, por ejemplo residential.
País de destino.
Ejemplo
El cuerpo sale del spec: si cambia el contrato, cambia este snippet.
curl -X POST 'https://api.beartrackapp.com/api/v1/integrations/public-api/packages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer bta_tu-token' \
-d '{
"type": "ownStore",
"receiver_name": "MARÍA",
"receiver_lastName": "MUÑOZ",
"receiver_phone": "+56942405123",
"comments": "Departamento 602, dejar en conserjería",
"order_id": "123456",
"shipping_address": {
"street_name": "Avenida Siempre Viva",
"street_number": "742",
"city": {
"name": "Región Metropolitana"
},
"neighborhood": {
"name": "Barrio Italia"
},
"municipality": {
"name": "Ñuñoa"
},
"country": {
"name": "Chile"
}
}
}'Respuestas
El pedido se creó correctamente.
{
"order_id": "123456",
"following_number": 268012
}Petición incompleta o inválida
invalid_request
Falta un dato obligatorio —la cabecera
Authorization,grant_typeen el token o un campo del pedido comoorder_id— o el cuerpo no pasó la validación.error_descriptiondice qué falló.
Petición incompleta o inválida
invalid_request
Falta un dato obligatorio —la cabecera
Authorization,grant_typeen el token o un campo del pedido comoorder_id— o el cuerpo no pasó la validación.error_descriptiondice qué falló.Token inválido o vencido
invalid_token
El token no existe, venció (dura una hora) o la credencial se rotó o revocó después de emitirlo.
Scope insuficiente
insufficient_scope
El token no tiene el scope que exige el endpoint (
packages:writepara crear pedidos).
Demasiadas peticiones
too_many_requests
Superaste el límite de tu credencial: 10 canjes de token o 120 pedidos por minuto.
No se pudo crear el pedido
server_error
Falló algo del lado de Beartrack al registrar el pedido.
Servicio no disponible
temporarily_unavailable
Beartrack no pudo procesar la petición en este momento.
Notas
order_ides obligatorio y es la clave de idempotencia: si reintentas con el mismoorder_idy los mismos datos dentro de las 24 horas siguientes (por ejemplo, tras un timeout), no se crea un segundo pedido y recibes el mismofollowing_number. No cambies el cuerpo entre un intento y otro.- Guarda
following_numberjunto a tuorder_id: es el número con el que se consulta el envío y el que ve el destinatario en el seguimiento. - La dirección se resuelve por texto: mientras más completos vengan
street_name,street_numberymunicipality, mejor queda la geocodificación y el ruteo. - Cada respuesta trae la cabecera
x-correlation-id. Inclúyela si nos escribes por un pedido puntual.