Crear transferencia interna
/integration/wms/picking/internal/create
Crea (o reutiliza, si existe una previamente cancelada con esas ubicaciones
— ver origin_doc) una transferencia interna de inventario entre dos
ubicaciones, con sus líneas de producto, y la procesa de forma completa:
confirma, verifica disponibilidad y la marca como realizada en la misma
llamada. El picking y sus movimientos se crean desde cero a partir de
product_lines — no se referencia ningún move_id existente. Si se omite
origin_doc, cualquier movimiento previo del picking reutilizado se
elimina antes de crear los nuevos (siempre aplica aquí, ya que el tipo de
operación de este endpoint es siempre internal).
Ambas ubicaciones deben existir (L02/L03) y no pueden ser la misma
(L11). Si ambas están gestionadas por WMS, deben pertenecer al mismo
almacén (L10) — para mover entre almacenes distintos debe usarse una
ubicación de tránsito intermedia; tampoco se permite transferir entre dos
ubicaciones de tránsito (L11). El tipo de operación internal con esas
ubicaciones por defecto debe existir parametrizado en DrivErp (S02). Si
no hay disponibilidad suficiente del producto/lote en origen, la
transferencia se cancela automáticamente y responde L09; alcanzar el
límite de reintentos fallidos para el mismo origen responde S08.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
user
requerido
|
string | Usuario de integración de la compañía. Ver guía Autenticación. |
passwd
requerido
|
string | SHA-256 de la contraseña de integración. Ver guía Autenticación. |
location_code
requerido
|
string | Código de la ubicación de origen (stock.location, campo code). L02 si no existe. |
location_dest_code
requerido
|
string | Código de la ubicación de destino. L03 si no existe. No puede ser igual a location_code (L11); si ambas ubicaciones son gestionadas por WMS deben pertenecer al mismo almacén (L10); no se permite transferir entre dos ubicaciones de tránsito (L11). |
origin_doc
|
string | Referencia del documento origen. Si existe una transferencia cancelada con el mismo tipo de operación y ubicaciones, se reutiliza (si se envía origin_doc, además debe coincidir exactamente; si se omite, se reutiliza cualquier cancelada con esas ubicaciones sin filtrar por origen). Si además coincide con el nombre de una recepción de proveedor ya existente y no cancelada, la transferencia interna queda enlazada a esa recepción como transferencia en dos pasos. Junto con location_code/location_dest_code es también la clave del control de reintentos (S09). |
product_lines
requerido
|
array | Líneas de producto a transferir (se crean como nuevos movimientos, no se referencia un move_id existente). |
product_ref
requerido
|
string | Id del producto en DrivErp (product.product). Aunque es un identificador numérico, debe enviarse como texto (la validación de la petición exige string, no número JSON). P01 si no existe; P05 si es de tipo Servicio; P02 si aparece repetido y el producto no tiene trazabilidad por lote. |
qty
requerido
|
number | Cantidad a transferir (mayor a cero; formato inválido responde I05). |
lot_name
|
string | Nombre del lote. Si el producto tiene trazabilidad y el lote no existe, se crea automáticamente siempre que no se requiera expiration_date (o que sí se haya enviado); si se requiere y no se envió, no se crea el lote y en su lugar se exige que ya exista (L06 si no existe). |
lot_ref
|
string | Referencia/placa del lote, exigida al crear un lote nuevo si el producto lo requiere (L12). |
expiration_date
|
date | Fecha de vencimiento del lote a crear (YYYY-MM-DD). Enviarla cuando el producto no controla vencimiento responde L05. |
lot_group
|
string | Nombre del grupo de lotes; se crea automáticamente si no existe. |
curl -X POST 'https://<instancia>/integration/wms/picking/internal/create' \
-H 'Content-Type: application/json' \
-d '{
"user": "Us31#WM",
"passwd": "9ccd3cdccdffdc88197c4c5c8d2e3b015be22fa76da6bf057bba5ef4e8eb45c4",
"origin_doc": "WMS-MOV-000451",
"location_code": "354",
"location_dest_code": "356",
"product_lines": [
{
"product_ref": "201",
"qty": 3,
"lot_name": "20260701-A1"
}
]
}'
{
"jsonrpc": "2.0",
"id": null,
"result": {
"status_code": "00",
"novelty": {},
"request_details": {
"processed_lines": 1,
"document_name": "WH/INT/00087"
}
}
}