> 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/payvalida/confirmation-callback.md).

# Confirmation callback

## Constituye la confirmación asíncrona de una transacción.

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

Endpoint expuesto por Payválida, utilizado para la confirmación asíncrona. El flujo de confirmación asíncrona ocurre cuando la respuesta de confirmación tiene un estado PENDING. Este endpoint lo define Payválida en el request de Transaction, en el object session, parámetro confirmation\_callback\_url.

#### 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<mark style="color:red;">\*</mark> | String | Token Oauth2 obtenido en el endpoint Oauth2 expuesto por payválida. 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 confirmada.                                                                                                                                                                                                                                                                                                                                                                       |
| id<mark style="color:red;">\*</mark>          | String | Parte del object transaction. Identificador de la transacción.                                                                                                                                                                                                                                                                                                                                                  |
| status<mark style="color:red;">\*</mark>      | String | <p>Parte del object transaction. Estado de transacción tras confirmar el monto, y por ende, la confirmación del pago. Valores permitidos: REJECTED y APPROVED.<br>REJECTED: Significa que no se completó el pago y por lo tanto el fin del flujo. <br>APPROVED: Significa que se confirma el pago por el valor de la transacción. <br>Cualquier estado distinto a APPROVED será interpretado como REJECTED.</p> |
| confirmation\_result                          | String | Parte del object transaction. Descripción del estado o resultado de confirmación. Es opcional y se utiliza por registro y trazabilidad.                                                                                                                                                                                                                                                                         |
| value<mark style="color:red;">\*</mark>       | String | Parte del object transaction. Monto de la transacción y por lo tanto del pago. En caso de recibir un valor distinto al enviado en transaction, el medio de pago digital debe estar preparado para recibir una solicitud de anulación con el monto recibido al crear la transacción (consumo de 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 confirmada

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

**status**<mark style="color:red;">**\***</mark> (<mark style="color:blue;">string</mark>): Parte del object transaction. Estado de la transacción tras confirmar el monto, y por ende, la confirmación del pago.  Valores permitidos: REJECTED, APPROVED.

**confirmation\_result** (<mark style="color:blue;">string</mark>): Parte del object transaction. Estado de la transacción tras procesamiento de confirmación asíncrona.
{% 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" %}
{% code overflow="wrap" %}

```json
{
  "transaction": {
    "id": "0427dfac-ffd8-44f4-be96-5d442c1c1bed",
    "status": "APPROVED",
    "confirmation_result": "Transacción confirmada",
    "value": "10.25"
  }
}
```

{% endcode %}
{% endtab %}

{% tab title="Response ejemplo" %}
{% code overflow="wrap" %}

```json
{
  "transaction": {
    "id": "0427dfac-ffd8-44f4-be96-5d442c1c1bed",
    "status": "APPROVED",
    "confirmation_result": "Transacción confirmada"
  }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}
