Enviar lotes de servicios
Un lote agrupa servicios de la central para la producción. Su integración arma el lote en su sistema y lo envía a Cortecloud, que guarda la agrupación y la muestra a la producción y al PCP. Un servicio puede estar en varios lotes, y el lote no modifica el servicio.
Dos rutas, ambas exigen autenticación por central (HMAC):
| Ruta | Uso |
|---|---|
POST /batches | Crea el lote y devuelve el id. |
PUT /batches/{id} | Actualiza el lote por el id. |
Crear un lote
{
"internal_code": "LOTE-0042",
"description": "Turno de la mañana",
"services": [
{ "id": 1234 },
{ "internal_code": "PED-000123" }
]
}
internal_codees el código del lote en su sistema y es obligatorio. No puede repetirse en la central.descriptiones opcional.serviceses obligatorio en la creación, con 1 a 100 servicios por solicitud.- Cada servicio se identifica por
ido porinternal_code; enviar los dos en el mismo servicio se rechaza con400.
La respuesta 201 trae el id del lote. Guárdelo: la actualización exige ese id.
Actualizar un lote
Solo cambian los campos enviados, y es necesario enviar al menos uno:
| Campo | Efecto |
|---|---|
internal_code | Cambia el código del lote. Ausente preserva. |
description | Cambia la descripción. Ausente preserva; null la borra. |
services | Reemplaza la lista entera: los servicios ausentes salen del lote, y [] lo vacía. Ausente preserva los servicios. |
{ "services": [{ "id": 1234 }, { "id": 1235 }] }
La actualización sobrescribe las ediciones hechas en Cortecloud. Repetir la misma llamada no cambia el resultado.
Qué servicios entran
El servicio debe producirse en la central de la solicitud y estar liberado para producción (estado 7, 13, 21 o 22). Un servicio concluido (9) o aún no liberado se rechaza.
El internal_code de servicio que coincide con más de un servicio de la central es ambiguo, y el lote entero se rechaza. En ese caso, envíe el id. La búsqueda mira servicios en todos los estados, así que un servicio antiguo con el mismo código también causa ambigüedad.
Errores
| Estado | Cuándo |
|---|---|
400 | Cuerpo fuera del formato: sin internal_code o sin services en la creación, cuerpo vacío en la actualización, servicio sin id ni internal_code o con los dos, más de 100 servicios. |
404 | En la actualización, lote inexistente o de otra central. |
409 | Ya existe un lote con ese internal_code en la central. |
422 | Algún servicio no puede componer el lote. |
En 422, el campo problems lista cada servicio rechazado y el motivo:
{
"status": 422,
"problems": [
{ "ref": { "id": 1234 }, "reason": "finished" },
{ "ref": { "internalCode": "PED-000123" }, "reason": "ambiguous" }
]
}
reason | Significado |
|---|---|
not_found | Servicio inexistente o de otra central. |
ambiguous | internal_code con más de un servicio; envíe el id. |
finished | Servicio concluido. |
not_released | Servicio aún no liberado para producción. |
duplicated | Servicio repetido en la lista. |
Un lote con un servicio rechazado no se crea ni se modifica.
Si la respuesta del POST se pierde, un nuevo intento recibe 409 sin el id del lote. En ese caso, contacte al soporte para recuperarlo.