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

# Confirmation

## A través de este método se consulta el estado de confirmación de la transacción dado un identificador de transacción.

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

Constituye la confirmación de la transacción y por lo tanto del desembolso o aprobación del valor de la transacción. El medio de pago digital debe estar preparado para recibir más de una vez la solicitud asociada a la misma transacción, retornando el estado actualizado de la confirmación. El endpoint debe ser expuesto por el medio de pago digital y será invocada 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 consultada.                     |
| id<mark style="color:red;">\*</mark>          | String | Parte del object transaction. Identificador de la transacción |

{% 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, PENDING, CREATED.\
REJECTED: Significa que no se completó el pago y por lo tanto el fin del flujo. \
APPROVED: Significa que se confirma el pago por el valor de la transacción. \
PENDING: Significa que la confirmación del pago, por el valor de la transacción, aún no se ha completado por lo que se espera una confirmación asíncrona, de parte de el medio de pago digital, antes de la fecha de expiración de la transacción.\
CREATED: Significa que el el usuario aún sigue en proceso de pago por lo que no se ha determinado si se rechazó, aprobó o se realizará confirmación asíncrona. Al recibir este estado se realizarán 10 intentos aproximadamente cada 2 minutos. Si luego de los reintentos se sigue obteniendo el estado CREATED, se asumirá que se realizará una confirmación asíncrona y en este punto el comportamiento será igual al de recibir estado PENDING.

**confirmation\_result** (<mark style="color:blue;">string</mark>): 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> (<mark style="color:blue;">string</mark>): 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).
{% 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"
  }
}
```

{% endcode %}
{% endtab %}

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

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

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