📦 Manual Técnico

API Reference

Integra tu sistema con la plataforma logística de Flexy. Gestiona pedidos, transferencias, stock, órdenes de compra y más mediante nuestra REST API.

⚡ REST API
🔐 Bearer Token
📡 Webhooks
🌐 Sandbox disponible
🗺️

Descripción General de Endpoints

🛒

Orden de Compra

Sincroniza las Órdenes de Compra desde tu ERP. Es el documento de referencia que utilizará el operario para validar y registrar el ingreso físico de la mercadería.

📦

Pedidos

Transmite los pedidos comerciales al almacén. Proporciona los datos del cliente y los productos exactos para una preparación (picking) y despacho sin errores.

🔄

Transferencias

Documenta y autoriza traslados de inventario. Ideal para mover mercadería entre tus almacenes internos o hacia los nodos externos de la red tus almacenes.

📊

Stock

Consulta la disponibilidad de inventario por almacén en tiempo real. Una herramienta esencial para actualizar tus canales de venta y facilitar el cruce de saldos.

📋

Consultas Kardex

Accede al historial de movimientos de tu inventario. Lista todos los documentos operativos emitidos para facilitar tus auditorías (rango máximo: 7 días).

🏷️

Productos

Sincroniza tu catálogo maestro. Registra y actualiza los SKUs que el almacén necesita reconocer para poder procesar cualquier ingreso, pedido o transferencia.

🔢

Series

Gestiona los números de serie de tu mercadería. Facilita al almacén el control unitario y garantiza la trazabilidad exacta de productos específicos.

📡

Webhook

Mantén tus sistemas siempre sincronizados. Recibe notificaciones automáticas en el instante en que el almacén completa una recepción, un despacho o una transferencia.

Consideraciones Generales

ℹ️
Campos no requeridosLos campos opcionales deben enviarse como valor vacío, entero o null según corresponda, pero deben existir en la estructura de la trama para que sea considerado un documento válido.
⏱️
Vigencia del token: 2 horasSe recomienda realizar un nuevo login al inicio de cada proceso de sincronización. Un solo inicio de sesión cubre múltiples solicitudes de creación dentro del mismo proceso.
🚦
Rate Limit en consultasLos endpoints de Stock y Documentos del Kardex solo aceptan un request cada 60 segundos.
🔐

Autenticación

Todos los endpoints requieren autenticación. Coordina con el equipo de TI para obtener la URL base.

POST https://url-base/api/v1/login

Request Body (Form-Data)

REQUEST
{
  "email": "[email protected]",
  "password": "Kmfksu37fha3a"
}

Response

200 OK
{
  "success": true,
  "data": {
    "id": 123,
    "name": "TEST USER",
    "email": "[email protected]",
    "email_verified_at": null,
    "created_at": "2020-12-15T23:41:32.000000Z",
    "updated_at": "2020-12-15T23:41:32.000000Z",
    "codigo_estado": 1,
    "lang": "es",
    "token": "eyJ0eXAiOiJKV1QiLCJ…."
  },
  "code": "200"
}
🔑
Uso del tokenEl valor de token devuelto debe enviarse como Bearer Token en el header Authorization de todos los endpoints posteriores. También puede pasarse como query param ?token=.
📦

Pedidos

Crear un Pedido

POST https://url-base/api/v2/pedidos/store

Objeto · persona

AtributoTipoDescripciónReq.
tipo_personaintegerPara clientes: 1✓ Sí
personastringNombre completo o razón social✓ Sí
numero_identidadstringDNI: 8 dígitos · RUC: 11 dígitos · CE: hasta 20 dígitos✓ Sí
tipo_identidadintegerDNI → 1 · RUC → 2 · CE → 3✓ Sí
direccionstringDirección de la persona o empresa✓ Sí
direccion_entregastringDirección de entrega del pedido✓ Sí
paisstringPaís de procedencia del pedido✓ Sí
departamentostringDepartamento de entrega✓ Sí
provinciastringProvincia de entrega✓ Sí
distritostringDistrito de entrega✓ Sí
ubigeostringCódigo de ubicación geográfica INEI✓ Sí
codigo_estadointegerPor defecto: 1✓ Sí
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
maquina_creacionstringComputador, canal o plataforma de origen✓ Sí
contactostringNombre del contacto receptor— No
persona_autorizadastringContacto alternativo— No
referenciastringReferencia adicional a la dirección— No
telefonostringNúmero de celular— No
emailstringCorreo del contacto— No

Campos raíz del pedido

AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
codigo_monedainteger1 = Soles · 2 = Dólares✓ Sí
codigo_forpag integer Forma de pago:

1 → Al contado
2 → Al crédito
10 → Ver observaciones
11 → Otros
14 → Pagado
✓ Sí
idalmacenintegerConstante (solicitar a TI)✓ Sí
fechastringFecha de emisión formato Y-m-d✓ Sí
fecha_vencimientostringFecha de caducidad formato Y-m-d✓ Sí
idorderstringCódigo del pedido en tu plataforma (para match)✓ Sí
codigo_estadointegerEstado del pedido, debe ser 25✓ Sí
maquina_creacionstringEnviar constante "API"✓ Sí
usuario_creacionstringCorreo usado en la autenticación✓ Sí
paisstringPaís del pedido✓ Sí
departamentostringDepartamento de entrega✓ Sí
provinciastringProvincia de entrega✓ Sí
distritostringDistrito de entrega✓ Sí
ubigeostringCódigo INEI de ubicación✓ Sí
porcentaje_impuestofloatPorcentaje IGV (ej: 18.0)— No
importe_subtotalfloatSubtotal sin impuesto— No
importe_descuentofloatTotal de descuentos— No
importe_impuestofloatMonto IGV total— No
importe_totalfloatImporte total del pedido— No
glosastringComentario u observación— No
flag_precio_imponiblestringIndica si precios unitarios incluyen IGV— No
fecha_entregastringFecha de entrega sugerida Y-m-d— No
hora_entrega_desdestringHora de entrega inicio H:i— No
hora_entrega_hastastringHora de entrega fin H:i— No
idtipo_entregaintegerTipo de pedido, default 1 (coordinar con TI)— No
picking_especificacionesstringDetalle para el operador logístico. Máx. 500 chars.— No

Array · detalles[]

💡
Los códigos de producto deben enviarse con la cantidad agrupada en el detalle del pedido.
AtributoTipoDescripciónReq.
secuenciaintegerNúmero incremental por producto✓ Sí
codigo_productostringSKU del producto✓ Sí
productostringNombre del producto✓ Sí
cantidadfloatCantidad (ej: 1 unidad = 1.00)✓ Sí
precio_unitariofloatValor unitario del producto— No
glosastringObservación del ítem— No
importe_subtotalfloatSubtotal sin impuesto del ítem— No
importe_impuestofloatIGV del ítem— No
importe_totalfloatTotal con impuesto del ítem— No
serie_gestionstringSerie del producto dirigido (coordinar con OL)— No

Ejemplo de Request

BODY · JSON
{
  "idempresa": 81,
  "persona": {
    "tipo_persona": 1,
    "persona": "JUAN CARLOS CUBA CONTRERAS",
    "numero_identidad": "10723988409",
    "tipo_identidad": 2,
    "direccion": "GLOBALES MZ P2 LT 17 LOS OLIVOS",
    "direccion_entrega": "GLOBALES MZ P2 LT 17 LOS OLIVOS",
    "pais": "PERU",
    "departamento": "LIMA",
    "provincia": "LIMA",
    "distrito": "LOS OLIVOS",
    "ubigeo": "150117",
    "telefono": "933301518",
    "email": "[email protected]",
    "codigo_estado": 1,
    "idempresa": 81,
    "maquina_creacion": "API"
  },
  "codigo_moneda": 1,
  "codigo_forpag": 10,
  "idalmacen": 726,
  "porcentaje_impuesto": 18.0,
  "importe_subtotal": 152.54237288136,
  "importe_descuento": 0.0,
  "importe_impuesto": 27.45762711864,
  "importe_total": 180.0,
  "glosa": "GLOSA DE PRUEBA TEST",
  "codigo_estado": 29,
  "fecha": "2021-07-05",
  "fecha_vencimiento": "2023-11-21",
  "flag_precio_imponible": "N",
  "idorder": 25035,
  "maquina_creacion": "API",
  "fecha_entrega": "2021-07-06",
  "hora_entrega_desde": "09:00:00",
  "hora_entrega_hasta": "18:00:00",
  "picking_especificaciones": "PEDIDO CON EMBALAJE ESPECIAL",
  "detalles": [{
    "secuencia": 1,
    "codigo_producto": "LAPTOP-001",
    "producto": "PRODUCTO 001",
    "cantidad": 1,
    "precio_unitario": 180.0,
    "importe_subtotal": 152.54237288136,
    "importe_impuesto": 27.45762711864,
    "importe_total": 180.0,
    "serie_gestion": "123456"
  }]
}
200 · Pedido creado
{
  "data": 8434,
  "message": "SE GENERO EL PEDIDO"
}
🔄

Transferencias

ℹ️
Tipos de transferencia disponibles Almacén → Almacén  |  Almacén → Nodo Externo  |  Nodo Externo → Almacén
Si el origen/destino no está en la red de almacenes, usa Nodo Externo con valor "0" y especifica la empresa involucrada.

Crear Transferencias (batch)

POST https://url-base/api/v1/transferencias/cargaMasivaApi
⚠️
Se permite un máximo de 10 documentos por batch. Los SKUs deben enviarse con cantidad agrupada.
AtributoTipoDescripciónReq.
almacen_origenstringCódigo del almacén origen. Usar "0" si es Nodo Externo✓ Sí
almacen_destinostringCódigo del almacén destino. Usar "0" si es Nodo Externo✓ Sí
numero_identidadstringDNI (8 dígitos) o RUC (11 dígitos)✓ Sí
personastringNombre o razón social de destino✓ Sí
direccionstringDirección de la persona o empresa destino✓ Sí
idempresastringConstante de empresa (solicitar a TI)✓ Sí
idorderstringCódigo de tu plataforma para hacer match✓ Sí
fecha_entregastringFecha de entrega sugerida Y-m-d✓ Sí
glosastringObservación general— No
codigo_productostringSKU del producto (dentro de detalle[])✓ Sí
cantidadfloatCantidad del ítem✓ Sí
iditem_orderintegerÍndice del ítem en sistemas externos— No
campos_adicionales array En caso sea necesario enviar campos adicionales fuera del diccionario de datos, puede utilizar este campo bajo este formato: "campos_adicionales": { "dimension_1": "", "dimension_2": "", "dimension_3": "", "dimension_4": "", "dimension_5": "" } En caso no sea necesario, debe viajar vacío: "campos_adicionales": "" — No

Ejemplo de Request

BODY · JSON Array
[
  {
    "almacen_origen": "ALMACEN1",
    "almacen_destino": "ALMACEN2",
    "glosa": "Glosa 5",
    "numero_identidad": "12368123",
    "persona": "PERSONA DE PRUEBA 1",
    "direccion": "DIRECCION DE PRUEBA 1",
    "idempresa": "1",
    "idorder": 123456,
    "detalle": [
      { "codigo_producto": "SKU0001", "cantidad": "1" },
      { "codigo_producto": "SKU0002", "cantidad": "13" }
    ]
  },
  {
    "almacen_origen": "ALMACEN2",
    "almacen_destino": "0",
    "idempresa": "1",
    "idorder": 5441,
    "detalle": [
      { "codigo_producto": "SKU0003", "cantidad": "2" }
    ]
  }
]
200 · Procesado
{
  "state": "successful",
  "code": "200",
  "data": [
    { "idorder": 123456, "code": 200 },
    {
      "idorder": 5441,
      "code": 400,
      "errors": ["El producto SKU0003 no existe para el almacén ALMACEN2(123)"]
    }
  ]
}
400 · Error de validación
{
  "code": 400,
  "state": "failed",
  "errors": [
    "El campo ... es obligatorio.",
    "El campo ... debe tener entre 8 y 20 dígitos."
  ]
}

Anular TRF

Solo si la TRF no tiene ningún despacho ni recepción registrado.

GET …/api/v1/transferencias/anular/{idtransferencia}

Cancelar TRF

Solo si se tiene certeza de que no se despachará (TRF de salida) ni se recibirá (TRF de entrada) más mercadería.

GET …/api/v1/transferencias/cancelar/{idtransferencia}
⚠️
Condición para anularSolo se puede anular el documento si se encuentra en el estado "Generado" y NO se encuentra en una gestión de picking, caso contrario la solicitud será rechazada.
📊

Stock

Listar Stock a la Fecha

POST https://url-base/api/v1/kardex/stockFechaApi
⚠️
Este endpoint está limitado a 1 request cada 60 segundos.
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
fechastringFecha de consulta formato Y-m-d✓ Sí
idalmacenintegerConstante (solicitar a TI)✓ Sí
BODY
{
  "idempresa": "1",
  "fecha": "2020-12-31",
  "idalmacen": "123"
}
200 · OK
{
  "code": 200,
  "state": "successful",
  "data": [
    { "codigo_producto": "PROD1", "producto": "PRODUCTO 1", "cantidad": 1, "estancia": 0 },
    { "codigo_producto": "PROD2", "producto": "PRODUCTO 2", "cantidad": -4, "estancia": 0 },
    { "codigo_producto": "PROD3", "producto": "PRODUCTO 3", "cantidad": 7, "estancia": 0 }
  ]
}
400 · Error
{
  "code": 400,
  "state": "failed",
  "errors": [
    "El campo ... es obligatorio.",
    "El campo ... no corresponde al formato Y-m-d."
  ]
}
🛒

Orden de Compra

Crear Orden de Compra

POST https://url-base/api/v1/ordenCompraApi

Objeto · persona

AtributoTipoDescripciónReq.
personastringNombre completo o razón social✓ Sí
numero_identidadstringDNI: 8 · RUC: 11 · CE: hasta 20 dígitos✓ Sí
tipo_personaintegerPara proveedor: 2✓ Sí
tipo_identidadintegerDNI→1 · RUC→2 · CE→3✓ Sí
paisstringNombre del país— No
departamentostringNombre del departamento— No
provinciastringNombre de la provincia— No
distritostringNombre del distrito— No
direccionstringDomicilio fiscal— No
direccion_entregastringDirección de entrega— No
contactostringNombre del contacto— No
persona_autorizadastringContacto alternativo— No
emailstringCorreo electrónico— No
telefonostringNúmero telefónico— No
ubigeostringCódigo de ubicación INEI— No
codigostringCódigo del proveedor en plataformas externas. Default ""— No

Campos raíz de la OC

AtributoTipoDescripciónReq.
idtipo_comprainteger1 = Compra Local · 2 = Importación✓ Sí
codigo_monedainteger1 = Soles · 2 = Dólares✓ Sí
codigo_forpag integer Forma de pago:

1 → Al contado
2 → Al crédito
10 → Ver observaciones
11 → Otros
14 → Pagado
✓ Sí
idalmacenintegerConstante (solicitar a TI)✓ Sí
fechastringFecha de emisión Y-m-d✓ Sí
fecha_vencimientostringFecha de caducidad Y-m-d✓ Sí
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
flag_precio_imponiblestringS incluye IGV · N no incluye IGV✓ Sí
idorderstringCódigo de tu plataforma para match✓ Sí
maquina_creacionstringEnviar constante "API"✓ Sí
importe_subtotalfloatSubtotal sin impuesto— No
importe_descuentofloatTotal de descuentos— No
importe_impuestofloatMonto IGV total— No
importe_totalfloatTotal de la OC— No
glosastringComentario u observación— No
fecha_entregastringFecha de recepción sugerida. Default: fecha + 2 días— No

Array · detalles[]

AtributoTipoDescripciónReq.
secuenciaintegerNúmero incremental por producto✓ Sí
codigo_productostringSKU del producto✓ Sí
productostringNombre del producto✓ Sí
cantidadfloatCantidad (1 unidad = 1.00)✓ Sí
precio_unitariofloatValor unitario— No
glosastringObservación del ítem— No
importe_subtotalfloatSubtotal sin impuesto del ítem— No
importe_impuestofloatIGV del ítem— No
importe_totalfloatTotal con impuesto del ítem— No
iditem_orderintegerÍndice en sistemas externos— No
porcentaje_descuentointegerDescuento por ítem. Enviar 0.0 si no aplica— No
campos_adicionales json En caso sea necesario enviar campos adicionales fuera del diccionario de datos, puede utilizar este campo bajo este formato: "campos_adicionales": { "dimension_1": "", "dimension_2": "", "dimension_3": "", "dimension_4": "", "dimension_5": "" } En caso no sea necesario, debe viajar vacío: "campos_adicionales": "" — No

Ejemplo de Request

BODY · JSON
{
  "idempresa": 1,
  "codigo_moneda": 1,
  "codigo_forpag": 11,
  "idalmacen": 116,
  "importe_subtotal": 8.47457627118644,
  "importe_descuento": 0.0,
  "importe_impuesto": 1.52542372881356,
  "importe_total": 10.0,
  "glosa": null,
  "fecha": "2023-10-18",
  "fecha_vencimiento": "2023-10-20",
  "flag_precio_imponible": "N",
  "idorder": null,
  "maquina_creacion": "API",
  "persona": {
    "persona": "NOMBRE DE CONTACTO / VENDEDOR / PROVEEDOR",
    "numero_identidad": "11029208890",
    "tipo_persona": 2,
    "tipo_identidad": 1,
    "pais": "PERU",
    "departamento": "LIMA",
    "provincia": "LIMA",
    "distrito": "LIMA",
    "direccion": "AV. LIBERTAD 123",
    "ubigeo": "150101",
    "email": "",
    "telefono": ""
  },
  "detalles": [
    {
      "secuencia": 1,
      "codigo_producto": "ABC-22",
      "producto": "MESA22",
      "cantidad": 1.0,
      "precio_unitario": 10.0,
      "importe_subtotal": 8.47457627118644,
      "importe_impuesto": 1.52542372881356,
      "importe_total": 10.0
    }
  ]
}
200 · OC creada
{
  "code": "200",
  "state": "successful",
  "id": 134
}
💾
Guarda el ID devueltoEl campo id de la respuesta es el idorden que necesitarás para anular o cancelar la OC en el futuro.

Anular OC

Solo si la OC no tiene ninguna recepción de mercadería.

GET …/api/v1/ordenCompraApi/anular/{idorden}

Cancelar OC

Solo si se tiene certeza de que no se recibirá más mercadería.

GET …/api/v1/ordenCompraApi/cancelar/{idorden}
⚠️
Condición para anularSolo se puede anular el documento si se encuentra en el estado "Generado" y NO se encuentra en una gestión de picking, caso contrario la solicitud será rechazada.
🏷️

Productos

1. Listar Productos

POST https://url-base/api/v1/productos/listarApi
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
productostringNombre o descripción del producto (filtro)— No
codigo_productostringSKU del producto (filtro)— No
BODY
{
  "idempresa": "1",
  "producto": "BOLSA",
  "codigo_producto": 15895
}
200 · OK
{
  "code": 200,
  "state": "successful",
  "data": [{
    "codigo_producto": "CODIGO1",
    "producto": "PRODUCTO 1",
    "unidad_medida": "UNIDAD",
    "codigo_producto_sunat": 1000,
    "estado": "ACTIVO",
    "created_at": "2020-11-10 10:45:18",
    "updated_at": "2020-12-22 13:24:27"
  }]
}
400 · Error
{
  "code": 400,
  "state": "failed",
  "errors": ["El campo ... es obligatorio."]
}

2. Crear Producto

POST https://url-base/api/v1/productosApi
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
codigo_productostring(35)SKU del producto✓ Sí
productostring(150)Nombre o descripción del producto✓ Sí
codigo_barrasstring(35)Código de barras del producto— No
codigo_unimedinteger1=UNIDAD · 2=KILOGRAMO · 8=METROS · 9=CAJAS · 10=PAR
Consultar soporte para ver todas las opciones disponibles
✓ Sí
codigo_estadointeger1 = Activo · 2 = Inactivo✓ Sí
idgestioninteger1=Anónimo · 2=Serie · 4=Lote (coordinar con OL)— No
codigo_producto_sunatintegerRequerido solo si el OL emite Guías Electrónicas— No*
precio_ventafloatPrecio referencial de venta— No
pesofloatPeso en kg. Requerido si se emiten Guías Electrónicas— No*
peso_volumetricofloatVolumen (m³) × Factor de conversión— No
metro_cubicofloatMetro cúbico del producto— No
altofloatAlto del producto— No
anchofloatAncho del producto— No
largofloatLargo del producto— No
marcastringMarca del producto— No
modelostringModelo del producto— No
proveedorstringProveedor o distribuidor— No
familia json Familia del producto. Máx. 5 jerarquías. Coordinar con soporte para obtener los IDs registrados.

① Familia existente — enviar array con idfamilia, descripcion e idtipo_familia: [ { "idfamilia": 209, "descripcion": "ELECTRODOMESTICOS", "idtipo_familia": 1 }, { "idfamilia": 210, "descripcion": "LINEA BLANCA", "idtipo_familia": 2 } ] ② Familia nueva — enviar string con separador pipe | (hasta 5 niveles): "HOGAR | LINEA BLANCA | ELECTRODOMÉSTICO | LAVADORA | LG"
— No
BODY
{
  "codigo_producto": "CODIGO10",
  "producto": "PRODUCTO 10",
  "codigo_barras": "7501234567890",
  "codigo_unimed": 1,
  "codigo_estado": 1,
  "idempresa": 1
}
200 · Producto creado
{
  "code": "200",
  "state": "successful",
  "data": "CODIGO10"
}
400 · Error
{
  "code": 400,
  "state": "failed",
  "errors": ["El campo ... es obligatorio."]
}

3. Actualizar Producto

PUT /api/v1/productos/{codigo_producto}/updateApi
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
codigo_productostring(35)SKU del producto✓ Sí
productostring(150)Nombre o descripción del producto— No
codigo_barrasstring(35)Código de barras del producto— No
codigo_unimedinteger1=UNIDAD · 2=KILOGRAMO · 8=METROS · 9=CAJAS · 10=PAR
Consultar soporte para ver todas las opciones disponibles
— No
codigo_estadointeger1 = Activo · 2 = Inactivo— No
codigo_producto_sunatintegerRequerido solo si el OL emite Guías Electrónicas— No
precio_ventafloatPrecio referencial de venta— No
pesofloatPeso en kg. Requerido si se emiten Guías Electrónicas— No
peso_volumetricofloatVolumen (m³) × Factor de conversión— No
metro_cubicofloatMetro cúbico del producto— No
altofloatAlto del producto— No
anchofloatAncho del producto— No
largofloatLargo del producto— No
marcastringMarca del producto— No
modelostringModelo del producto— No
proveedorstringProveedor o distribuidor— No
familia json Familia del producto. Máx. 5 jerarquías. Coordinar con soporte para obtener los IDs registrados.

① Familia existente — enviar array con idfamilia, descripcion e idtipo_familia: [ { "idfamilia": 209, "descripcion": "ELECTRODOMESTICOS", "idtipo_familia": 1 }, { "idfamilia": 210, "descripcion": "LINEA BLANCA", "idtipo_familia": 2 } ] ② Familia nueva — enviar string con separador pipe | (hasta 5 niveles): "HOGAR | LINEA BLANCA | ELECTRODOMÉSTICO | LAVADORA | LG"
— No
BODY
{
  "codigo_producto": "PROD-Z003",
  "producto": "PRODUCTO DE PRUEBA Z003",
  "codigo_barras": "ASRHKQ2141HKAS",
  "codigo_unimed": 1,
  "codigo_estado": 1,
  "codigo_producto_sunat": null,
  "idempresa": 120,
  "precio_venta": 0,
  "peso": 0,
  "peso_volumetrico": 0,
  "metro_cubico": 0,
  "alto": 0,
  "ancho": 0,
  "largo": 0,
  "marca": "MARCA DE PRUEBA",
  "modelo": "MODELO DE PRUEBA",
  "proveedor": "PROVEEDOR DE PRUEBA",
  "familia": [{
    "idfamilia": 14929,
    "descripcion": "FAMILIA 1",
    "idtipo_familia": 1
  }]
}
200 · Producto actualizado
{
  "code": "200",
  "state": "successful",
  "data": "PROD-Z003"
}
400 · Error
{
  "code": 400,
  "state": "failed",
  "errors": ["El campo ... es obligatorio."]
}
🗂️

Familias

Listar Familias

POST /api/v1/productos-familias/listarApi
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
BODY
{
  "idempresa": 120
}

Campos de respuesta

AtributoTipoDescripción
idfamiliaintegerID de la familia. Es el valor que se envía en familia al crear o actualizar productos
idfamilia_parentintegerID de la familia padre. 0 = nivel raíz (Sección)
idtipo_familiaintegerNivel jerárquico: 1=SECCION · 2=FAMILIA · 3=CATEGORIA · 4=LINEA · 5=SUBLINEA
tipo_familiastringNombre del nivel jerárquico
descripcionstringNombre de la familia
ordenintegerOrden de visualización
codigo_estadointeger1 = Activo · 2 = Inactivo
estadostringACTIVO · INACTIVO
idempresaintegerEmpresa a la que pertenece la familia
created_at / updated_atdatetimeFecha de creación / última actualización
deleted_atdatetimeFecha de eliminación (null si está vigente)
200 · OK
{
  "code": "200",
  "state": "successful",
  "data": [
    {
      "idfamilia": 209,
      "idfamilia_parent": 0,
      "idtipo_familia": 1,
      "descripcion": "ELECTRODOMESTICOS",
      "codigo_estado": 1,
      "orden": 1,
      "idempresa": 120,
      "created_at": "2024-04-13 13:14:50",
      "updated_at": "2024-04-13 13:14:50",
      "deleted_at": null,
      "tipo_familia": "SECCION",
      "estado": "ACTIVO"
    },
    {
      "idfamilia": 210,
      "idfamilia_parent": 209,
      "idtipo_familia": 2,
      "descripcion": "LINEA BLANCA",
      "codigo_estado": 1,
      "orden": 1,
      "idempresa": 120,
      "created_at": "2024-04-13 13:15:03",
      "updated_at": "2024-04-13 13:15:03",
      "deleted_at": null,
      "tipo_familia": "FAMILIA",
      "estado": "ACTIVO"
    }
  ]
}
400 · Error
{
  "code": 400,
  "state": "failed",
  "errors": ["El campo idempresa es obligatorio."]
}
📏

Unidades de Medida

Listar Unidades de Medida

POST /api/v1/unidadMedida/listarApi
ℹ️
No requiere parámetrosEl body se envía vacío. Retorna todas las unidades de medida disponibles.

Campos de respuesta

AtributoTipoDescripción
codigo_unimedintegerCódigo de la unidad de medida en Flexy (se usa en codigo_unimed al crear o actualizar productos)
unidad_medidastringNombre de la unidad de medida
abreviadostringAbreviatura de la unidad
estadostringACTIVO · INACTIVO
codigo_unimed_sunatstringCódigo de unidad de medida SUNAT
200 · OK
{
  "code": "200",
  "state": "successful",
  "data": [
    {
      "codigo_unimed": 2,
      "unidad_medida": "KILOGRAMO",
      "abreviado": "KG",
      "estado": "ACTIVO",
      "codigo_unimed_sunat": "KGM"
    },
    {
      "codigo_unimed": 9,
      "unidad_medida": "CAJAS",
      "abreviado": "CJ",
      "estado": "ACTIVO",
      "codigo_unimed_sunat": "BX"
    },
    {
      "codigo_unimed": 8,
      "unidad_medida": "METROS",
      "abreviado": "M",
      "estado": "ACTIVO",
      "codigo_unimed_sunat": "MTR"
    }
  ]
}
🔢

Series

Crear una Serie

POST https://url-base/api/v2/kardexSeriesExt
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
codigo_productostringSKU del producto✓ Sí
serie_gestionstringNúmero de serie del producto✓ Sí
dataarrayCaracterísticas adicionales de la serie (libre)— No
BODY
{
  "idempresa": 120,
  "codigo_producto": "LAPTOP-SMG",
  "serie_gestion": "SMG-011",
  "data": {
    "nro_chasis": "SMG",
    "nro_motor": "011",
    "color": "ROJO",
    "nro_oc": "100152"
  }
}
200 · Serie creada
{
  "code": "200",
  "state": "successful",
  "id": 123456
}
422 · Serie duplicada
{
  "code": 422,
  "state": "failed",
  "errors": ["La serie ya existe para el producto XXXX-XXX."],
  "message": "Revise los datos enviados."
}
400 · Error general
{
  "code": 400,
  "state": "failed",
  "message": "Error en ....."
}
🔍

Buscar pedidos

Listar pedidos

POST https://url-base/api/v1/pedidos/listarApi
📅
Las búsquedas por rango de fechas (desde y hasta) están limitadas a un máximo de 1 mes.
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
desdestringFecha de inicio formato Y-m-d. Requerido si no se envía idpedido— No*
hastastringFecha de fin formato Y-m-d. Requerido si no se envía idpedido— No*
idpedidointegerID del pedido para búsqueda específica. Si se envía, ignora las fechas.— No*
BODY · Búsqueda por fechas
{
  "idempresa": 45,
  "desde": "2026-07-01",
  "hasta": "2026-07-31"
}
BODY · Búsqueda por ID
{
  "idempresa": 45,
  "idpedido": 1234
}
200 · OK
{
  "code": "200",
  "state": "successful",
  "data": [
    {
      "numero_identidad": "72398840",
      "tipo_identidad": "DNI/CEDULA",
      "fecha": "2026-07-02",
      "idpedido": 89362,
      "numero_pedido": 101993,
      "idempresa": 45,
      "direccion_entrega": "CALLE 124 LOS OLIVOS",
      "ubigeo": "LIMA-LIMA-LOS OLIVOS",
      "almacen": "DISPONIBLE",
      "porcentaje_impuesto": "18.00",
      "importe_subtotal": "0.00000000",
      "importe_descuento": "0.00000000",
      "importe_impuesto": "0.00000000",
      "importe_total": "0.00000000",
      "importe_inafecto": null,
      "glosa": "REFERENCIA: CALLE 124 LOS OLIVOS",
      "moneda": "MONEDA LOCAL",
      "persona": "JUAN CARLOS CUBA",
      "estado": "ATENDIDO",
      "cantidad": "1.00000000",
      "codigo_estado": 10,
      "codigo_moneda": 1,
      "idalmacen": 608,
      "flag_precio_imponible": "N",
      "idpersona": 779839,
      "fecha_aprobacion": null,
      "estado_destino": "TRANSITO",
      "codigo_estado_destino": 46,
      "idorder": ""
    }
  ]
}
📋

Listar Movimientos (Kardex)

Listar Movimientos del Kardex

POST https://url-base/api/v1/kardex/listarApi
📅
El rango máximo entre desde y hasta es de 7 días. Sujeto a límite de 1 request / 60 s.
AtributoTipoDescripciónReq.
idempresaintegerConstante de empresa (solicitar a TI)✓ Sí
desdestringFecha inicio Y-m-d✓ Sí
hastastringFecha fin Y-m-d (máx. 7 días desde desde)✓ Sí
idalmacenintegerConstante (solicitar a TI)✓ Sí
idpedidoarrayFiltrar por IDs de pedidos específicos— No
idtransferenciaarrayFiltrar por IDs de transferencias— No
idordenarrayFiltrar por IDs de órdenes de compra— No
BODY
{
  "idempresa": 53,
  "desde": "2023-11-22",
  "hasta": "2023-11-22",
  "idalmacen": 621,
  "idpedido": [77306, 77307, 77308]
}
200 · OK
{
  "code": 200,
  "state": "successful",
  "data": [{
    "documento": "PS 00000075",
    "fecha": "2023-11-22",
    "almacen": "0001 - E-COMMERCE",
    "persona": "CLIENTES VARIOS",
    "cantidad": -2,
    "movimiento": "SALIDA POR VENTA",
    "estado": "ATENDIDO",
    "idpedido": 77306,
    "idorder": "1275020618044-01",
    "detalle": [{
      "codigo_producto": 1000033597,
      "cantidad": 1,
      "producto": "SET BLENDER",
      "unidad_medida": "UND"
    }]
  }]
}
📡

Webhook

Para la integración vía webhook, deberán proporcionarnos un endpoint accesible por HTTP POST que contemple un mecanismo de validación mediante token en la URL:

URL DE EJEMPLO
https://www.empresa-llc.com/recepcion?token=ABC-ABC-ABC
🔒
Seguridad del tokenEl valor del parámetro token debe ser un identificador único previamente acordado entre ambas partes. Permite al sistema receptor validar que la solicitud fue generada por Flexy antes de procesarla.

Flujo de notificaciones

📋 Evento en Flexy
→
🔄 Flexy genera POST
→
📡 Tu endpoint recibe
→
✅ Validar token
→
⚙️ Procesar trama

1. Recepción de Orden de Compra

Se dispara cuando el operador logístico confirma la recepción de mercadería en almacén.

WEBHOOK BODY
{
  "idkardex": 5465657,
  "idempresa": 120,
  "idalmacen": 1005,
  "idpersona": 767728,
  "idpersonas_tipo": null,
  "idmovimiento": 1,
  "codigo_moneda": 0,
  "numero_serie": null,
  "numero_documento": 52,
  "fecha": "2026-05-04 00:00:00",
  "fecha_traslado": null,
  "direccion_entrega": "DIRECCION DE PRUEBA JC",
  "glosa": null,
  "codigo_estado": 10,
  "usuario_creacion": "[email protected]",
  "created_at": "2026-05-04 23:59:44",
  "maquina_creacion": "DEV-FLEXY-001",
  "usuario_actualiza": null,
  "updated_at": "2026-05-04 23:59:44",
  "maquina_actualiza": null,
  "deleted_at": null,
  "flag_impreso": "N",
  "iddocumento": 7,
  "idserie": 0,
  "idpedido": 0,
  "idtransferencia": 0,
  "idtransportista": 0,
  "idalmacen_origen": 0,
  "idalmacen_destino": 1005,
  "idkardex_origen": 0,
  "idkardex_destino": 0,
  "idpicking": 0,
  "idorden": 41913,
  "idpicking_orden": 0,
  "idpicking_gestion": 0,
  "idtransaccion": null,
  "bultos_totales": 0,
  "data": null,
  "hash_created": "71a59a8d82f386bbd1baf6ffb0ac7114c890fe8e9492a85956cef70161403146",
  "hash_updated": "71a59a8d82f386bbd1baf6ffb0ac7114c890fe8e9492a85956cef70161403146",
  "detalle": [
    {
      "idkardex": 5465657,
      "secuencia": 1,
      "codigo_producto": "0TR0207",
      "cantidad": 1000.0,
      "glosa_detalle": null,
      "producto": "LLAVERO TIPO SIFONE",
      "precio_unitario": 0.0,
      "importe_subtotal": 0.0,
      "pvp": 0.0,
      "idproducto": 0,
      "idubicacion": 734,
      "idubicacion_destino": 0,
      "idserie_gestion": null,
      "secuencia_origen": 1,
      "idlote": null,
      "bultos": 0.0,
      "peso": 0.0,
      "data_kd": {
        "mascara_cantidad": 1000,
        "mascara_conversion": 1,
        "mascara_codigo_unimed": 1
      },
      "numero_lpn": null,
      "codigo_unimed": 1,
      "hash_created": "6ad3608748153a395b74dc44e71e40469d33c167391739c2f4bcc18ed7f805e5",
      "hash_updated": "6ad3608748153a395b74dc44e71e40469d33c167391739c2f4bcc18ed7f805e5"
    }
  ],
  "data_bk": null,
  "persona": {
    "idpersona": 767728,
    "persona": "JUAN CARLOS CUBA CONTRERAS",
    "numero_identidad": "72398840",
    "flag_pnatural": "S",
    "tipo_identidad": 1,
    "apellido_paterno": null,
    "apellido_materno": null,
    "nombres": null,
    "flag_extranjero": "N",
    "direccion": "DIRECCION DE PRUEBA JC",
    "direccion_entrega": "DIRECCION DE PRUEBA JC",
    "contacto": null,
    "persona_autorizada": null,
    "telefono": "922573761",
    "email": "[email protected]",
    "idpais": 167,
    "iddepartamento": 6463,
    "idprovincia": 6464,
    "iddistrito": 6481,
    "codigo_estado": 1,
    "usuario_creacion": null,
    "usuario_actualiza": null,
    "created_at": "2025-04-10 11:42:07",
    "updated_at": "2025-04-10 11:42:07",
    "maquina_creacion": null,
    "maquina_actualiza": null,
    "idempresa": 120,
    "idpersonas_tipo": null,
    "referencia": null,
    "ubigeo": "150117",
    "departamento": "LIMA",
    "provincia": "LIMA",
    "distrito": "LOS OLIVOS",
    "pais": "PERU",
    "idorder": null,
    "codigo": null,
    "longitud_x": null,
    "latitud_y": null,
    "hash_created": "2d43c4171bbd1453b3cb2e76d52a73d6b752f9696e01ca95fb23d487e1db68da",
    "hash_updated": "2d43c4171bbd1453b3cb2e76d52a73d6b752f9696e01ca95fb23d487e1db68da",
    "deleted_at": null
  }
}

2. Despacho de Pedido

Se dispara cuando el operador confirma el despacho de un pedido al cliente.

WEBHOOK BODY
{
  "idkardex": 5465658,
  "idempresa": 120,
  "idalmacen": 1005,
  "idpersona": 767644,
  "idpersonas_tipo": null,
  "idmovimiento": 3,
  "codigo_moneda": 1,
  "numero_serie": null,
  "numero_documento": 61,
  "fecha": "2026-05-05 00:00:00",
  "fecha_traslado": null,
  "direccion_entrega": null,
  "glosa": "REFERENCIA: LOS GLOBALES | SALIDA POR VENTA  | PEDIDO:100106 | ORDEN:",
  "codigo_estado": 10,
  "usuario_creacion": "[email protected]",
  "created_at": "2026-05-05 00:03:27",
  "maquina_creacion": "DEV-FLEXY-001",
  "usuario_actualiza": null,
  "updated_at": "2026-05-05 00:03:27",
  "maquina_actualiza": null,
  "deleted_at": null,
  "flag_impreso": "N",
  "iddocumento": 8,
  "idserie": 0,
  "idpedido": 87374,
  "idtransferencia": 0,
  "idtransportista": 0,
  "idalmacen_origen": 0,
  "idalmacen_destino": 0,
  "idkardex_origen": 0,
  "idkardex_destino": 0,
  "idpicking": 0,
  "idorden": 0,
  "idpicking_orden": 0,
  "idpicking_gestion": 0,
  "idtransaccion": null,
  "bultos_totales": 0,
  "data": {
    "idmodalidad_transporte": "02"
  },
  "hash_created": "8b2f1da6f1cd2148ee3ee538c401af252ca568c91002da8046fe5cc5584ef1b3",
  "hash_updated": "8b2f1da6f1cd2148ee3ee538c401af252ca568c91002da8046fe5cc5584ef1b3",
  "detalle": [
    {
      "idkardex": 5465658,
      "secuencia": 1,
      "codigo_producto": "0TR0207",
      "cantidad": 5.0,
      "glosa_detalle": null,
      "producto": "LLAVERO TIPO SIFONE",
      "precio_unitario": 0.0,
      "importe_subtotal": 0.0,
      "pvp": 0.0,
      "idproducto": 0,
      "idubicacion": 734,
      "idubicacion_destino": 0,
      "idserie_gestion": null,
      "secuencia_origen": 1,
      "idlote": null,
      "bultos": 0.0,
      "peso": 0.0,
      "data_kd": {
        "mascara_cantidad": 5,
        "mascara_conversion": 1,
        "mascara_codigo_unimed": 1
      },
      "numero_lpn": null,
      "codigo_unimed": 1,
      "hash_created": "40d41e0d5db687d914a37a9c7a42f712ea30e8d05998c8356f3a832625f56527",
      "hash_updated": "40d41e0d5db687d914a37a9c7a42f712ea30e8d05998c8356f3a832625f56527"
    }
  ],
  "data_bk": null,
  "pedido": {
    "idpedido": 87374,
    "numero_pedido": 100106,
    "idpersona": 767644,
    "codigo_moneda": 1,
    "codigo_forpag": 11,
    "idalmacen": 1005,
    "porcentaje_impuesto": 18.0,
    "importe_subtotal": 0.0,
    "importe_descuento": 0.0,
    "importe_impuesto": 0.0,
    "importe_total": 0.0,
    "glosa": "REFERENCIA: LOS GLOBALES",
    "flag_aprobado": null,
    "codigo_estado": 10,
    "fecha": "2026-05-05 00:00:00",
    "fecha_vencimiento": "2026-05-07 00:00:00",
    "descuento_importe": 0.0,
    "usuario_aprobacion": null,
    "flag_precio_imponible": "N",
    "idorder": "",
    "codigo_estado_destino": 46,
    "fecha_estado_destino": null,
    "fecha_entrega": "2026-05-07 00:00:00",
    "flag_express": "N",
    "codigo_estado_request": "0",
    "code_request": null,
    "request": null,
    "pais": "PERU",
    "departamento": "LIMA",
    "provincia": "LIMA",
    "distrito": "LOS OLIVOS",
    "iddevolucion": 0,
    "usuario_creacion": "[email protected]",
    "usuario_actualiza": "[email protected]",
    "created_at": "2026-05-05 00:02:20",
    "updated_at": "2026-05-05 00:03:27",
    "maquina_creacion": "DEV-FLEXY-001",
    "maquina_actualiza": "DEV-FLEXY-001",
    "idempresa": 120,
    "flag_requiere_mailing": "N",
    "flag_mailing": "N",
    "deleted_at": null,
    "importe_inafecto": null,
    "codigo_ubigeo": null,
    "hora_entrega_desde": "00:00:00",
    "hora_entrega_hasta": "00:00:00",
    "fecha_aprobacion": null,
    "idtransportista": 0,
    "ubigeo": "150117",
    "fecha_estado_origen": "2026-05-05 00:03:27",
    "idpedido_origen": 0,
    "idpedido_padre": 0,
    "orden_atencion": null,
    "costo_envio": null,
    "idtipo_entrega": 1,
    "flag_mailing_entrega": "N",
    "flag_requiere_mailing_entrega": "N",
    "fecha_ruta_tms": null,
    "flag_requiere_mailing_aprobado": "N",
    "flag_mailing_aprobado": "N",
    "idlocal": null,
    "picking_especificaciones": null,
    "importe_transporte": 0.0,
    "idcanal": null,
    "bultos_totales": 1,
    "data_liquidacion": null,
    "hash_created": "1ce90b4009f3557607f936486842b3307fc7292a598d8290b83ecdc55245f219",
    "hash_updated": "39a1bec8fdc29ffc34f1b5e91b9018c02c12e805f10c9ddd2c1fcb494c3199f8",
    "idplataforma": null,
    "fecha_en_camino": null,
    "detalle": [
      {
        "idpedido": 87374,
        "secuencia": 1,
        "codigo_producto": "0TR0207",
        "cantidad": 5.0,
        "precio_unitario": 0.0,
        "cantidad_atendida": 0.0,
        "importe_subtotal": 0.0,
        "importe_impuesto": 0.0,
        "importe_total": 0.0,
        "created_at": null,
        "updated_at": null,
        "glosa": "",
        "precio_publico": 0.0,
        "producto": "LLAVERO TIPO SIFONE",
        "importe_descuento": 0.0,
        "idserie_gestion": null,
        "idlote": null,
        "codigo_unimed": 1,
        "hash_created": "d8da115c8959a724cb4898f4a5bc21b1d08d567b7dfe99cf6d585c314afc9b4a",
        "hash_updated": "d8da115c8959a724cb4898f4a5bc21b1d08d567b7dfe99cf6d585c314afc9b4a",
        "numero_lpn": null
      }
    ]
  },
  "persona": {
    "idpersona": 767644,
    "persona": "JUAN CARLOS CUBA",
    "numero_identidad": "72398840",
    "flag_pnatural": "S",
    "tipo_identidad": 1,
    "apellido_paterno": null,
    "apellido_materno": null,
    "nombres": null,
    "flag_extranjero": "N",
    "direccion": "CALLE 124 MZ P2 LT 17 LOS OLIVOS DE PRO",
    "direccion_entrega": "CALLE 124 MZ P2 LT 17 LOS OLIVOS DE PRO LOS GLOBALES CON LAS CASUARINAS",
    "contacto": "JUAN CARLOS CUBA",
    "persona_autorizada": "JUAN CARLOS CUBA",
    "telefono": "922573761",
    "email": "[email protected]",
    "idpais": 167,
    "iddepartamento": 6463,
    "idprovincia": 6464,
    "iddistrito": 6481,
    "codigo_estado": 1,
    "usuario_creacion": "[email protected]",
    "usuario_actualiza": null,
    "created_at": "2025-04-03 15:48:18",
    "updated_at": "2025-04-03 15:48:18",
    "maquina_creacion": "DEV-FLEXY-001",
    "maquina_actualiza": null,
    "idempresa": 120,
    "idpersonas_tipo": null,
    "referencia": "LOS GLOBALES",
    "ubigeo": "150117",
    "departamento": "LIMA",
    "provincia": "LIMA",
    "distrito": "LOS OLIVOS",
    "pais": "PERU",
    "idorder": null,
    "codigo": null,
    "longitud_x": null,
    "latitud_y": null,
    "hash_created": "065ca072497f7792cbbff71881ae81f9b8ada745fcaa2eb922f6e876a3dfb2fa",
    "hash_updated": "8908def232275857592f109f0fc0db60012c381ce7aa7b168806e88e7ca104ca",
    "deleted_at": null
  }
}

3. Atención de Transferencia

Se dispara cuando el operador confirma la atención de una transferencia entre almacenes.

WEBHOOK BODY
{
  "idkardex": 5465659,
  "idempresa": 120,
  "idalmacen": 1005,
  "idpersona": 777552,
  "idpersonas_tipo": null,
  "idmovimiento": 6,
  "codigo_moneda": 0,
  "numero_serie": null,
  "numero_documento": 62,
  "fecha": "2026-05-05 00:00:00",
  "fecha_traslado": null,
  "direccion_entrega": "CALLAO, VENTANILLA, Z.I. PARQUE PORCINO ZONA 14 MZ. 119 LOTE 2, VENTANILLA 07046, PERÊ",
  "glosa": null,
  "codigo_estado": 10,
  "usuario_creacion": "[email protected]",
  "created_at": "2026-05-05 00:05:16",
  "maquina_creacion": "DEV-FLEXY-001",
  "usuario_actualiza": null,
  "updated_at": "2026-05-05 00:05:16",
  "maquina_actualiza": null,
  "deleted_at": null,
  "flag_impreso": "N",
  "iddocumento": 8,
  "idserie": 0,
  "idpedido": 0,
  "idtransferencia": 10244,
  "idtransportista": 123456,
  "idalmacen_origen": 1005,
  "idalmacen_destino": 0,
  "idkardex_origen": 0,
  "idkardex_destino": 0,
  "idpicking": 0,
  "idorden": 0,
  "idpicking_orden": 0,
  "idpicking_gestion": 0,
  "idtransaccion": null,
  "bultos_totales": 0,
  "data": {
    "idmodalidad_transporte": "02",
    "idvehiculo": 11
  },
  "hash_created": "58f43d4a1866bb7083a7895de35c6b1d939e9075c3654e638475559d997258f9",
  "hash_updated": "58f43d4a1866bb7083a7895de35c6b1d939e9075c3654e638475559d997258f9",
  "detalle": [
    {
      "idkardex": 5465659,
      "secuencia": 1,
      "codigo_producto": "0TR0207",
      "cantidad": 10.0,
      "cantidad_entregada": 0.0,
      "producto": "LLAVERO TIPO SIFONE",
      "glosa_detalle": null,
      "data_td": null,
      "codigo_unimed": 1,
      "hash_created": "26f7d26a95f2dc29bf290ab543225b793500cfa53ebeb69e5d059cacd9954208",
      "hash_updated": "26f7d26a95f2dc29bf290ab543225b793500cfa53ebeb69e5d059cacd9954208",
      "numero_lpn": null
    }
  ],
  "data_bk": null,
  "transferencia": {
    "idtransferencia": 10244,
    "fecha_emision": "2026-05-05 00:00:00",
    "fecha_vencimiento": "2026-05-07 00:00:00",
    "idalmacen_origen": 1005,
    "idalmacen_destino": 0,
    "idpersona_nodo_externo": 777552,
    "created_at": "2026-05-05 00:02:54",
    "codigo_estado": 10,
    "idempresa": 120,
    "glosa": null,
    "updated_at": "2026-05-05 00:05:16",
    "maquina_creacion": "DEV-FLEXY-001",
    "maquina_actualiza": "DEV-FLEXY-001",
    "usuario_creacion": "[email protected]",
    "usuario_actualiza": "[email protected]",
    "tipo": null,
    "deleted_at": null,
    "numero_transferencia": 100084,
    "idorder": null,
    "idpedido": null,
    "iddevolucion": null,
    "idtipo_transferencia": 1,
    "fecha_estado_transito": null,
    "fecha_estado_recojo": null,
    "fecha_estado_entregado": null,
    "idtransportista": 0,
    "glosa_transportista": null,
    "orden_atencion": null,
    "request_client": null,
    "fecha_programada": "2026-05-05 00:02:30",
    "idtipo_movimiento": 3,
    "fecha_ruta_tms": null,
    "codigo_estado_destino": null,
    "fecha_estado_destino": null,
    "idorigen": 2,
    "idtransferencia_origen": 0,
    "data_liquidacion": null,
    "idpersona_origen": 0,
    "idpersona_destino": 0,
    "hash_created": "dedfb94227abdbbcd7a042ae4fdc8d9006feb6a93d16cadf7506c6a78be95437",
    "hash_updated": "1243a7b05ada0a1e451aebf030a74fe30e373a07c9be4f804d7a240cb917c920",
    "detalle": [
      {
        "secuencia": 1,
        "idtransferencia": 10244,
        "codigo_producto": "0TR0207",
        "cantidad": 10.0,
        "cantidad_entregada": 0.0,
        "producto": "LLAVERO TIPO SIFONE",
        "glosa_detalle": null,
        "data_td": null,
        
1 Visitantes están en línea ahora
✓