Saltar al contenido principal

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

1

Crear Usuario y Cuenta Bancaria

Configura perfil de usuario y cuenta bancaria de destino
2

Obtener Cotización

Solicita cotización de precio para conversión cripto→fiat
3

Crear Ramp

Ejecuta ramp con ID de cotización
4

Usuario Envía Cripto

Usuario transfiere USDC/USDT a dirección proporcionada
5

Conversión

KillB convierte cripto a fiat
6

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