Efecty Payments

Accept cash payments through Efecty in Colombia. The buyer generates a payment reference in Web Checkout and pays it later, in cash, at an Efecty network location. The order is confirmed only after the payment is credited. You integrate only with the Web Checkout API, with no direct connection to Efecty.
This guide shows you how to create a payment intent for Efecty. It also covers how Web Checkout presents the reference to the buyer and how to resolve the final status asynchronously.
This document applies to the following country:
| Colombia |
|---|
How It Works
Use Efecty to reach buyers who prefer cash or don't use a card or bank account. Its key characteristics are:
- Reference-based: Web Checkout generates a reference with payment instructions and a due date. The buyer pays it in cash at an Efecty location before it expires.
- Single integration: you integrate only with Web Checkout. You never connect to Efecty directly.
- Asynchronous / deferred processing: the reference is not an approved payment. The transaction stays pending until the in-person payment is confirmed. You get the final status through a webhook or by querying
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 Efecty 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_EFECTY_001 |
payment.currency | string | Currency code. Must be COP for Efecty. | COP |
payment.amount | integer | Purchase amount in integer format, where the last 2 digits represent the cents. For countries where cents do not apply, fill in the amount with 2 zeros to the right. | 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.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 an Efecty 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.
Step 2: Present the Reference to the Buyer
You don't send any additional request in this step. The buyer selects Efecty in the checkout. Web Checkout then generates and displays the following:


- Payment instructions and the payment due date
The buyer must pay the reference in cash at an Efecty location before the due date.
Step 3: Confirm the Result
Efecty is asynchronous / deferred: generating the reference does not confirm the payment. The transaction stays pending until the buyer pays at an Efecty location and the payment is credited. Resolve the final status in one of two ways:
- Webhook: receive the notification configured for the seller.
- Query: call
GET /payment-intent/{id}to check the current status.
When you process the result, validate the following fields:
payment_intent_idorder_idpayment.methodpayment.result.statusamount
GET /payment-intent/{id}, before you deliver goods or services.Example Response — Pending/Waiting
The following response shows a payment that is still pending.
Example Response — Approved
The following response shows an authorized payment.
Efecty Status Values
For Efecty, the expected flow is:
- pending → authorized
- pending → denied/reject
- pending → error
Your webhook must be idempotent and handle deferred confirmations and repeated events. Release the order only after the payment is approved.
On this page