Consultar los movimientos de monedas de un conductor
[ GET ]
Consulta los movimientos (abonos y cargos) de monedas registrados para un conductor específico dentro de un rango de fechas.
https://sync.airbagtech.io/coins/driver
Campos
Se envían como parámetros de la URL (query string).
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| driverId | String | Sí | ID del conductor a consultar. Acepta el ID que tu empresa usó al crearlo o el airbagId. |
| 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/driver?driverId=EMP-1042&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 del conductor, ordenados del más antiguo al más reciente. 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": 4,
"data": [
{
"created": "2025-02-08T14:22:11.042Z",
"oldCoins": 250,
"newCoins": 200,
"reason": "company-movement",
"value": -50
},
{
"created": "2025-02-09T19:05:22.981Z",
"oldCoins": 200,
"newCoins": 700,
"reason": "referral",
"value": 500
},
{
"created": "2025-02-10T13:16:14.252Z",
"oldCoins": 700,
"newCoins": 702,
"reason": "daily-bonus",
"value": 2
},
{
"created": "2025-02-12T17:37:31.906Z",
"oldCoins": 702,
"newCoins": 703,
"reason": "trip",
"value": 1
}
]
}
datacontiene como máximo 30 movimientos: si el rango tiene más, se devuelven los 30 más antiguos. Para obtener los más recientes, acota el rango de fechas.- Si no hay movimientos en el rango, la respuesta es
200concount: 0ydata: [].
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 del conductor, del más antiguo al más reciente. Ver tabla abajo. |
Campos dentro de cada elemento de data
| Campo | Tipo | Descripción |
|---|---|---|
created | String | Fecha y hora del movimiento en formato ISO 8601 (UTC). |
reason | 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 cuando el driverId no corresponde a ningún conductor de tu empresa.
{
"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. |