> For the complete documentation index, see [llms.txt](https://docs.payvalida.com/payin-metodos-digitales/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payvalida.com/payin-metodos-digitales/medio-de-pago-digital/annulment.md).

# Annulment

## Constituye la solicitud de anulación o reembolso de una transacción

<mark style="color:green;">`POST`</mark> `/transaction/annulment`

Solicitud de anulación o cancelación de una transacción y por lo tanto del pago.\
\- Se puede enviar una vez ha expirado la transacción, después de haber recibido una respuesta de confirmación con estado PENDING. \
\- Valor es inconsistente en la confirmación con respecto al valor enviado en Transaction.\
\- Se puede enviar máximo 30 minutos después de haber recibido una respuesta de confirmación con estado APPROVED.\
\
El endpoint debe ser expuesto por el medio de pago digital y será invocado por payválida.

#### Headers

| Name                                           | Type   | Description                                                                                                                                                                                                 |
| ---------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Accept<mark style="color:red;">\*</mark>       | String | Utilizado para definir que tipo de contenido puede procesar el cliente. El valor siempre debe ser application/json.                                                                                         |
| Content-Type<mark style="color:red;">\*</mark> | String | Utilizado para identificar el media-type del cuerpo de la solicitud. El valor siempre debe ser application/json.                                                                                            |
| Authorization                                  | String | Token Oauth2 obtenido en el endpoint Oauth2 expuesto por el medio de pago digital. En caso de que el token tenga un scope, se debe definir previamente. Debe seguir el formato 'token\_type access\_token'. |

#### Request Body

| Name                                          | Type   | Description                                                                                                                                                                               |
| --------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| transaction<mark style="color:red;">\*</mark> | Object | Información de la transacción anulada.                                                                                                                                                    |
| id<mark style="color:red;">\*</mark>          | String | Parte del object transaction. Identificador de la transacción.                                                                                                                            |
| value<mark style="color:red;">\*</mark>       | String | Parte del object transaction. Monto de la transacción. Si se recibió en confirmation un valor distinto a el de transaction, la anulación se enviará por el valor recibido en transaction. |

{% tabs %}
{% tab title="200: OK Solicitud procesada correctamente" %}
**transaction**<mark style="color:red;">**\***</mark> (<mark style="color:blue;">object</mark>): Información de la transacción anulada.

**id**<mark style="color:red;">**\***</mark> (<mark style="color:blue;">string</mark>): Parte del objeto transaction. Identificador de la transacción.

**status**<mark style="color:red;">**\***</mark> (<mark style="color:blue;">string</mark>): Parte del objeto transaction. Estado de transacción tras anulación. Valor permitido: REVERSED. REVERSED significa que se realizó la anulación de la transacción. Cualquier otro status se tomará como fallido.

**annulment\_result** (<mark style="color:blue;">string</mark>): Parte del objeto transaction. Descripción del estado o resultado de anulación. Es opcional y se utiliza por registro y trazabilidad.
{% endtab %}

{% tab title="400: Bad Request La solicitud o los claims del token no tienen la estructura esperada." %}

{% endtab %}

{% tab title="403: Forbidden No fue posible identificar al cliente de la solicitud. Asociado a la validación y verificación del token." %}

{% endtab %}

{% tab title="404: Not Found La transacción asociada no existe o no se encuentra." %}

{% endtab %}

{% tab title="409: Conflict La solicitud entra en conflicto con el estado actual de la transacción." %}

{% endtab %}

{% tab title="500: Internal Server Error Error del servidor al procesar la solicitud." %}

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Request ejemplo" %}

```json
{
  "transaction": {
    "id": "0427dfac-ffd8-44f4-be96-5d442c1c1bed",
    "value": "10.25"
  }
}
```

{% endtab %}

{% tab title="Response ejemplo" %}

```json
{
  "transaction": {
    "id": "0427dfac-ffd8-44f4-be96-5d442c1c1bed",
    "status": "REVERSED",
    "annulment_result": "Reembolso efectuado"
  }
}
```

{% endtab %}
{% endtabs %}
