# Intención de pago

Las intenciones de pago son las encargadas de recolectar la información de tu checkout y enviarla a la API de Amplify. Sumado a eso las intenciones de pago son las encargadas de guardar y actualizar el estado de todo el proceso&#x20;

## <mark style="color:purple;">Estados</mark>

#### CREATED

El checkout fue inicializado pero el usuario todavía no eligió el monto y medio de pago a utilizar

#### WAITING FOR PAYMENT

El usuario ya selecciono el token, red, monto y medio de pago y se esta esperando que mande los tokens al address que le fue proporcionada

#### COMPLETED

El pago se ejecuto de forma satisfactoria

#### ERROR

Hubo un error al procesar el pago

#### TIMEOUT

El usuario tardo mas de 15 minutos en fondear la billetera por lo que la transacción paso a estar vencida

### <mark style="color:purple;">API</mark>

{% hint style="info" %}
En caso de que el endpoint necesite autenticación, la misma se envía por medio de los siguientes headers:

```json
{
  "apiKey": "123xxx456",
  "clientId": "123xxx456",
}
```

{% endhint %}

#### \[GET] <https://api.getamplify.app/payment\\_intent/:clientSecret>

Obtiene la información de una intención de pago puntual.&#x20;

**Respuesta**

```json
{
    "_id": "65a8609a11ab863177a0de6f",
    "userId": "659xxx7730",
    "walletId": "65axxxe6d",
    "clientSecret": "Dx2xxxvH5",
    "status": "COMPLETED",
    "apiKeyType": "PRODUCTION",
    "receiverId": "identificador-de-cliente",
    "metadata": null,
    "created_at": "2024-01-01T23:19:54.258Z",
    "updated_at": "2024-01-01T23:20:58.934Z",
}
```

{% hint style="info" %}
Nota: El clientSecret se obtiene al momento de crear la intención de pago
{% endhint %}

#### \[POST] <https://api.getamplify.app/payment\\_intent>

Crea una nueva intención de pago.

{% hint style="info" %}
Autenticación requerida
{% endhint %}

**Body**

```json
{
    // [REQUERIDO] Identificador unico de cliente o carrito
    "receiverId": "identificador-de-cliente" 
    /* 
     ** [OPCIONAL] Informacion relevante a tu negocio que quieras 
     ** tener a lo largo de todo el proceso de pago
    */
    "metadata": { 
      "key": "Valor",
      "anotherKey": "Otro valor"
    }
}
```

#### Respuesta

```json
{
    "paymentIntentId": "123...123",
    "clientSecret": "Dx2xxxvH5",
    "walletAddress": "0x...123",
    "receiverId": "identificador-de-cliente",
}
```

#### \[POST] <https://api.getamplify.app/payment\\_intent/status>

Obtiene el estado de una intención de pago

**Body**

```json
{
    "clientSecret": "Dx2xxxvH5"
}
```

**Respuesta**

```json
{
  "status": "COMPLETED"
}
```
