Bank transfers and cash vouchers
To generate deposits for an Alternative Payment Method (e.g., bank transfer, cash voucher), your first step is to make a request to the OneShot endpoint with all mandatory information.
For technical details of the OneShot integration please visit the API Reference
Payment methods
For available payment methods and its respective codes please check out our Coverage section.
This is a deposit request for a Spei bank transfer in 🇲🇽 Mexico.
curl -L \
--request POST \
--url 'https://api-stg.directa24.com/v3/deposits' \
--header 'Content-Type: application/json' \
--header 'X-Date: 2025-07-17T13:13:15.442Z' \
--header 'X-Login: text' \
--header 'Authorization: text' \
--data '{
"invoice_id" : "1000000001",
"amount": "1000",
"country": "MX",
"currency": "MXN",
"payer": {
"id": "11",
"document": "CURP4321TEST",
"first_name": "Ricardo",
"last_name": "Carlos",
"email": "[email protected]"
},
"payment_method": "SE",
"client_ip": "123.123.123.123",
"back_url": "https://www.merchant.com/deposit_cancelled",
"success_url": "https://www.merchant.com/deposit_completed",
"error_url": "https://www.merchant.com/deposit_error",
"notification_url": "https://www.merchant.com/d24/notify",
"logo": "https://www.merchant.com/merchant-logo.png",
}'
Once the deposit is successfully generated, the subsequent checkout process will depend on the payment method chosen and the data you provide.
There are two primary flows:
Embedded checkout (recommended)
Redirect checkout
Embedded checkout (recommended)
For a superior and more integrated user experience, you can build the checkout instructions directly into your site. This is ideal for payment methods that don't require leaving your page, such as displaying a reference number, QR codes or bar codes for an in-store cash payment.
How it works: you will need interpret the
metadata
object from the API response. This object contains the necessary details (e.g., a voucher code, bank details) for you to render the next steps directly on your page.Advantages: This offers a seamless, frictionless flow that keeps the user on your website.
Important: While this is the highly recommended option, its availability is dependent on the specific payment method. Not all methods support a fully embedded experience.

{
"checkout_type": "ONE_SHOT",
"redirect_url": "https://pay-stg.checkoutogate.com/validate/W9H0knNO7iu14F2nMe1Dtv6eMKJw2yvx",
"deposit_id": 300000025,
"user_id": "11",
"merchant_invoice_id": "postmanTest943044826",
"payment_info\"": {
"type": "BANK_TRANSFER",
"payment_method": "IX",
"payment_method_name": "Pix",
"amount": 1506,
"currency": "BRL",
"expiration_date": "2020-06-17T07:04:16Z",
"created_at": "2020-06-16T19:04:16Z",
"metadata": {
"payer_document": "84932568207",
"reference": 1161706605,
"show_terms_conditions": true,
"payer_document_type": "CPF",
"qr_code": "data:image/png;base64,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",
"digitable_line": "00020126820014br.gov.bcb.pix2560pix.treeal.com/qr/v3/at/c2a771e8-da3e-4e2a-a830-99aa2517ba555204000053039865802BR5918ORBION_GAMING_LTDA6004BODO62070503***6304C69B"
}
}
}
Redirect Checkout
This is the ideal flow if you prefer a integration without building a custom checkout UI. It's also the required process for payment methods that need user action on a third-party site (e.g., logging into a bank portal to authorize a transfer).
How it works: Use the
redirect_url
returned in the API response to forward the user to the necessary page. This should be done in a new browser tab for the best experience.User Experience: The user is taken to a secure, external page (like their bank's website or a payment provider's portal) to complete the payment steps. At all times the user can decide to return to your site. Also right after the payment process ends, the user will be redirected to your site.
Hosted checkout
Hosted flow is never recommended as a main deposit flow as it can impact directly on conversion rates.
In the event that not all mandatory data is sent in the initial API call, the system will automatically trigger an intermediate flow known as the Hosted Flow. This ensures the payment can still be completed.
What happens: The API will return the parameter
checkout_type
with valueHOSTED
and aredirect_url
.Required action: You must redirect the user to that URL. On our hosted page, we will collect the missing information from the user before presenting them with the final checkout instructions in the same tab.
Last updated
Was this helpful?