On this page
- What is PAYOUT?
- Use Cases
- How It Works
- High-Level Flow
- Check your virtual balance
- Create provider contact
- Create PAYOUT order
- Funds are debited
- Bank transfer initiated
- Provider receives funds
- You receive confirmation
- Detailed Flow Diagram
- Prerequisites
- Supported Countries
- Colombia π¨π΄
- Brazil π§π·
- Mexico π²π½
- Chile π¨π±
- Argentina π¦π·
- Peru π΅πͺ
- Bolivia π§π΄
- Venezuela π»πͺ
- United States πΊπΈ
- Quick Example
- Key Differences vs PAYIN
- Payment Flow Comparison
- PAYIN (Receiving)
- PAYOUT (Sending)
- Balance Requirements
- Checking Balance Before PAYOUT
- Settlement Times
- Next Steps
- Additional Resources
Paying Providers (PAYOUT)
Learn how to send payments from your virtual balance to external bank accounts.
What is PAYOUT?
PAYOUT is the order type used to send funds from your virtual balance account to external bank accounts (providers, vendors, contractors, etc.).
Use Cases
Pay suppliers and vendors for goods and services
Send payments to freelancers and contractors
Return payments to customers
Pay sellers on your marketplace platform
How It Works
High-Level Flow
Check your virtual balance
Ensure you have sufficient funds
Create provider contact
Store provider information and bank account
Create PAYOUT order
Specify amount and destination bank account
Funds are debited
Money is immediately reserved from your virtual account
Bank transfer initiated
Koywe initiates transfer to providerβs bank
Provider receives funds
Settlement time varies by country and destination bank (instant to the next business day)
You receive confirmation
Webhook notification when transfer completes
Detailed Flow Diagram
Prerequisites
Before making payouts:
Required:
- β Sufficient funds in virtual account
- β Provider contact created
- β Provider bank account linked
- β Bank account details verified
Critical: Always check your virtual account balance before creating a PAYOUT order. Orders will fail if you have insufficient funds.
Supported Countries
The payout side of every corridor. For payin coverage, currencies and the local rail behind each one, see Supported Corridors & Currencies.
Colombia π¨π΄
- Method: ACH Colombia, Bre-B
- Currency: COP
- Settlement: ACH runs on cycles; Bre-B settles in seconds
- Banks: All Colombian banks
- Bre-B destinations: declare
rail: "BREB"on the destination account and put the key inaccountNumberβ see Payment Rails
Brazil π§π·
- Method: PIX transfer
- Currency: BRL
- Settlement: Instant
- Banks: All Brazilian banks with PIX
Mexico π²π½
- Method: SPEI transfer
- Currency: MXN
- Settlement: Instant β‘, 24/7
- Limits: No limit
- Banks: All Mexican banks
Chile π¨π±
- Method: Bulk payment file
- Currency: CLP
- Settlement: 24/7, within 5 minutes
- Limits: No per-transaction limit. Large amounts are paid out in batches of transfers of CLP 7,000,000 each
- Banks: All Chilean banks
Argentina π¦π·
- Method: Transfer to a named CVU
- Currency: ARS
- Settlement: Instant β‘, 24/7 including weekends and holidays. No cut-off time
- Limits: Minimum ARS 1, no per-transaction maximum
- Banks: All Argentine banks. Named accounts only β the beneficiaryβs identity has to match
Peru π΅πͺ
- Method: Wire transfer
- Currency: PEN, USD
- Banks: All Peruvian banks
- Limits: Minimum PEN 1. Maximum PEN 420,000 / USD 75,000 per transfer to Interbank and other banks. No maximum to BCP (for USD, BCP to BCP)
- Settlement: The same times apply to PEN and USD, and depend on the destination bank:
| Destination bank | Settlement | Availability | Maximum per transfer |
|---|---|---|---|
| BCP | Instant β‘ | 24/7, except 00:00β04:00 | No maximum (USD: BCP to BCP) |
| Interbank | ~20 minutes | MonβSat, 06:05β21:00 | PEN 420,000 / USD 75,000 |
| Other banks | Scheduled (see below) | By time sent | PEN 420,000 / USD 75,000 |
Other banks β the credit time depends on when the payout is sent (Peru time):
| Sent | Credited |
|---|---|
| 00:00 β 11:45 | 14:30 the same day |
| 11:46 β 13:59 | 17:30 the same day |
| 14:00 β 21:59 | 09:30 the next business day |
| 22:00 β 23:59, weekends and holidays | 14:30 the next business day |
Bolivia π§π΄
- Method: Bank transfer
- Currency: BOB
- Settlement: Up to 20 minutes, 24/7, except during the ACH system cut-off window between 23:50 and 00:10. Payouts received in that window are processed as soon as the system is back
- Limits: Minimum equivalent to USD 1, no per-transaction maximum
- Compliance review: Payouts up to USD 1,000 are sent automatically. Above that, the payout goes through a compliance review before it is executed
- Banks: All Bolivian banks
Venezuela π»πͺ
- Method: Bank transfer
- Currency: VES
- Settlement: 1-2 business days
- Banks: All Venezuelan banks
- Daily payout limit: $3,500 USD equivalent per day
United States πΊπΈ
- Method: Wire or ACH to a named account
- Currency: USD
- Settlement: 1-2 business days
- Banks: All US banks (routing number required)
- Note: Requires a separate KYB/KYC onboarding
Quick Example
Hereβs a simple PAYOUT flow:
// 1. Check balance
const balance = await getBalance(token, orgId, merchantId, 'COP');
console.log('Available:', balance.availableBalance); // e.g., 1,000,000 COP
// 2. Create provider contact
const provider = await createContact(token, orgId, merchantId, {
firstName: 'Servicios ABC SAS',
countrySymbol: 'CO',
documentType: 'NIT',
documentNumber: '9001234561',
businessType: 'COMPANY',
type: 'BUSINESS',
email: 'provider@example.com'
});
// 3. Add bank account
const bankAccount = await addBankAccount(token, orgId, merchantId, provider.id, {
name: 'Bancolombia COP',
kind: 'BANK',
isDefault: true,
countrySymbol: 'CO',
currencySymbol: 'COP',
entity: 'BANCOLOMBIA',
accountNumber: '1234567890',
type: 'CHECKING'
});
// 4. Create PAYOUT order
const payout = await createPayoutOrder(token, orgId, merchantId, {
type: 'PAYOUT',
originCurrencySymbol: 'COP',
destinationCurrencySymbol: 'COP',
amountIn: 500000, // 500,000 COP
contactId: provider.id,
destinationAccountId: bankAccount.id,
description: 'Payment for Invoice #INV-001'
});
console.log('Payout created:', payout.id);
console.log('Status:', payout.status); // "PROCESSING"Key Differences vs PAYIN
| Feature | PAYIN | PAYOUT |
|---|---|---|
| Direction | Customer β Your account | Your account β Provider |
| Balance | Credits your account | Debits your account |
| Payment URL | Yes (for customer) | No |
| Bank Account | Optional | Required |
| Contact | Optional | Recommended |
| Balance Check | Not needed | Critical |
Payment Flow Comparison
PAYIN (Receiving)
Customer pays β Funds credited β Webhook β Fulfill orderPAYOUT (Sending)
Check balance β Create order β Funds debited β Bank transfer β Webhook confirmationBalance Requirements
Checking Balance Before PAYOUT
async function safeCreatePayout(token, orgId, merchantId, payoutData) {
// 1. Get current balance
const balances = await getMerchantBalances(token, orgId, merchantId);
const balance = balances.find(b => b.currencySymbol === payoutData.currency);
// 2. Check available balance
if (!balance || balance.availableBalance < payoutData.amount) {
throw new Error(
`Insufficient balance. Available: ${balance?.availableBalance || 0} ${payoutData.currency}, ` +
`Required: ${payoutData.amount} ${payoutData.currency}`
);
}
console.log(`β Sufficient balance: ${balance.availableBalance} ${payoutData.currency}`);
// 3. Create payout
const payout = await createPayoutOrder(token, orgId, merchantId, payoutData);
return payout;
}Settlement Times
Understanding when providers receive funds:
| Country | Method | Typical Settlement |
|---|---|---|
| Colombia | ACH Colombia / Bre-B | ACH by cycle; Bre-B in seconds |
| Brazil | PIX | Instant (24/7) |
| Mexico | SPEI | Instant β‘ (24/7) |
| Chile | Bulk payment file | Within 5 minutes (24/7) |
| Argentina | Named CVU transfer | Instant β‘ (24/7, including weekends and holidays) |
| Peru (PEN, USD) | Wire transfer | BCP instant; Interbank ~20 min; other banks by schedule (see Peru above) |
| Bolivia | Bank transfer | Up to 20 minutes (24/7, except 23:50β00:10) |
For every payout corridor, including Venezuela, the United States and cross-border settlement, see Supported Corridors & Currencies.
Business Hours: For countries with business-hour restrictions, transfers initiated after hours or on weekends may be processed the next business day.
Next Steps
Step-by-step implementation with code examples
Payout ScenariosCommon payout use cases and examples
Virtual AccountsLearn about balance management
Testing GuideTest payouts in sandbox environment