Visão Geral
Um off-ramp converte criptomoeda (USDC, USDT) em moeda fiat (COP, MXN, USD). Os usuários enviam cripto e recebem moeda local em sua conta bancária.
Fluxo Completo de Off-Ramp
Criar Usuário e Conta Bancária
Configure perfil do usuário e conta bancária de destino
Obter Cotação
Solicite cotação de preço para conversão cripto→fiat
Criar Ramp
Execute ramp com ID da cotação
Usuário Envia Cripto
Usuário transfere USDC/USDT para endereço fornecido
Conversão
KillB converte cripto para fiat
Fiat Entregue
Moeda local enviada para banco do usuário
Exemplo de Implementação
const executeOffRamp = async (userId, bankAccountId, amount) => {
try {
// 1. Obter cotação
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(`Você receberá: ${quote.toAmount} COP`);
// 2. Criar 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 endereço de depósito ao usuário
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 falhou:', error);
throw error;
}
};
Instruções de Reembolso
Forneça endereço de fallback em caso de problemas:
{
"quotationId": "quote-id",
"userId": "user-id",
"accountId": "bank-id",
"refundInstructions": {
"network": "POLYGON",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"asset": "USDC"
}
}
Se o off-ramp falhar, o cripto será reembolsado para este endereço.
Próximos Passos