Pagar Proveedores (PAYOUT)
Aprende cómo enviar pagos desde tu saldo virtual a cuentas bancarias externas.
¿Qué es PAYOUT?
PAYOUT es el tipo de orden utilizado para enviar fondos desde tu cuenta de saldo virtual a cuentas bancarias externas (proveedores, vendedores, contratistas, etc.).
Casos de Uso
Pagar a proveedores y vendedores por bienes y servicios
Enviar pagos a freelancers y contratistas
Devolver pagos a clientes
Pagar a vendedores en tu plataforma marketplace
Cómo Funciona
Flujo de Alto Nivel
Verifica tu saldo virtual
Asegúrate de tener fondos suficientes
Crea contacto de proveedor
Almacena información del proveedor y cuenta bancaria
Crea orden PAYOUT
Especifica monto y cuenta bancaria de destino
Fondos son debitados
Dinero es inmediatamente reservado de tu cuenta virtual
Transferencia bancaria iniciada
Koywe inicia transferencia al banco del proveedor
Proveedor recibe fondos
Tiempo de liquidación varía por país (instantáneo a 24 horas)
Recibes confirmación
Notificación webhook cuando la transferencia se completa
Diagrama de Flujo Detallado
Prerequisitos
Antes de hacer payouts:
Requerido:
- ✅ Fondos suficientes en cuenta virtual
- ✅ Contacto de proveedor creado
- ✅ Cuenta bancaria de proveedor vinculada
- ✅ Detalles de cuenta bancaria verificados
Crítico: Siempre verifica el saldo de tu cuenta virtual antes de crear una orden PAYOUT. Las órdenes fallarán si no tienes fondos suficientes.
Países Soportados
El lado payout de cada corredor. Para la cobertura de payin, las monedas y el rail local detrás de cada uno, ver Corredores y Monedas Soportadas.
Colombia 🇨🇴
- Método: ACH Colombia, Bre-B
- Moneda: COP
- Liquidación: ACH opera por ciclos; Bre-B se liquida en segundos
- Bancos: Todos los bancos colombianos
- Destinos Bre-B: declara
rail: "BREB"en la cuenta de destino y pon la llave enaccountNumber— ver Rieles de Pago
Brasil 🇧🇷
- Método: Transferencia PIX
- Moneda: BRL
- Liquidación: Instantánea
- Bancos: Todos los bancos brasileños con PIX
México 🇲🇽
- Método: Transferencia SPEI
- Moneda: MXN
- Liquidación: Instantánea ⚡
- Bancos: Todos los bancos mexicanos
Chile 🇨🇱
- Método: Archivo de pagos masivos
- Moneda: CLP
- Liquidación: Prácticamente instantánea. Las transacciones sobre CLP 7.000.000 se dividen en partes
- Bancos: Todos los bancos chilenos
Argentina 🇦🇷
- Método: Transferencia a un CVU nominativo
- Moneda: ARS
- Liquidación: 1-2 días hábiles
- Bancos: Todos los bancos argentinos. Solo cuentas nominativas — la identidad del beneficiario debe coincidir
Perú 🇵🇪
- Método: Transferencia bancaria
- Moneda: PEN, USD
- Liquidación: 1-2 días hábiles
- Bancos: Todos los bancos peruanos
Bolivia 🇧🇴
- Método: Transferencia bancaria
- Moneda: BOB
- Liquidación: 1-2 días hábiles
- Bancos: Todos los bancos bolivianos
Venezuela 🇻🇪
- Método: Transferencia bancaria
- Moneda: VES
- Liquidación: 1-2 días hábiles
- Bancos: Todos los bancos venezolanos
- Límite diario de pago: $3,500 USD equivalente por día
Estados Unidos 🇺🇸
- Método: Wire o ACH a una cuenta nominativa
- Moneda: USD
- Liquidación: 1-2 días hábiles
- Bancos: Todos los bancos de EE.UU. (requiere routing number)
- Nota: Requiere un onboarding KYB/KYC aparte
Ejemplo Rápido
Aquí hay un flujo PAYOUT simple:
// 1. Verificar saldo
const balance = await getBalance(token, orgId, merchantId, 'COP');
console.log('Disponible:', balance.availableBalance); // ej., 1,000,000 COP
// 2. Crear contacto de proveedor
const provider = await createContact(token, orgId, merchantId, {
firstName: 'Servicios ABC SAS',
countrySymbol: 'CO',
documentType: 'NIT',
documentNumber: '900123456-1',
businessType: 'COMPANY',
type: 'BUSINESS',
email: 'proveedor@ejemplo.com'
});
// 3. Agregar cuenta bancaria
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. Crear orden PAYOUT
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: 'Pago por Factura #INV-001'
});
console.log('Payout creado:', payout.id);
console.log('Estado:', payout.status); // "PROCESSING"Diferencias Clave vs PAYIN
| Característica | PAYIN | PAYOUT |
|---|---|---|
| Dirección | Cliente → Tu cuenta | Tu cuenta → Proveedor |
| Saldo | Acredita tu cuenta | Debita tu cuenta |
| URL de Pago | Sí (para cliente) | No |
| Cuenta Bancaria | Opcional | Requerida |
| Contacto | Opcional | Recomendado |
| Verificación Saldo | No necesaria | Crítica |
Comparación de Flujo de Pago
PAYIN (Recibir)
Cliente paga → Fondos acreditados → Webhook → Cumplir ordenPAYOUT (Enviar)
Verificar saldo → Crear orden → Fondos debitados → Transferencia bancaria → Confirmación webhookRequisitos de Saldo
Verificar Saldo Antes de PAYOUT
async function safeCreatePayout(token, orgId, merchantId, payoutData) {
// 1. Obtener saldo actual
const balances = await getMerchantBalances(token, orgId, merchantId);
const balance = balances.find(b => b.currencySymbol === payoutData.currency);
// 2. Verificar saldo disponible
if (!balance || balance.availableBalance < payoutData.amount) {
throw new Error(
`Saldo insuficiente. Disponible: ${balance?.availableBalance || 0} ${payoutData.currency}, ` +
`Requerido: ${payoutData.amount} ${payoutData.currency}`
);
}
console.log(`✓ Saldo suficiente: ${balance.availableBalance} ${payoutData.currency}`);
// 3. Crear payout
const payout = await createPayoutOrder(token, orgId, merchantId, payoutData);
return payout;
}Tiempos de Liquidación
Comprender cuándo los proveedores reciben fondos:
| País | Método | Liquidación Típica |
|---|---|---|
| Colombia | ACH Colombia / Bre-B | ACH por ciclos; Bre-B en segundos |
| Brasil | PIX | Instantánea (24/7) |
| México | SPEI | Instantánea ⚡ |
| Chile | Archivo de pagos masivos | Prácticamente instantánea |
| Argentina | Transferencia a CVU nominativo | 1-2 días hábiles |
Para todos los corredores de payout, incluidos Bolivia, Perú, Venezuela, Estados Unidos y la liquidación transfronteriza, ver Corredores y Monedas Soportadas.
Horas Hábiles: Para países con restricciones de horario hábil, las transferencias iniciadas fuera de horario o fines de semana pueden procesarse el próximo día hábil.
Próximos Pasos
Implementación paso a paso con ejemplos de código
Aprende sobre gestión de saldo
Probar payouts en entorno sandbox
Gestionar información de proveedores