Deuna
POST https://api-sandbox.letpay.io/deuna/simple
Overview
This process is designed to facilitate payments through Deuna, a popular digital wallet in Ecuador. It allows your customers to pay quickly and securely by scanning a QR code or using a direct payment link with their Deuna app, optimizing the user experience and conversion rates.
The process offers:
- Immediate display of a QR code, payment link, and instructions, without the need for complex preliminary data collection. To use this process, simply send the required fields as indicated in the documentation.
- A streamlined checkout experience. The customer scans the QR code or clicks the link, confirms the amount in their Deuna app, and completes the payment. This simplicity contributes to a higher conversion rate.
By integrating with Deuna, we provide a modern and widely-used payment solution for the Ecuadorian market, increasing accessibility for your customers.
Reference Checkout UI Deuna
After the payment is created via the API, your checkout page should display the QR code provided in the response. It is also recommended to display the payment amount and the instructions array to guide the user.
Input Email
Scan QR Code and Pay
Deuna Flow
Authorization
| Header | Value |
|---|---|
| X-Auth-Token | MY_ACCESS_TOKEN |
Request description
contract_id(required/string): Merchant's contract id.notification_url(required/string): URL to post callbacks to for this payment.reference_id(required/string/max 45 chars): External code created by the merchant to reference this payment (e.g., order number).ip_address(optional/string): Remote IP Address (IPv4/IPv6).extra_data(optional/object): Optional extra data that you can use with the transaction.payment(required/object): The payment data:amount(required/float): Total amount of the payment. The value must have a maximum of two decimal places.asset(required/string): Reference code for the asset for the sale's amount.country(required/string): Country code in ISO 3166-2.currency(required/string): Currency code in ISO-4217.
person(required/object): The person data:email(required/string): Person’s email provided to the merchant.
Response Description
transaction_status(string): Current status of the payment.payment_token(string): Unique payment identification for this payment.refresh_token(string): Updated access token for future calls.reference_id(string): External code created by the merchant to reference this payment.qr_code(string): Base64 encoded zipped PNG of the QR code to be scanned.app_link(string): Direct link for the user to open the Deuna app and complete the payment.amount(string): Amount of this payment.expiration_date(string): ISO 8601 timestamp indicating when the QR code will expire.instructions(array): An array of strings with steps for the user to complete the payment.totals(object): The payment totals.amount(float): Amount in the default region asset.asset(string): Asset used in this amount.original_amount(float): Amount as informed by the merchant.original_asset(string): Asset used in this originalAmount.customer_fees(float): Total calculated fee assigned to the customer.customer_amount(float): Total amount for the customer (amount + customer_fees).
customer_fees(object): List of incident customer fees and their respective values.
Example Request
- 200 - Success
Example Request
200 - Success
curl --location 'https://api-sandbox.letpay.io/deuna/simple \
--header 'X-Auth-Token: MY_ACCESS_TOKEN' \
--data-raw '{
"contract_id": "MY_CONTRACT_ID",
"notification_url": "https://my.notification.url",
"reference_id": "MY_REFERENCE_ID",
"ip_address": "0.0.0.0",
"payment": {
"amount": 100.00,
"asset": "USD",
"country": "EC",
"currency": "USD"
},
"person": {
"email": "[email protected]"
},
"extra_data": {
"my-conciliation-number": "xxxxxx"
}
}'
Example Response
Header
Content-Type: application/json
Body
{
"transaction_status": "PROCESSING",
"payment_token": "a63f9a84-5a2e-42c4-8397-2fc467d9a731",
"reference_id": "4758a6d0-708d-4267-8204-85c60f65da39",
"qr_code": "BASE64_ZIPPED_PNG",
"app_link": "https://pagar.deuna.app/H92p/merchant?id=MD1T2IZC1JU1QTH",
"amount": "100.00",
"expiration_date": "2025-09-30T19:30:50",
"totals": {
"amount": 100,
"original_amount": 100,
"original_asset": "USD",
"customer_fees": 0,
"customer_amount": 100,
"asset": "USD"
},
"customer_fees": {},
"instructions": [
"Entra a tu app y escoge Pagar.",
"Escanea el código QR desde tu celular o usa el botón 'Pagar sin QR'.",
"Verifica el monto a pagar a nombre de PagoSeguro/PagoEfectivo.",
"Confirma el Pago."
],
"refresh_token": "MY_ACCESS_TOKEN"
}