# Actualizar servicios

> Cómo guardar el código del pedido del ERP en un servicio y enviar el servicio a producción.

URL canónica: https://apis.cortecloud.com.br/docs/es/guias/integracao-erp/atualizar-servicos/

Su integración hace dos operaciones sobre un [servicio](https://apis.cortecloud.com.br/docs/es/comecando/conceitos.md#servico): graba en él el código del pedido en el ERP y lo envía a producción.

## Asociar el código del pedido del ERP {#associar-o-codigo-do-pedido-do-erp}

Rutas: [`PUT /services/{id}`](https://apis.cortecloud.com.br/docs/swagger#/Services/updateService) o [`PATCH /services/{id}`](https://apis.cortecloud.com.br/docs/swagger#/Services/patchService). Las dos hacen lo mismo.

Cuando la central registra un servicio como pedido en el ERP, grabe el código de ese pedido en el `internal_code` del servicio. A partir de ahí, el servicio puede encontrarse por el código del ERP (filtro `internal_code` de `GET /services`) y deja de aparecer en la búsqueda de servicios sin código (`internal_code=null`).

Pasos:

1. Obtenga el `id` del servicio mediante el [listado o la consulta](https://apis.cortecloud.com.br/docs/es/guias/integracao-erp/obter-servicos.md).
2. Registre el pedido en el ERP y guarde el código generado.
3. Llame a la ruta con el `id` en la URL y el código en el cuerpo:

   ```json
   { "internal_code": "PED-000123" }
   ```

`internal_code` es el único campo modificable y es obligatorio en el cuerpo. Acepta texto o número; envíe `null` para borrarlo.

La asociación solo se acepta con el servicio en uno de los [estados que expone la API](https://apis.cortecloud.com.br/docs/es/comecando/conceitos.md#status-do-servico): presupuesto generado (`4`), esperando pago en línea (`25`), aprobado (`6`), enviado a producción (`7`) o producido (`9`).

Fuera de esos estados, o sin `internal_code` en el cuerpo, la respuesta es `500` con el motivo en el mensaje. Repetir la llamada no lo resuelve: corrija el cuerpo o verifique el estado del servicio.

## Enviar a producción {#enviar-para-producao}

Ruta: [`POST /services/{id}/production`](https://apis.cortecloud.com.br/docs/swagger#/Services/sendServiceToProduction).

Envía el servicio a la producción de la central y registra como responsable al [vendedor](https://apis.cortecloud.com.br/docs/es/comecando/conceitos.md#quem-e-quem) con el correo electrónico indicado. El efecto es el mismo que si el vendedor aprobara el servicio para producción en Cortecloud. Use esta ruta con el servicio aprobado (`6`).

```json
{ "sellerEmail": "vendedor@example.com" }
```

- El correo electrónico debe ser de un vendedor activo en la central de la solicitud; si no lo es, la respuesta es `422`.
- La respuesta `202` confirma que el envío fue aceptado. El estado cambia poco después: siga el avance con [`GET /services/{id}`](https://apis.cortecloud.com.br/docs/swagger#/Services/getService), o por [webhook](https://apis.cortecloud.com.br/docs/es/guias/webhooks.md), hasta que el servicio llegue a enviado a producción (`7`). Mientras se procesa el envío, `status.code` puede traer un código intermedio que no está en la [tabla de estados](https://apis.cortecloud.com.br/docs/es/comecando/conceitos.md#status-do-servico).
- Si Cortecloud rechaza el envío, por ejemplo por saldo insuficiente, la respuesta es `502` con el motivo en el mensaje.
