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
information icon

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
Required fields
FieldTypeDescriptionExample
order_idstringUnique order reference defined by the merchant.ORDER_DAVIPLATA_001
payment.currencystringCurrency code. Must be COP for Daviplata.COP
payment.amountintegerPurchase amount in integer format.50000
customer.customer_idStringWe recommend the customer's document number. Use only letters and numbers, without special characters, separators or spaces.12345678912
customer.namestringCustomer's full name.Cliente Ejemplo
customer.emailstringCustomer's email address.cliente@example.com
customer.document_typestringCustomer's document type (for example, CC).CC
customer.document_numberstringCustomer's document number.123456789
Optional fields
FieldTypeDescriptionExample
configurations.3dsbooleanControls 3D Secure authentication.true or false
configurations.preauthorizationbooleanIndicates whether the payment is a pre-authorization.true or false
configurations.card_verificationbooleanIndicates whether this is a card verification flow.true or false
configurations.success_urlstringRedirect URL in case of successful payment.https://tienda.example/exito
configurations.error_urlstringRedirect URL in case of an error during payment.https://tienda.example/error
soft_descriptorstringPayment description that appears on the customer's receipt.Tienda ES
expires_atstringPayment intent expiration.3d4h15m

Example Request

The following example creates a Daviplata payment intent for a customer in Colombia.

JSON
{ "mode": "instant", "order_id": "ORDER_CO_COMPLETE_001", "payment": { "currency": "COP", "amount": 5200 }, "product": [ { "product_type": "physical_goods", "title": "Zapatillas deportivas", "description": "Zapatillas Adidas Ultraboost", "value": 4160, "quantity": 1 }, { "product_type": "physical_goods", "title": "Cargador portátil", "description": "Cargador portátil USB-C", "value": 1040, "quantity": 1 } ], "customer": { "customer_id": "customer_co_001", "first_name": "Laura", "last_name": "Gómez", "name": "Laura Gómez", "email": "laura@example.co", "document_type": "CC", "document_number": "1032456789", "phone_number": "573001234567", "gender": "Female", "checked_email": true, "billing_address": { "street": "Carrera 7", "number": "72-41", "city": "Bogotá", "state": "Cundinamarca", "country": "CO", "postal_code": "110221", "complement": "Piso 2, Oficina 4", "district": "Bogotá", "reference": "Frente a la plaza principal" } }, "shipping": { "first_name": "Laura", "last_name": "Gómez", "name": "Laura Gómez", "phone_number": "573001234567", "shipping_amount": 1000, "address": { "street": "Carrera 7", "number": "72-41", "city": "Bogotá", "state": "Cundinamarca", "country": "CO", "postal_code": "110221", "complement": "Piso 2, Oficina 4", "district": "Bogotá", "reference": "Frente a la plaza principal" } }, "pickup_store": false, "shipping_method": "Standard delivery", "configurations": { "success_url": "https://store.example.co/checkout/success", "error_url": "https://store.example.co/checkout/error" } }

Example 200/201 Response

A successful request returns the payment intent ID, the trade name and the redirect URL for the checkout.

JSON
{ "payment_intent_id": "d4fb9559-09f3-43ac-8ba5-c0d786506ea9", "trade_name": "Tienda Colombiana", "redirect_url": "https://www.globalgetnet.com/hosted-web-checkout/eyJraWQiOi..." }

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:

  1. The buyer selects Daviplata in the checkout.
  2. The buyer authorizes the payment with the mechanism enabled by the provider, for example an OTP.
  3. The checkout shows that the payment is in process while Web Checkout gets the result.

Step 3: Confirm the Result

Confirm the result through the webhook or 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.
When you process the result, correlate order_id and payment_intent_id, and validate the following fields:
  • payment_intent_id
  • order_id
  • payment.method
  • payment.result.status
  • amount

Example Response

The following example shows the payment intent with the Daviplata payment result.

JSON
{ "payment_intent_id": "d4fb9559-09f3-43ac-8ba5-c0d786506ea9", "checkout_id": "22111111-1111-4111-8111-111111111111", "order_id": "ORDER_CO_COMPLETE_001", "mode": "instant", "seller": { "id": "d9c99f03-025c-4251-a9f5-de73ef593523" }, "payment": { "method": "daviplata", "amount": 5200, "currency": "COP", "result": { "payment_id": "0e0b7dd5-92da-4ef4-ad3b-0ba369ad0ef3", "status": "Registered" } } }

Daviplata Status Values

Your webhook must be idempotent and handle duplicate notifications. Release the order only after the payment is approved.

  1. Pending: payment initiated/registered (first webhook)
  2. After the provider's response: Authorized (approved), Denied (declined), or Error (technical failure)