Saltar al contenido principal

Intención de Pago

Las intenciones de pago son responsables de:

  • Recolectar la información del checkout.
  • Guardar y actualizar el estado de todo el proceso de pago.

Funcionan como la entidad central que representa una transacción desde su creación hasta su resolución final.


Estados​

Una intención de pago puede encontrarse en alguno de los siguientes estados:

CREATED​

El checkout fue inicializado, pero el usuario todavía no eligió el monto ni el medio de pago.

WAITING FOR PAYMENT​

El usuario ya seleccionó token, red, monto y medio de pago y se encuentra esperando que envíe los fondos a la dirección proporcionada.

PROCESSING​

El pago está siendo procesado.

COMPLETED​

El pago se ejecutó correctamente.

ERROR​

Ocurrió un error al procesar el pago.

TIMEOUT​

El usuario demoró más de 15 minutos en enviar los fondos, por lo que la transacción expiró.

LOW_BALANCE​

El saldo es insuficiente para completar el pago.

REFUNDED​

El pago fue reembolsado.


API

En caso de que el endpoint requiera autenticación, esta debe enviarse mediante los siguientes headers:

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

Obtener una intención de pago​

[GET] /payment_intent/:clientSecret

Obtiene la información de una intención de pago específica.

Respuesta​

{
"_id": "65a8609a11ab863177a0de6f",
"userId": "659xxx7730",
"walletId": "65axxxe6d",
"clientSecret": "Dx2xxxvH5",
"status": "COMPLETED",
"apiKeyType": "PRODUCTION",
"receiverId": "identificador-de-cliente",
"walletAddress": "0x123...abc",
"metadata": null,
"created_at": "2024-01-01T23:19:54.258Z",
"updated_at": "2024-01-01T23:20:58.934Z",
"amount": "1",
"merchantData": {
"logo": "https://example.com/logo.png",
"name": "Tienda de Ejemplo",
"description": "Compra el mejor producto del mundo"
}
}

Nota: El clientSecret se obtiene al momento de crear la intención de pago.


Crear una intención de pago​

[POST] /payment_intent

Crea una nueva intención de pago.

Autenticación requerida

Body​

{
"receiverId": "identificador-de-cliente",
"metadata": {
"key": "Valor",
"anotherKey": "Otro valor"
},
"merchantData": {
"logo": "https://example.com/logo.png",
"name": "Tienda de Ejemplo",
"description": "Compra el mejor producto del mundo",
"redirect_url": "https://example.com/success"
},
"amount": "1"
}

Parámetros​

  • receiverId (requerido): Identificador único del cliente o carrito.
  • metadata (opcional): Información relevante para tu negocio que quieras conservar durante todo el proceso de pago.
  • amount (opcional): Monto a cobrar al usuario. Si no se especifica, el usuario podrá elegir el monto a pagar durante el checkout.
  • merchantData (opcional): Información que se muestra al usuario durante el proceso de pago.
    • logo: URL de la imagen del logo de tu negocio.
    • name: Nombre de tu negocio.
    • description: Descripción breve de tu negocio o producto.
    • redirect_url: URL a la que se redirige al usuario una vez finalizado exitosamente el proceso de pago.

Respuesta​

{
"paymentIntentId": "123...123",
"clientSecret": "Dx2xxxvH5",
"walletAddress": "0x...123",
"receiverId": "identificador-de-cliente",
"merchantData": {
"logo": "https://example.com/logo.png",
"name": "Tienda de Ejemplo",
"description": "Compra el mejor producto del mundo",
"redirect_url": "https://example.com/success"
},
"url": "https://pay.getamplify.app/payment/:clientSecret"
}
  • url: Enlace para redirigir al usuario a la página de checkout.

Ejemplo​

Podés ver un ejemplo completo acá: Ejemplo de integración con Nextjs