Pagar Proveedores - Resumen

Comprender órdenes PAYOUT y pagos a proveedores

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

Pagos a Vendedores

Pagar a proveedores y vendedores por bienes y servicios

Pagos a Contratistas

Enviar pagos a freelancers y contratistas

Reembolsos

Devolver pagos a clientes

Liquidaciones Marketplace

Pagar a vendedores en tu plataforma marketplace


Cómo Funciona

Flujo de Alto Nivel

1

Verifica tu saldo virtual

Asegúrate de tener fondos suficientes

2

Crea contacto de proveedor

Almacena información del proveedor y cuenta bancaria

3

Crea orden PAYOUT

Especifica monto y cuenta bancaria de destino

4

Fondos son debitados

Dinero es inmediatamente reservado de tu cuenta virtual

5

Transferencia bancaria iniciada

Koywe inicia transferencia al banco del proveedor

6

Proveedor recibe fondos

Tiempo de liquidación varía por país (instantáneo a 24 horas)

7

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

Colombia 🇨🇴

  • Método: Transferencia bancaria directa
  • Moneda: COP
  • Liquidación: 1-2 horas (horas hábiles)
  • Bancos: Todos los bancos colombianos

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: 2-24 horas
  • Bancos: Todos los bancos mexicanos

Chile 🇨🇱

  • Método: Transferencia bancaria
  • Moneda: CLP
  • Liquidación: 1-2 días hábiles
  • Bancos: Todos los bancos chilenos

Argentina 🇦🇷

  • Método: Transferencia bancaria
  • Moneda: ARS
  • Liquidación: 1-2 días hábiles
  • Bancos: Todos los bancos argentinos

Ejemplo Rápido

Aquí hay un flujo PAYOUT simple:

Node.js
1// 1. Verificar saldo
2const balance = await getBalance(token, orgId, merchantId, 'COP');
3console.log('Disponible:', balance.availableBalance); // ej., 1,000,000 COP
4
5// 2. Crear contacto de proveedor
6const provider = await createContact(token, orgId, merchantId, {
7 fullName: 'Servicios ABC SAS',
8 email: 'proveedor@ejemplo.com',
9 country: 'CO',
10 documentType: 'NIT',
11 documentNumber: '900123456-1',
12 businessType: 'COMPANY'
13});
14
15// 3. Agregar cuenta bancaria
16const bankAccount = await addBankAccount(token, orgId, merchantId, provider.id, {
17 country: 'CO',
18 currency: 'COP',
19 bankCode: 'BANCOLOMBIA',
20 accountNumber: '1234567890',
21 accountType: 'checking',
22 holderName: 'Servicios ABC SAS'
23});
24
25// 4. Crear orden PAYOUT
26const payout = await createPayoutOrder(token, orgId, merchantId, {
27 type: 'PAYOUT',
28 originCurrencySymbol: 'COP',
29 destinationCurrencySymbol: 'COP',
30 amountIn: 500000, // 500,000 COP
31 contactId: provider.id,
32 destinationAccountId: bankAccount.id,
33 description: 'Pago por Factura #INV-001'
34});
35
36console.log('Payout creado:', payout.id);
37console.log('Estado:', payout.status); // "PROCESSING"

Diferencias Clave vs PAYIN

CaracterísticaPAYINPAYOUT
DirecciónCliente → Tu cuentaTu cuenta → Proveedor
SaldoAcredita tu cuentaDebita tu cuenta
URL de PagoSí (para cliente)No
Cuenta BancariaOpcionalRequerida
ContactoOpcionalRecomendado
Verificación SaldoNo necesariaCrítica

Comparación de Flujo de Pago

PAYIN (Recibir)

Cliente paga → Fondos acreditados → Webhook → Cumplir orden

PAYOUT (Enviar)

Verificar saldo → Crear orden → Fondos debitados → Transferencia bancaria → Confirmación webhook

Requisitos de Saldo

Verificar Saldo Antes de PAYOUT

Node.js
1async function safeCreatePayout(token, orgId, merchantId, payoutData) {
2 // 1. Obtener saldo actual
3 const balances = await getMerchantBalances(token, orgId, merchantId);
4 const balance = balances.find(b => b.currencySymbol === payoutData.currency);
5
6 // 2. Verificar saldo disponible
7 if (!balance || balance.availableBalance < payoutData.amount) {
8 throw new Error(
9 `Saldo insuficiente. Disponible: ${balance?.availableBalance || 0} ${payoutData.currency}, ` +
10 `Requerido: ${payoutData.amount} ${payoutData.currency}`
11 );
12 }
13
14 console.log(`✓ Saldo suficiente: ${balance.availableBalance} ${payoutData.currency}`);
15
16 // 3. Crear payout
17 const payout = await createPayoutOrder(token, orgId, merchantId, payoutData);
18
19 return payout;
20}

Tiempos de Liquidación

Comprender cuándo los proveedores reciben fondos:

PaísMétodoLiquidación Típica
ColombiaTransferencia Bancaria1-2 horas (horas hábiles)
BrasilPIXInstantánea (24/7)
MéxicoSPEI2-24 horas
ChileTransferencia Bancaria1-2 días hábiles
ArgentinaTransferencia Bancaria1-2 días hábiles

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


Recursos Adicionales