Diseño objetivo (aún no disponible en v1)
Estos endpoints describen el contrato objetivo para recibir documentos desde un sistema externo (crear/sincronizar entradas, salidas y órdenes). Aún no forman parte de la v1 pública; su forma actual en el sistema es distinta. Escríbenos a soporte@chainlink.mx para coordinar tu integración.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
Sincronizar entradas
Crea o actualiza documentos de entrada (recepciones, órdenes de compra, entradas de mercancía) con su concepto y líneas. Acepta un documento o un arreglo de documentos.
Cuerpo (JSON)
external_id
requerido
|
string | Identificador único del documento en tu sistema. La operación es idempotente: reenviar el mismo `external_id` actualiza el documento en lugar de duplicarlo. |
concept
requerido
|
string | Concepto del documento de entrada. Uno de: `purchase_order`, `goods_receipt`, `delivery_good`. |
number
|
string | Número o folio visible del documento. |
status
|
string | Estatus del documento: `open`, `close` o `cancelled`. Por defecto `open`. |
cancelled
|
boolean | Marca el documento como cancelado. |
send_to_wms
|
boolean | Si el documento debe procesarse en el WMS (equivale a ENVIOWMS). Por defecto `true`. |
date
|
string | Fecha del documento (ISO 8601). |
due_date
|
string | Fecha de vencimiento (ISO 8601). |
partner
|
object | Socio de negocio: `{ code, name }` (proveedor en entradas, cliente en salidas). |
reference
|
string | Referencia del socio (equivale a NumAtCard). |
total
|
number | Total del documento. |
currency
|
string | Moneda (por ejemplo `MXN`). |
comments
|
string | Comentarios libres. |
lines
requerido
|
array | Líneas del documento (ver el ejemplo). Cada objeto de `lines[]` acepta: `line_number`, `item_code` (obligatorio; debe existir en el catálogo), `description`, `quantity`, `unit_price`, `warehouse_code`, `expected_series` y `expected_batches` (listas para restringir qué series/lotes puede escanear el operador), y `locations[]` con el desglose por ubicación (`bin_code`, `warehouse_code`, `quantity`, `serial_number`, `batch_number`). |
{
"external_id": "45012",
"number": "100045",
"concept": "purchase_order",
"status": "open",
"cancelled": false,
"send_to_wms": true,
"date": "2026-07-20",
"due_date": "2026-07-27",
"partner": {
"code": "PROV-001",
"name": "Proveedor Ejemplo SA de CV"
},
"reference": "REF-8891",
"total": 1500.0,
"currency": "MXN",
"comments": "Orden de compra semanal",
"lines": [
{
"line_number": 0,
"item_code": "ITEM-ABC-001",
"description": "Caja de tornillos 5mm",
"quantity": 100,
"unit_price": 15.0,
"warehouse_code": "01",
"expected_batches": [
"LOTE-2026-07-A",
"LOTE-2026-07-B"
],
"expected_series": [],
"locations": [
{
"bin_code": "A-01-02",
"warehouse_code": "01",
"quantity": 100,
"batch_number": "LOTE-2026-07-A",
"serial_number": null
}
]
}
]
}
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/inbound/entries" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"external_id": "45012",
"number": "100045",
"concept": "purchase_order",
"status": "open",
"cancelled": false,
"send_to_wms": true,
"date": "2026-07-20",
"due_date": "2026-07-27",
"partner": {
"code": "PROV-001",
"name": "Proveedor Ejemplo SA de CV"
},
"reference": "REF-8891",
"total": 1500.0,
"currency": "MXN",
"comments": "Orden de compra semanal",
"lines": [
{
"line_number": 0,
"item_code": "ITEM-ABC-001",
"description": "Caja de tornillos 5mm",
"quantity": 100,
"unit_price": 15.0,
"warehouse_code": "01",
"expected_batches": [
"LOTE-2026-07-A",
"LOTE-2026-07-B"
],
"expected_series": [],
"locations": [
{
"bin_code": "A-01-02",
"warehouse_code": "01",
"quantity": 100,
"batch_number": "LOTE-2026-07-A",
"serial_number": null
}
]
}
]
}'
{
"data": {
"external_id": "45012",
"number": "100045",
"concept": "purchase_order",
"status": "open",
"lines_synced": 1,
"created": true
}
}
Sincronizar salidas
Crea o actualiza documentos de salida (órdenes de venta, entregas, salidas de mercancía) con su concepto y líneas. Acepta un documento o un arreglo de documentos.
Cuerpo (JSON)
external_id
requerido
|
string | Identificador único del documento en tu sistema. La operación es idempotente: reenviar el mismo `external_id` actualiza el documento en lugar de duplicarlo. |
concept
requerido
|
string | Concepto del documento de salida. Uno de: `sale_order`, `delivery_note`, `dispatch_good`, `goods_issue`. |
number
|
string | Número o folio visible del documento. |
status
|
string | Estatus del documento: `open`, `close` o `cancelled`. Por defecto `open`. |
cancelled
|
boolean | Marca el documento como cancelado. |
send_to_wms
|
boolean | Si el documento debe procesarse en el WMS (equivale a ENVIOWMS). Por defecto `true`. |
date
|
string | Fecha del documento (ISO 8601). |
due_date
|
string | Fecha de vencimiento (ISO 8601). |
partner
|
object | Socio de negocio: `{ code, name }` (proveedor en entradas, cliente en salidas). |
reference
|
string | Referencia del socio (equivale a NumAtCard). |
total
|
number | Total del documento. |
currency
|
string | Moneda (por ejemplo `MXN`). |
comments
|
string | Comentarios libres. |
lines
requerido
|
array | Líneas del documento (ver el ejemplo). Cada objeto de `lines[]` acepta: `line_number`, `item_code` (obligatorio; debe existir en el catálogo), `description`, `quantity`, `unit_price`, `warehouse_code`, `expected_series` y `expected_batches` (listas para restringir qué series/lotes puede escanear el operador), y `locations[]` con el desglose por ubicación (`bin_code`, `warehouse_code`, `quantity`, `serial_number`, `batch_number`). |
{
"external_id": "78230",
"number": "200078",
"concept": "sale_order",
"status": "open",
"cancelled": false,
"send_to_wms": true,
"date": "2026-07-20",
"partner": {
"code": "CLI-0099",
"name": "Cliente Ejemplo SA"
},
"reference": "PO-CLI-551",
"total": 450.0,
"currency": "MXN",
"lines": [
{
"line_number": 0,
"item_code": "ITEM-XYZ-777",
"description": "Botella 1L",
"quantity": 30,
"unit_price": 15.0,
"warehouse_code": "01",
"expected_series": [
"SN-0001",
"SN-0002"
],
"expected_batches": [],
"locations": [
{
"bin_code": "B-03-01",
"warehouse_code": "01",
"quantity": 30,
"serial_number": "SN-0001",
"batch_number": null
}
]
}
]
}
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/inbound/exits" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"external_id": "78230",
"number": "200078",
"concept": "sale_order",
"status": "open",
"cancelled": false,
"send_to_wms": true,
"date": "2026-07-20",
"partner": {
"code": "CLI-0099",
"name": "Cliente Ejemplo SA"
},
"reference": "PO-CLI-551",
"total": 450.0,
"currency": "MXN",
"lines": [
{
"line_number": 0,
"item_code": "ITEM-XYZ-777",
"description": "Botella 1L",
"quantity": 30,
"unit_price": 15.0,
"warehouse_code": "01",
"expected_series": [
"SN-0001",
"SN-0002"
],
"expected_batches": [],
"locations": [
{
"bin_code": "B-03-01",
"warehouse_code": "01",
"quantity": 30,
"serial_number": "SN-0001",
"batch_number": null
}
]
}
]
}'
{
"data": {
"external_id": "78230",
"number": "200078",
"concept": "sale_order",
"status": "open",
"lines_synced": 1,
"created": true
}
}
Crear orden de compra
Registra una orden de compra hacia un proveedor con sus partidas.
Cuerpo (JSON)
external_id
requerido
|
string | Identificador único de la orden en tu sistema. Idempotente: reenviar el mismo actualiza en vez de duplicar. |
provider
requerido
|
string | Código del proveedor. |
currency
|
string | Moneda (por ejemplo `MXN`). |
lines
requerido
|
array | Partidas de la orden. Cada línea: `item_code` (obligatorio; debe existir en el catálogo) y `quantity`. |
{
"external_id": "OC-000123",
"provider": "PROV-001",
"currency": "MXN",
"lines": [
{
"item_code": "ITEM-ABC-001",
"quantity": 10
},
{
"item_code": "ITEM-DEF-002",
"quantity": 5
}
]
}
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/inbound/purchase-orders" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"external_id": "OC-000123",
"provider": "PROV-001",
"currency": "MXN",
"lines": [
{
"item_code": "ITEM-ABC-001",
"quantity": 10
},
{
"item_code": "ITEM-DEF-002",
"quantity": 5
}
]
}'
{
"data": {
"external_id": "OC-000123",
"provider": "PROV-001",
"lines_synced": 2,
"created": true
}
}
Crear orden de surtido
Registra una orden de surtido (picking) para un cliente con sus partidas y concepto.
Cuerpo (JSON)
external_id
requerido
|
string | Identificador único de la orden en tu sistema (idempotente). |
client
requerido
|
string | Código del cliente. |
concept
requerido
|
string | Concepto de la orden: `invoice`, `sale_order`, `credit_note`, `refund`, `production_order`, `delivery_note`, `good_issue` o `dispatch_good`. |
currency
|
string | Moneda (por ejemplo `MXN`). |
lines
requerido
|
array | Partidas: `item_code` (obligatorio) y `quantity`. |
{
"external_id": "PICK-000500",
"client": "CLI-001",
"concept": "sale_order",
"currency": "MXN",
"lines": [
{
"item_code": "ITEM-ABC-001",
"quantity": 3
}
]
}
curl -X POST "https://tu-empresa.chainlink.mx/api/v1/inbound/picking-orders" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"external_id": "PICK-000500",
"client": "CLI-001",
"concept": "sale_order",
"currency": "MXN",
"lines": [
{
"item_code": "ITEM-ABC-001",
"quantity": 3
}
]
}'
{
"data": {
"external_id": "PICK-000500",
"concept": "sale_order",
"client": "CLI-001",
"lines_synced": 1,
"created": true
}
}
¿Necesitas habilitar un endpoint o tienes dudas? Contáctanos.
← Volver al inicio de Developers