If your users do not have a credit card or prefer to use the available balance in their bank accounts to make an online purchase, wire transfer is the ideal payment option.Transfer In allows your customers to pay directly from their bank account — no card required. In Ecuador 🇪🇨 you can offer it through two processors:
Processor
Customer experience
Traditional bank transfer
Secure bank redirect flow. The customer authorizes the transfer in their bank's web portal.
DeUna!
Wallet flow. The customer pays from the DeUna! app using a dynamic QR, a deep link, or a reference code.
Keep in mind!
Due to our risk policies, the available payment methods and the integration type may vary once you complete the affiliation. We will tell you how to proceed if this process applies to your merchant.
Processor activation
DeUna! must be enabled as a processor for your merchant from the Kushki Console. This is done by the Kushki team — there is no self-service option and no request parameter to select the processor. Once enabled, the same /transfer/v1/init endpoint starts returning the DeUna! fields.
A Transfer In payment in Ecuador consists of 4 sequential steps: tokenization, initialization, customer payment, and status confirmation. The first, second and fourth steps are identical for both processors — only the way the customer completes the payment changes.
Request a Transfer In Token
Your backend calls the token endpoint using your Public Merchant ID. You must include the transaction amount, the customer's document data, and a callbackUrl — the URL where the customer will land after completing the payment.
Token rules: Tokens expire in 30 minutes and are single-use. If the transaction fails or the token expires, you must request a new one.
Required fields for Ecuador:
Field
Description
amount
Object with subtotalIva, subtotalIva0, and iva
callbackUrl
Redirect URL after payment confirmation
userType
0 = Natural Person · 1 = Company
documentType
CI, RUC, or PAS (see below)
documentNumber
Minimum 6 characters
email
Customer's email
currency
Always USD for Ecuador
Document types accepted in Ecuador:
Value
Document
CI
Cédula de Identidad 🇪🇨
RUC
Registro Único de Contribuyentes 🇪🇨
PAS
Pasaporte 🇪🇨
Note:bankId is not required in Ecuador. You do not need to call the Bank List endpoint for this country.
Init Transaction
Using your Private Merchant ID, call the Init Transaction endpoint with the token obtained in the previous step. Kushki validates the token and returns the data you need to complete the payment.The response depends on the processor enabled for your merchant:
Traditional bank transfer
DeUna!
Field
Description
redirectUrl
Single-use URL to redirect the customer to their bank
ticketNumber
Kushki transaction identifier
transactionReference
Unique reference for this transaction
details.status
Initial status — always initializedTransaction at this point
The redirectUrl is single use — redirect your customer to this URL immediately after receiving it.
Customer Completes the Payment
Traditional bank transfer
DeUna!
The customer is redirected to their bank's portal and authorizes (or declines) the transfer. This step happens entirely on the bank side — no action is required from your backend.Once the customer finishes, the bank redirects them back to your callbackUrl.
Get Transaction Status
After the customer lands on your callbackUrl, call the Get Status endpoint using the original token as a path parameter to confirm the final transaction result.Possible statuses in Ecuador:
Status
Meaning
initializedTransaction
Transaction was created but not yet completed
approvedTransaction
Transfer authorized — funds are on their way
declinedTransaction
Transfer was rejected
Do not rely on the customer returning to your callbackUrl as proof of payment. Always confirm with Get Status or a webhook.
The qr field contains a PNG image encoded in Base64, with the data:image/png;base64, prefix already included. Your site must read the value and render it as an image in your checkout — Kushki does not host the QR image for you.
Do not add the prefix twice
Because qr already carries the data:image/png;base64, prefix, concatenating it again produces an invalid data URI and the image fails silently — you get a blank space with no console error.
The DeUna! payment artifacts expire much faster than the token. Generate them at the moment the customer is ready to pay, show a countdown, and call Init Transaction again with a new token if they expire.
To use DeUna! to its full potential — all three experiences, your own branding, and more than one processor at the same time — integrate through the API or Kushki JS.
If your merchant also processes traditional bank transfers, DeUna! requires a separate MID. This is what identifies DeUna! transactions in your settlement report.
The amount object is required in both the Token and Init Transaction steps. Use the following structure depending on whether the transaction has taxes:
You can receive real-time transaction notifications by including the webhooks object in your Init Transaction request. This is independent of any webhooks configured in the Kushki Console — both channels will fire simultaneously.
If you already have a Webhook configured in the Console, adding the webhooks object in the API request will trigger both channels. They are not mutually exclusive.
Never expose your Private-Merchant-Id in client-side or frontend code. Token requests using the Public Key can be made from the frontend; all other calls must come from your backend.