Saltar al contenido principal

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):

RutaUso
POST /batchesCrea 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_code es el código del lote en su sistema y es obligatorio. No puede repetirse en la central.
  • description es opcional.
  • services es obligatorio en la creación, con 1 a 100 servicios por solicitud.
  • Cada servicio se identifica por id o por internal_code; enviar los dos en el mismo servicio se rechaza con 400.

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:

CampoEfecto
internal_codeCambia el código del lote. Ausente preserva.
descriptionCambia la descripción. Ausente preserva; null la borra.
servicesReemplaza 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​

EstadoCuándo
400Cuerpo 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.
404En la actualización, lote inexistente o de otra central.
409Ya existe un lote con ese internal_code en la central.
422Algú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" }
]
}
reasonSignificado
not_foundServicio inexistente o de otra central.
ambiguousinternal_code con más de un servicio; envíe el id.
finishedServicio concluido.
not_releasedServicio aún no liberado para producción.
duplicatedServicio repetido en la lista.

Un lote con un servicio rechazado no se crea ni se modifica.

Respuesta perdida en la creación

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.