Consultar los movimientos de monedas de todos tus conductores
[ GET ]
Consulta los movimientos (abonos y cargos) de monedas registrados para todos los conductores de tu empresa dentro de un rango de fechas.
https://sync.airbagtech.io/coins/company
Campos
Se envían como parámetros de la URL (query string).
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| startDate | String | Sí | Inicio del rango, exclusivo: se devuelven movimientos posteriores a este instante. Formato ISO 8601. |
| endDate | String | Sí | Fin del rango, inclusivo: se devuelven movimientos hasta este instante. Debe ser posterior a startDate. Formato ISO 8601. |
Las fechas se comparan como instantes. Una fecha sin hora (2025-02-28) equivale a las 00:00 de ese día, así que no incluye los movimientos del propio día 28. Para cubrir el día completo envía la hora de forma explícita, por ejemplo endDate=2025-02-28T23:59:59.999Z.
Headers
| Authorization |
|---|
apikey {{API_KEY}} |
Ejemplo
curl --location 'https://sync.airbagtech.io/coins/company?startDate=2025-02-01T00:00:00.000Z&endDate=2025-02-28T23:59:59.999Z' \
--header 'Authorization: apikey {{API_KEY}}'
Respuestas
✅ Respuesta exitosa (200 OK)
Devuelve el número de movimientos devueltos (count) y un arreglo data con los movimientos de monedas, ordenados del más reciente al más antiguo. Cada movimiento incluye el saldo antes (oldCoins) y después (newCoins) del ajuste, lo que permite reconstruir el histórico de balance.
{
"status": true,
"count": 30,
"data": [
{
"internalId": null,
"driverName": "Ana Martínez",
"created": "2025-02-16T20:06:09.133Z",
"oldCoins": 55,
"newCoins": 56,
"type": "trip",
"value": 1
},
{
"internalId": null,
"driverName": "Ana Martínez",
"created": "2025-02-16T13:25:50.688Z",
"oldCoins": 51,
"newCoins": 54,
"type": "daily-bonus",
"value": 3
},
{
"internalId": "EMP-1042",
"driverName": "Juan Pérez Ramírez",
"created": "2025-02-15T13:26:54.246Z",
"oldCoins": 523,
"newCoins": 524,
"type": "daily-bonus",
"value": 1
},
{
"internalId": "cust-fleet-a82f",
"driverName": "Pamela Ruiz",
"created": "2025-02-14T18:48:04.497Z",
"oldCoins": 1875,
"newCoins": 1825,
"type": "company-movement",
"value": -50
},
{
"internalId": null,
"driverName": "Sayuri Tanaka",
"created": "2025-02-14T03:04:12.291Z",
"oldCoins": 22,
"newCoins": 1022,
"type": "referral",
"value": 1000
},
{
"internalId": null,
"driverName": "Luis Contreras",
"created": "2025-02-13T22:02:34.196Z",
"oldCoins": 344,
"newCoins": 544,
"type": "challenges",
"value": 200
},
{
"internalId": null,
"driverName": "Javier Ortega",
"created": "2025-02-13T19:42:52.037Z",
"oldCoins": 24760,
"newCoins": 24761,
"type": "trip",
"value": 1
}
]
}
Ejemplo abreviado: la respuesta real continúa con el resto de movimientos hasta completar los 30 elementos.
datacontiene como máximo 30 movimientos: si el rango tiene más, se devuelven los 30 más recientes. Para obtener los anteriores, acota el rango de fechas.- Si no hay movimientos en el rango, la respuesta es
200concount: 0ydata: []. - En este endpoint la razón del movimiento se llama
type; enGET /coins/driverse llamareason.
Descripción de campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
status | Boolean | Indica si la operación fue exitosa. |
count | Number | Número de movimientos devueltos en data. |
data | Array<Object> | Movimientos de monedas ordenados del más reciente al más antiguo. Ver tabla abajo. |
Campos dentro de cada elemento de data
| Campo | Tipo | Descripción |
|---|---|---|
driverName | String | Nombre completo del conductor al que pertenece el movimiento. |
internalId | String | null | ID del conductor proporcionado por la empresa al crearlo. Es null cuando el conductor no tiene uno asignado. |
created | String | Fecha y hora del movimiento en formato ISO 8601 (UTC). |
type | String | Razón del movimiento. Consulta la lista completa de valores en Monedas › Razones de ajuste de monedas. |
value | Number | Cantidad de monedas del movimiento. El signo depende de quién registró el movimiento (los ajustes hechos con POST /coins/modify son negativos en un cargo), así que para saber si fue abono o cargo compara oldCoins y newCoins. |
oldCoins | Number | Balance del conductor antes del movimiento. |
newCoins | Number | Balance del conductor después del movimiento. |
❌ Conductor no encontrado (404 Not Found)
Se devuelve, para toda la consulta, cuando alguno de los movimientos del rango pertenece a un conductor que ya no existe.
{
"status": false,
"message": "Error: Driver not found"
}
❌ Parámetros inválidos (400 Bad Request)
Se devuelve cuando falta alguna fecha, tiene un formato inválido o startDate no es anterior a endDate.
{
"status": false,
"message": "Error: startDate must be before endDate",
"errorId": "sentry_error_id_123"
}
| Mensaje | Causa |
|---|---|
Error: StartDate && EndDate pair must be present. | Se envió sólo una de las dos fechas. |
Error: startDate or endDate not valid | Alguna fecha no tiene un formato válido. |
Error: startDate must be before endDate | startDate es igual o posterior a endDate, o no se envió ninguna fecha. |