DaviPlata

DaviPlata is a digital wallet offered by Banco Davivienda in Colombia. DEUNA's integration allows users to complete payments through DaviPlata directly from the Payment Widget, with no external redirections. The payment is completed using an OTP (One-Time Password) sent to the user's registered phone number.
This guide explains how to implement DaviPlata step-by-step using DEUNA's Payment Widget.
Integration Steps
Environments:
- Sandbox: https://api.sandbox.deuna.io
- Production: https://api.deuna.io
1 - Create Order
Create an order with DEUNA. This API will return back a DEUNA’s order_token
which will be required to follow the next steps.
- Documentation: https://docs.deuna.com/reference/order_token
2- Retrieve Order
It is possible to get the order information using a GET Request
- Documentation: https://docs.deuna.com/reference/get-order-by-token
3- Update Order
Is the same endpoint to create an order, but if any field is changed, the order will be updated with the new value/information.
- Documentation: https://docs.deuna.com/reference/update-order-by-token
4- Expiring the Order (optional)
Is it possible to set an expiration time for the order by sending the expires_at
field with the desired expiration time. The value should be in UTC timezone.
Example:
{
"order": {
...
"expires_at": "2025-02-03T14:35:00+00:00",
...
}
}
It is also posible to expire an order manually by using the endpoint below:
Documentation: https://docs.deuna.com/reference/expire-order
5- Render the Payment Widget
After receiving the order token, you can render the DEUNA widget.
Documentations:
- Payment Widget First Steps: https://docs.deuna.com/docs/integracion-payment-widget
- Web: https://docs.deuna.com/docs/primeros-pasos-web
- iOS: https://docs.deuna.com/docs/primeros-pasos-instalacion-ios-sdk
- Android: https://docs.deuna.com/docs/primeros-pasos-instalacion-android-sdk
You can configure the Payment Widget to render only Daviplata by passing the paymentMethods
parameter during initialization:.
await DeunaSDK.initPaymentWidget({
orderToken: "<DEUNA order token>",
callbacks: ...,
paymentMethods: [
{
paymentMethod: "voucher",
processors: ["daviplata"],
},
],
});
6- Daviplata Test Data
- Document Number:
1134568019
- Document Type:
CC
- Amount: Less than
COP 10,000
— This will trigger a pending payment status. - If you need to approve the payment manually, while on the OTP screen, please reach out to your DEUNA Technical Project Manager to generate the approval and share the OTP with you.
To test a rejected payment, you can either use a document number such as 9999999999
or send an amount greater than COP 10,000
.
DaviPlata does not support refunds via API or automatic flows.
To process a refund — or as DaviPlata calls it, a reintegro — you must follow the manual operational process described in the attached document below.
7- Daviplata payment flow
- User selects DaviPlata from the widget.
- Enters their Document number associated with their DaviPlata account.
- An OTP code is sent to the user.
- User inputs the OTP within the widget.
- DEUNA validates the code and processes the payment.
- The widget updates with success or failure.
Important Notes
- The OTP is valid for 3 minutes only.
- If the OTP is entered incorrectly or expires, the payment will be declined, and a new order must be created to retry the process.
- The entire flow — from document number input to OTP verification and payment confirmation — is handled fully within the widget.
- Your DaviPlata credentials — both sandbox and production — can be obtained directly through your Davivienda account manager.
Updated about 4 hours ago