# Cambiar estados de entrega

Puedes utilizar este endpoint para cambiar el estado a una entrega, aqui puedes añadir comentarios o agregar razones de problemas creados anteriormente en el sistema. Para conoces mas de los estados de Shippify, [entre aqui.](https://docs.shippify.co/developers/guia-de-integracion/procesos-basicos/actualizacion-de-estados/estados)

## Actualiza el estado de una entrega

> Actualizar el estado de una entrega por su ID o referencia.

```json
{"openapi":"3.0.0","info":{"title":"API de Shippify","version":"1.0.0"},"servers":[{"url":"https://api.shippify.co","description":"Servidor de desarrollo"}],"security":[{"Basic_Auth":[]}],"components":{"securitySchemes":{"Basic_Auth":{"type":"http","scheme":"basic"}},"schemas":{"changeStatus":{"successfulResponse":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"request":{"type":"object","required":["status","comment","author"],"properties":{"status":{"description":"Nuevo estado de la ruta","type":"string","enum":["pending_to_review","processing","broadcasting","assigned","confirmed_to_pickup","going_to_pickup","at_pickup","on_delivery","going_to_dropoff","at_dropoff","dropped_off","completed","canceled","going_to_return","at_return_point","returned","not_picked_up","not_picked_up_payable","hold_by_courier"]},"comment":{"type":"string","description":"Comentario del cambio"},"reasonByCompany":{"type":"array","description":"Razones predefinidas para el cambio de estado","items":{"type":"object","required":["reasonId","reason"],"properties":{"reasonId":{"type":"integer","description":"Identificador de la razón para cambiar el estado"},"reason":{"type":"string","description":"Nombre de la razón para cambiar el estado"}}}},"author":{"type":"object","required":["id","type","name","email"],"description":"Información del usuario que realiza el cambio de estado","properties":{"type":{"type":"string","description":"Tipo de usuario","enum":["operator","admin"]},"id":{"type":"integer","description":"Identificador de usuario"},"name":{"type":"string","description":"Nombre de usuario"},"email":{"type":"string","description":"Email de usuario"}}}}}},"Unauthenticated":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"paths":{"/v1/deliveries/{id}/status":{"patch":{"tags":["Entregas"],"summary":"Actualiza el estado de una entrega","description":"Actualizar el estado de una entrega por su ID o referencia.","responses":{"200":{"description":"Operación exitosa","content":{"application/json":{"schema":{"$ref":"#/components/schemas/changeStatus/successfulResponse"}}}},"401":{"description":"No autorizado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unauthenticated"}}}}},"parameters":[{"name":"id","in":"path","description":"Identificador o ID de referencia de la entrega para cambiar el estado.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Aquí va la descripción","content":{"application/json":{"schema":{"$ref":"#/components/schemas/changeStatus/request"}}}}}}}}
```

## Casos de uso

<details>

<summary>Cambio de estado por referenceId</summary>

Puedes utilizar el reference id de la entrega en la url de la petición para cambiar su estado.

</details>

<details>

<summary>Cancelar entrega</summary>

```json
{
    "status": "canceled",
    "comment": "TEST",
    "author": {
        "email": "example@shippify.co",
        "id": 999,
        "name": "Test operator",
        "type": "operator"
    }
}
```

</details>

<details>

<summary>Cambiar estado a resguardo del conductor con motivo de problema</summary>

```json
{
    "status": "hold_by_courier",
    "comment": "Sur de la ciudad",
    "reasonByCompany": [
        {
            "companyId": "9065",
            "reasonId": 67,
            "reason": "ZONA PELIGROSA"
        }
    ],
    "author": {
        "type": "operator",
        "id": 1149,
        "name": "example",
        "email": "example@shippify.co"
    }
}
```

</details>

<details>

<summary>Completar entrega</summary>

```json
{
    "status": "completed",
    "comment": "",
    "author": {
        "type": "operator",
        "id": 1,
        "name": "example",
        "email": "example@shippify.co"
    }
}
```

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.shippify.co/developers/shippify-api/entregas/cambiar-estados-de-entrega.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
