Daviplata Payments

Accept payments through Daviplata, a Colombian digital wallet. The buyer pays from their Daviplata wallet, with no card. You integrate only with the Getnet Web Checkout API. Data capture and authorization happen in the enabled payment experience. Web Checkout manages the operation and reports the result to you.
This guide shows you how to create a payment intent for Daviplata. It also covers how the buyer identifies their wallet and authorizes the payment, and how to resolve the final status asynchronously.
This document applies to the following country:
| Colombia |
|---|
Availability is subject to commercial enablement.
How It Works
Use Daviplata to reach buyers who use a digital wallet, with a single integration and centralized tracking. Its key characteristics are:
- Digital wallet: the buyer pays from their Daviplata wallet without entering a card.
- Single integration: you integrate only with Web Checkout. Don't call the Daviplata public API directly: Web Checkout handles the operation with the provider.
- Provider-defined authorization: the buyer completes the validation at the provider.
- Asynchronous confirmation: confirm the result through a webhook or
GET /payment-intent/{id}.
The end-to-end flow involves the buyer, your backend, and the Getnet Web Checkout API:
Before You Start
Make sure the following are in place before you integrate:
- The seller has Daviplata enabled.
- You have generated your token as described in the Authentication document.
- You have configured the webhook for the seller.
- Your payments are in Colombian pesos (
COP).
Step 1: Create the Payment Intent
Call the Web Checkout API to create a payment intent.
| Endpoint |
|---|
POST /payment-intent |
| Field | Type | Description | Example |
|---|---|---|---|
order_id | string | Unique order reference defined by the merchant. | ORDER_DAVIPLATA_001 |
payment.currency | string | Currency code. Must be COP for Daviplata. | COP |
payment.amount | integer | Purchase amount in integer format. | 50000 |
customer.customer_id | String | We recommend the customer's document number. Use only letters and numbers, without special characters, separators or spaces. | 12345678912 |
customer.name | string | Customer's full name. | Cliente Ejemplo |
customer.email | string | Customer's email address. | cliente@example.com |
customer.document_type | string | Customer's document type (for example, CC). | CC |
customer.document_number | string | Customer's document number. | 123456789 |
| Field | Type | Description | Example |
|---|---|---|---|
configurations.3ds | boolean | Controls 3D Secure authentication. | true or false |
configurations.preauthorization | boolean | Indicates whether the payment is a pre-authorization. | true or false |
configurations.card_verification | boolean | Indicates whether this is a card verification flow. | true or false |
configurations.success_url | string | Redirect URL in case of successful payment. | https://tienda.example/exito |
configurations.error_url | string | Redirect URL in case of an error during payment. | https://tienda.example/error |
soft_descriptor | string | Payment description that appears on the customer's receipt. | Tienda ES |
expires_at | string | Payment intent expiration. | 3d4h15m |
Example Request
The following example creates a Daviplata payment intent for a customer in Colombia.
Example 200/201 Response
A successful request returns the payment intent ID, the trade name and the redirect URL for the checkout.
Step 2: Let the Buyer Identify the Wallet and Authorize the Payment
You don't send any additional request in this step. Web Checkout handles the payment with the provider:
- The buyer selects Daviplata in the checkout.
- The buyer authorizes the payment with the mechanism enabled by the provider, for example an OTP.
- The checkout shows that the payment is in process while Web Checkout gets the result.
Step 3: Confirm the Result
GET /payment-intent/{id}. Resolve the final status in one of two ways:- Webhook: receive the notification.
- Query: call
GET /payment-intent/{id}to check the current status.
order_id and payment_intent_id, and validate the following fields:payment_intent_idorder_idpayment.methodpayment.result.statusamount
Example Response
The following example shows the payment intent with the Daviplata payment result.
Daviplata Status Values
Your webhook must be idempotent and handle duplicate notifications. Release the order only after the payment is approved.
- Pending: payment initiated/registered (first webhook)
- After the provider's response: Authorized (approved), Denied (declined), or Error (technical failure)
On this page