1. Online Payments
  • Developer Docs Ecuador 🇪🇨
  • Online Payments
    • Release Notes
    • Card Payments
      • Request a card token
      • Make a charge or deferred charge
      • Refund a transaction
      • Void a transaction
      • Request deferred options
      • Validate OTP
      • Bin Info V2
      • Bin Info
    • One Click and Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Update recurring charge card data
      • Make an One-click payment
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Get recurring charge Info
    • Chargebacks
      • Query chargebacks
      • Request chargeback export
    • Subscription Transactions
      • Get subscription transactions
    • Transfer in
      • Request a Transfer In token
      • Init Transaction
      • Get Status
    • Cash in
      • Request a cash in token
      • Init Transaction
      • Update a cash in transaction
      • Transaction Status
      • Delete a cash in transaction
    • Smartlinks
      • Create a Smartlink
      • Update a Smartlink
      • Get a Smartlink
      • Delete a smartlink
    • Analytics
      • Get transactions list v1
      • Get transactions list v2
    • Status
      • Get gateway status
      • Get platform status
    • Commissions
      • Get Commission Configuration
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Activate or deactivate
      • Delete credential
      • Update credential
      • Regenerate a credential
      • Advanced search
    • Payment Button
      • Create a payment button
    • Settlement
      • Query settlement
  • Appian - Submerchant Register
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • threeDomainSecure
    • webhooks
    • Card-old
    • Channel
    • Amount-cash-in
    • ChargebackListResponse
    • StatusComponent
    • SettlementDateRangeRequest
    • SubscriptionTransactionsResponse
    • Card
    • currency
    • networkToken
    • ChargebackItem
    • ErrorResponse
    • SettlementTicketRequest
    • SubscriptionTransaction
    • Subscription
    • Amount
    • ErrorResponse400
    • SettlementResponse
    • extraTaxes
    • Country
    • ErrorResponse401
    • SettlementRecord
    • Language
    • Deferred
    • ErrorResponse403
    • Metadata
    • payment_method
    • ErrorResponse500
    • ContactDetails
    • documentType
    • orderDetails
    • Shipping Address
    • Billing-Address
    • payment_submethod
    • SubscriptionUpdate
    • product
    • SubscriptionAdjustmentRequest
    • threeDomainSecure
    • webhooks
    • headers
    • webhooksChargeback
    • citMit
    • network
    • binInfo
    • messageFields
    • UnexpectedErrorResponse
    • ExternalReferenceId
    • transactionType
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨
Colombia 🇨🇴Chile 🇨🇱
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨
Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

Transfer in

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 through a secure bank redirect flow — no card required.
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.

Payment Flow#

A Transfer In payment in Ecuador consists of 4 sequential steps: tokenization, initialization, bank redirect, and status confirmation.
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 on the bank side.
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:
FieldDescription
amountObject with subtotalIva, subtotalIva0, and iva
callbackUrlRedirect URL after bank confirmation
userType0 = Natural Person · 1 = Company
documentTypeCI, RUC, or PP (see below)
documentNumberMinimum 6 characters
emailCustomer's email
currencyAlways USD for Ecuador
Document types accepted in Ecuador:
ValueDocument
CICédula de Identidad 🇪🇨
RUCRegistro Único de Contribuyentes 🇪🇨
PPPassport 🇪🇨
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 a redirectUrl.
The redirectUrl is single use — redirect your customer to this URL immediately after receiving it. The customer will be taken to their bank's interface to authorize the transfer.
Response fields:
FieldDescription
redirectUrlSingle-use URL to redirect the customer to their bank
ticketNumberKushki transaction identifier
transactionReferenceUnique reference for this transaction
details.statusInitial status — always initializedTransaction at this point
Customer Completes Payment at the Bank
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:
StatusMeaning
initializedTransactionTransaction was created but not yet completed
approvedTransactionTransfer authorized — funds are on their way
declinedTransactionTransfer was rejected by the bank
Note: expiredTransaction status is only applicable in Mexico — it does not apply to Ecuador.

Amount Object#

The amount object is required in both the Token and Init Transaction steps. Use the following structure depending on whether the transaction has taxes:
With IVA taxes
Without taxes (IVA 0)
With extra taxes
{
  "amount": {
    "subtotalIva": 100.00,
    "subtotalIva0": 0,
    "iva": 12.00
  }
}
Set subtotalIva to the taxable base amount and iva to the tax value. Set subtotalIva0 to 0.

Webhook Notifications#

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.
{
  "webhooks": [
    {
      "events": ["approvedTransaction", "declinedTransaction"],
      "headers": [
        { "label": "Authorization", "value": "Bearer your-token" }
      ],
      "urls": [
        "https://merchant.example.com/webhooks/transfer-in"
      ]
    }
  ]
}
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.

Authentication#

Each step uses a different credential:
StepHeaderKey type
Request a TokenPublic-Merchant-IdPublic Key (from Kushki Console → Credentials)
Init TransactionPrivate-Merchant-IdPrivate Key (from Kushki Console → Credentials)
Get StatusPrivate-Merchant-IdPrivate Key
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.

Using the API#

🟢 Production
🧪 Sandbox (UAT)
https://api.kushkipagos.com/

Available Endpoints#

Request a Transfer In Token
Tokenizes the transaction data. Requires Public Merchant ID. Token is valid for 30 minutes and single-use.
Init Transaction
Initializes the transfer using the token. Returns a single-use redirectUrl to send the customer to their bank.
Get Status
Retrieves the final status of a transaction using the token as a path parameter.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-11 00:04:25
Previous
Get subscription transactions
Next
Request a Transfer In token
Built with