Visión General
Un off-ramp convierte criptomoneda (USDC, USDT) en moneda fiat (COP, MXN, USD). Los usuarios envían cripto y reciben moneda local en su cuenta bancaria.
Flujo Completo de Off-Ramp
Crear Usuario y Cuenta Bancaria
Configura perfil de usuario y cuenta bancaria de destino
Obtener Cotización
Solicita cotización de precio para conversión cripto→fiat
Crear Ramp
Ejecuta ramp con ID de cotización
Usuario Envía Cripto
Usuario transfiere USDC/USDT a dirección proporcionada
Conversión
KillB convierte cripto a fiat
Fiat Entregado
Moneda local enviada al banco del usuario
Ejemplo de Implementación
const executeOffRamp = async (userId, bankAccountId, amount) => {
try {
// 1. Obtener cotización
const quote = await fetch('/api/v2/quotations', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
fromCurrency: 'USDC',
toCurrency: 'COP',
amount: amount,
amountIsToCurrency: false,
cashInMethod: 'POLYGON',
cashOutMethod: 'PSE'
})
}).then(r => r.json());
console.log(`Recibirás: ${quote.toAmount} COP`);
// 2. Crear ramp
const ramp = await fetch('/api/v2/ramps', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
quotationId: quote.id,
userId: userId,
accountId: bankAccountId,
externalId: `offramp-${Date.now()}`
})
}).then(r => r.json());
// 3. Mostrar dirección de depósito al usuario
const depositAddress = ramp.paymentInfo[0].address;
const depositNetwork = ramp.paymentInfo[0].network;
return {
rampId: ramp.id,
depositAddress: depositAddress,
depositNetwork: depositNetwork,
amountToSend: quote.fromAmount,
willReceive: quote.toAmount
};
} catch (error) {
console.error('Off-ramp falló:', error);
throw error;
}
};
Instrucciones de Reembolso
Proporciona dirección de respaldo en caso de problemas:
{
"quotationId": "quote-id",
"userId": "user-id",
"accountId": "bank-id",
"refundInstructions": {
"network": "POLYGON",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"asset": "USDC"
}
}
Si el off-ramp falla, el cripto será reembolsado a esta dirección.
Próximos Pasos