URL base
Todas las rutas son relativas ahttps://tu-empresa.chainlink.mx (el subdominio de tu tenant)
y requieren un token Bearer. Consulta Autenticación
y Convenciones.
En esta página
Listar conteos
Lista los conteos de forma paginada, ordenados por fecha del más reciente al más antiguo, con filtros por estado y por 'asignados a mí'.
Parámetros de consulta
assigned_to
|
string | Cuando se establece en 'me', limita los resultados a los conteos cuyo assigned_to_id coincide con el id del usuario autenticado. Cualquier otro valor se ignora. |
status
|
string | Filtra por el estado del conteo. Valores conocidos: 'pending', 'STARTED', 'FINALIZED' (se comparan de forma literal y sensible a mayúsculas). |
per_page
|
integer | Tamaño de página. Los valores se acotan entre 1 y 100; el valor por defecto es 25. El parámetro estándar 'page' de Laravel selecciona la página. |
curl -X GET "https://tu-empresa.chainlink.mx/api/v1/stock-reviews" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": [
{
"id": 7,
"warehouse_id": 1,
"warehouse": {
"id": 1,
"whs_code": "DEMO",
"name": "Almacén Demo Principal"
},
"created_by_id": 1,
"assigned_to_id": 1,
"assigned_to": {
"id": 1,
"name": "Administrador Demo"
},
"status": "STARTED",
"date": "2026-07-07",
"started_at": "2026-07-08T05:08:03.000000Z",
"finalized_at": null,
"sections_count": 0,
"scans_count": 0,
"created_at": "2026-07-08T05:06:58.000000Z",
"updated_at": "2026-07-08T05:08:03.000000Z"
}
],
"links": {
"first": "https://demo.chainlink.mx/api/v1/stock-reviews?page=1",
"last": "https://demo.chainlink.mx/api/v1/stock-reviews?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"per_page": 25,
"from": 1,
"to": 7,
"last_page": 1,
"total": 7
}
}
Obtener conteo
Devuelve un conteo específico con sus secciones (cada una con su responsable y su número de escaneos) y los totales agregados.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. Se resuelve como el modelo StockReview. |
curl -X GET "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": {
"id": 7,
"warehouse_id": 1,
"warehouse": {
"id": 1,
"whs_code": "DEMO",
"name": "Almacén Demo Principal"
},
"created_by_id": 1,
"assigned_to_id": 1,
"assigned_to": {
"id": 1,
"name": "Administrador Demo"
},
"status": "STARTED",
"date": "2026-07-07",
"started_at": "2026-07-08T05:08:03.000000Z",
"finalized_at": null,
"sections_count": 0,
"scans_count": 0,
"sections": [],
"created_at": "2026-07-08T05:06:58.000000Z",
"updated_at": "2026-07-08T05:08:03.000000Z"
}
}
Crear conteo
Cambia un conteo al estado STARTED y registra started_at; es idempotente si ya estaba iniciado.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. |
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/start" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": {
"data.status": "string",
"data.started_at": "string"
}
}
Obtener conteo
Lista todas las secciones de un conteo, ordenadas por label, cada una con su responsable y su número de escaneos.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. |
curl -X GET "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/sections" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": []
}
Crear conteo
Reclama una sección de forma atómica para el operador autenticado, de modo que dos operadores no cuenten la misma sección.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. |
section
requerido
|
integer | Id de la sección a reclamar. |
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/sections/{section}/claim" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": {
"data.status": "string",
"data.claimed_by_user_id": "integer",
"data.claimed_at": "string",
"data.claimed_by": "object"
}
}
Crear conteo
Libera una sección reclamada y la regresa a pendiente (deja de reclamarla).
Parámetros de ruta
id
requerido
|
integer | Id del conteo. |
section
requerido
|
integer | Id de la sección a liberar. |
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/sections/{section}/release" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": {
"data.status": "string",
"data.claimed_by_user_id": "null",
"data.claimed_at": "null"
}
}
Crear conteo
Envía un lote de escaneos de conteo (código de barras/RFID/NFC/manual); idempotente por client_uuid.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. Debe aceptar escaneos (no estar en FINALIZED) o el servicio lanza ReviewFinalizedException. |
Cuerpo (JSON)
scans
requerido
|
array | Arreglo de 1 a 200 objetos de escaneo a persistir en una sola transacción. |
scans[].client_uuid
requerido
|
string | UUID generado por el cliente para idempotencia; reenviar el mismo UUID devuelve el escaneo existente en lugar de duplicarlo. |
scans[].scanned_code
requerido
|
string | El código crudo escaneado; se resuelve a un producto mediante la búsqueda por item_code/barcode/EPC RFID. |
scans[].qty
|
number | Cantidad contada; el valor por defecto es 1 cuando se omite. |
scans[].source
|
string | Canal de origen del escaneo; el valor por defecto es 'barcode'. |
scans[].section_id
|
integer | Sección a la que pertenece el escaneo. |
scans[].serial_number
|
string | Número de serie capturado con el escaneo. |
scans[].batch_num
|
string | Número de lote capturado con el escaneo. |
scans[].warehouse_position_id
|
integer | Posición del almacén donde se contó el artículo. |
scans[].device_id
|
string | Identificador del dispositivo/terminal que capturó el escaneo. |
scans[].scanned_at
requerido
|
string | Marca de tiempo en que se capturó el escaneo en el dispositivo (se interpreta con Carbon). |
scans[].extra
|
object | Metadatos adicionales de formato libre almacenados como JSON. |
{
"scans": [],
"scans[].client_uuid": "<scans[].client_uuid>",
"scans[].scanned_code": "<scans[].scanned_code>",
"scans[].scanned_at": "<scans[].scanned_at>"
}
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/scans" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"scans": [],
"scans[].client_uuid": "<scans[].client_uuid>",
"scans[].scanned_code": "<scans[].scanned_code>",
"scans[].scanned_at": "<scans[].scanned_at>"
}'
{
"data": [
{
"data[].id": "integer",
"data[].client_uuid": "string",
"data[].stock_review_id": "integer",
"data[].section_id": "integer",
"data[].user_id": "integer",
"data[].device_id": "string",
"data[].scanned_code": "string",
"data[].source": "string",
"data[].product_id": "integer",
"data[].product": "object",
"data[].qty": "number",
"data[].serial_number": "string",
"data[].batch_num": "string",
"data[].warehouse_position_id": "integer",
"data[].extra": "object",
"data[].scanned_at": "string",
"data[].created_at": "string"
}
]
}
Eliminar conteo
Deshace (elimina) un escaneo previamente enviado por su client_uuid; los operadores solo pueden eliminar sus propios escaneos mientras el conteo siga abierto.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. |
clientUuid
requerido
|
string | El client_uuid del escaneo a eliminar. |
curl -X DELETE "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/scans/{clientUuid}" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": {
"ok": "boolean",
"error": "string"
}
}
Obtener conteo
Progreso agregado en tiempo real para la pantalla de conteo multidispositivo: desglose por sección, porcentaje de avance, totales de escaneos y conteos por operador.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. |
curl -X GET "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/progress" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": {
"stock_review_id": 7,
"status": "STARTED",
"sections_total": 0,
"sections_done": 0,
"sections_in_progress": 0,
"completion_pct": 0,
"total_scans": 0,
"unique_codes": 0,
"sections": [],
"operators": [],
"last_scan_at": null
}
}
Crear conteo
Finaliza un conteo iniciado (lo bloquea contra nuevos escaneos) y registra finalized_at; restringido al creador o al asignado del conteo.
Parámetros de ruta
id
requerido
|
integer | Id del conteo. |
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/stock-reviews/{id}/finalize" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
{
"data": {
"data.status": "string",
"data.finalized_at": "string"
}
}
¿Necesitas habilitar un endpoint o tienes dudas? Contáctanos.
← Volver al inicio de Developers