Skip to main content

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).

NombreTipoRequeridoDescripción
startDateStringSíInicio del rango, exclusivo: se devuelven movimientos posteriores a este instante.
Formato ISO 8601.
endDateStringSíFin del rango, inclusivo: se devuelven movimientos hasta este instante. Debe ser posterior a startDate.
Formato ISO 8601.
tip

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.

note
  • data contiene 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 200 con count: 0 y data: [].
  • En este endpoint la razón del movimiento se llama type; en GET /coins/driver se llama reason.

Descripción de campos de respuesta​

CampoTipoDescripción
statusBooleanIndica si la operación fue exitosa.
countNumberNúmero de movimientos devueltos en data.
dataArray<Object>Movimientos de monedas ordenados del más reciente al más antiguo. Ver tabla abajo.

Campos dentro de cada elemento de data​

CampoTipoDescripción
driverNameStringNombre completo del conductor al que pertenece el movimiento.
internalIdString | nullID del conductor proporcionado por la empresa al crearlo. Es null cuando el conductor no tiene uno asignado.
createdStringFecha y hora del movimiento en formato ISO 8601 (UTC).
typeStringRazón del movimiento. Consulta la lista completa de valores en Monedas › Razones de ajuste de monedas.
valueNumberCantidad 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.
oldCoinsNumberBalance del conductor antes del movimiento.
newCoinsNumberBalance 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"
}
MensajeCausa
Error: StartDate && EndDate pair must be present.Se envió sólo una de las dos fechas.
Error: startDate or endDate not validAlguna fecha no tiene un formato válido.
Error: startDate must be before endDatestartDate es igual o posterior a endDate, o no se envió ninguna fecha.