Getnet DocsGetnet Docs

Efecty

A financial service provider that offers various financial services such as money transfers, bill payments, and more.

The API integration supports Pay-ins (generating a payment reference for cash deposits) and Payouts (enabling customers to withdraw cash at an Efecty location). All flows are confirmed asynchronously via webhook.

Requirements

Before integrating Efecty you need to:

  • Generate an access token through the Authentication endpoint.
  • Configure a public HTTPS callback_url to receive asynchronous status updates.
  • For Payouts: Ensure your merchant account has sufficient balance to cover the disbursement amount.

Efecty is only available in Colombia and expects COP. Contact your Account Manager to enable this payment method for your seller account.

Use Cases Specifics

When integrating any Getnet solution, market-specific requirements apply. Efecty is only available in Colombia and only for COP and USD currency. To know more about the specific requirements of Colombia, be sure to review the resources below before you go live:

Characteristics

The table below summarizes the shared behavior and requirements for Efecty payments.

CapabilityDetails
Customer interactionRedirect / Voucher: Customer receives a reference code to pay at a physical store.
ConfirmationAsynchronous: initial PENDING status, then APPROVED or DECLINED via webhook.
NotificationsWebhooks for asynchronous status updates when the cash payment is processed.

Available features

Use the matrix below to confirm the scenarios currently supported for Efecty.

Payment flowSupported countriesPurchasesRefundsPartial refundsPre-authorizationsPayouts
RedirectColombia✅❌❌❌✅

Payment flow

This section guides you through the complete process of implementing Efecty payments. The diagram below provides an overview of the Efecty payment process:

Supported Flow

This is the payment flow currently supported by Getnet:

  • Efecty Payment (Deposit / Cash Pay-in): User pays cash at an Efecty location. Flow is redirect/voucher-based.

This operation is asynchronous; the final state is only confirmed when Getnet receives the webhook.

1. Create the payment request

Call the Create – Authorize endpoint with the attributes below.

The table outlines the minimum fields required for Efecty payment.

AttributeDescriptionRequired value
payment_methodCash payment methodCASH_PAYMENT
brandBrand’s identifierEFECTY
callback_urlWhere status updates are sentYour HTTPS endpoint
amountTransaction amount in centsInteger (e.g. 5000 for €50.00)
currencyISO currency codeCOP or USD
order_idMerchant reference for reconciliationUnique string
curl --location --request POST '[https://api.pre.globalgetnet.com/dpm/payments-gwproxy/v2/payments](https://api.pre.globalgetnet.com/dpm/payments-gwproxy/v2/payments)' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer <your-token>' \
--data-raw '{
    "idempotency_key": "32f6208d-4be0-4430-a2cd-898b4b80f9c4",
    "request_id": "1d4daf69-ea17-4e5b-87c7-1f584eb52bc0",
    "order_id": "355413515499",
    "data": {
        "amount": 500001,
        "currency": "COP",
        "customer_id": "a354740d-bea2-46f7-8054-75823992a34c",
        "payment": {
            "payment_id": "1c41f4e1-5eab-41d4-a362-107b8308eb58",
            "payment_method": "CASH_PAYMENT",
            "brand": "EFECTY",
            "soft_descriptor": "EFECTY TESTE"
        },
        "additional_data": {
            "callback_url": "https://localhost:8080/notification/fake/1",
            "customer": {
                "email": "[email protected]",
                "document_number": "50506468",
                "document_type": "uyci",
                "name": "Jose da Silva",
                "phone_number": "34700000000",
                "billing_address": {
                    "street": "R a",
                    "number": "1",
                    "district": "B",
                    "city": "City Z",
                    "state": "SP",
                    "country": "CO",
                    "postal_code": "05781000",
                    "complement": "N/A"
                }
            },
            "order": {
                "items": [
                    {
                        "name": "Item2",
                        "quantity": 1,
                        "sku": "sku1",
                        "price": 500001
                    }
                ]
            }
        }
    }
}'

The response contains the redirect_url, which must be used to redirect the customer to Efecty (or display the reference code). The transaction is immediately stored as pending in Getnet.

{
  "idempotency_key": "be278973-35eb-4c45-8619-2800d62b33b6",
  "seller_id": "2ab3e585-3607-467e-b2e8-420fcd45f48e",
  "payment_id": "772f951479c6514b1d9c4e8fd4808fe6",
  "order_id": "ORDER-10187383",
  "amount": "5000",
  "currency": "COP",
  "status": "PENDING",
  "payment_method": "EFECTY",
  "received_at": "2025-11-11T11:51:54.569Z",
  "redirect_url": "[https://efecty-payment-instructions.test/ref/XYZ123](https://efecty-payment-instructions.test/ref/XYZ123)",
  "transaction_id": "772f951479c6514b1d9c4e8fd4808fe6",
  "reason_code": "00",
  "reason_message": "Waiting for customer approval in Efecty."
}

2. User Experience flow

  1. The customer is redirected to the third party page to see the payment instructions.
  2. The customer completes the deposit offline using the code they receives.
  3. Once the customer completes the deposit offline, a notification with status is sent.

3. Verify payment status

When the customer completes the payment, a webhook notification is sent with the updated payment status. You can also check the payment status using the Get Transaction endpoint.

Business Rules

  • payment_method must be CASH_PAYMENT (with brand set to EFECTY).
  • Currencies supported: COP.
  • Payment is an asynchronous operation.

Payouts

The Efecty Payout solution allows merchants to enable Cash Pickups. The merchant disburses funds, and the beneficiary goes to any Efecty location in Colombia to withdraw the cash in person.

Characteristics

The table below summarizes the behavior and requirements for Efecty Payouts.

CapabilityDetails
Transaction TypeCash Disbursement (Merchant sends funds -> User picks up Cash).
ConfirmationAsynchronous — A webhook notification informs the merchant when the cash has been collected by the user.
Data RequirementsDocument Number (ID): Critical. The user must present their Government ID at the store to collect the money.

Payout flow

The diagram below illustrates the business flow for an Efecty Payout:

1. Create the payout request

To initiate the transfer, call the Create Payout endpoint. You must specify the payment_method as CASH_PAYOUT and provide the customer’s identity details.

Ensure the customer.document_number matches the beneficiary’s physical ID exactly, or they will be denied the withdrawal at the branch.

Sample Request:

curl --location --request POST '[https://api.pre.globalgetnet.com/dpm/payments-gwproxy/v2/payouts](https://api.pre.globalgetnet.com/dpm/payments-gwproxy/v2/payouts)' \
--header 'Content-Type: application/json' \
--header 'x-seller-id: your-seller-id' \
--header 'country: CO' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
    "idempotency_key": "payout-efecty-001",
    "request_id": "req-efecty-001",
    "order_id": "payout-ref-9988",
    "data": {
        "amount": 100000,
        "currency": "COP",
        "customer_id": "cust-002",
        "payment": {
            "payment_method": "CASH_PAYOUT",
            "brand": "EFECTY",
            "soft_descriptor": "PAYOUT MERCHANT"
        },
        "additional_data": {
            "callback_url": "[https://your-domain.com/webhook/payouts](https://your-domain.com/webhook/payouts)",
            "customer": {
                "email": "[email protected]",
                "document_number": "12345678",
                "document_type": "CC",
                "first_name": "Juan",
                "last_name": "Perez"
            }
        }
    }
}'

Sample Response:

{
  "idempotency_key": "payout-efecty-001",
  "seller_id": "your-seller-id",
  "payment_id": "payout-efecty-trx-5566",
  "order_id": "payout-ref-9988",
  "amount": "100000",
  "currency": "COP",
  "status": "PENDING",
  "payment_method": "CASH_PAYOUT",
  "received_at": "2025-11-20T14:30:00.000Z",
  "reason_code": "00",
  "reason_message": "Payout registered. Waiting for beneficiary pickup."
}

2. Verify payout status

The request is processed asynchronously. Do not poll the API; instead, listen for the Webhook notification sent to your callback_url.

  • APPROVED: The customer has successfully collected the cash at the branch.
  • DECLINED: The payout expired (was not picked up in time) or was cancelled.

Read more

  • Review Authentication for token management and security best practices.