Pular para o conteúdo principal

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

1

Criar Usuário e Conta Bancária

Configure perfil do usuário e conta bancária de destino
2

Obter Cotação

Solicite cotação de preço para conversão cripto→fiat
3

Criar Ramp

Execute ramp com ID da cotação
4

Usuário Envia Cripto

Usuário transfere USDC/USDT para endereço fornecido
5

Conversão

KillB converte cripto para fiat
6

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