Saltar al contenido principal

Visión General

El ambiente Sandbox de KillB te permite probar tu integración sin procesar transacciones reales o mover fondos reales.
Todas las transacciones en sandbox usan dinero falso. No se transferirán ni cobrarán fondos reales.

Ambientes

URL Base: https://teste-94u93qnn.uc.gateway.devCaracterísticas:
  • Prueba con dinero falso
  • Simula flujos de pago
  • Verificación KYC real no requerida
  • Procesamiento instantáneo de transacciones
  • Funcionalidad completa de la API
Usar para:
  • Desarrollo y pruebas
  • Verificación de integración
  • Aplicaciones de demostración
  • Pruebas CI/CD

Comenzando con Sandbox

Paso 1: Obtener Credenciales de Sandbox

  1. Regístrate en otc.killb.com
  2. Navega a ConfiguraciónClaves de API
  3. Crea una Clave de API Sandbox
  4. Anota tu email y contraseña del sandbox

Paso 2: Configurar Variables de Entorno

.env
KILLB_ENV=sandbox
KILLB_BASE_URL=https://teste-94u93qnn.uc.gateway.dev
KILLB_EMAIL=[email protected]
KILLB_PASSWORD=tu-contraseña-sandbox
KILLB_API_KEY=tu-clave-api-sandbox

Paso 3: Autenticar

curl --request POST \
  --url https://teste-94u93qnn.uc.gateway.dev/api/v2/auth/login \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "[email protected]",
    "password": "tu-contraseña-sandbox"
  }'

Características de Prueba

Endpoints Faker

Sandbox proporciona endpoints especiales para simular eventos de pago:

Cash-In Falso

Simula que un usuario completa un pago fiat (PSE, SPEI, etc.)
POST /api/v2/faker/cash-in
Solicitud:
{
  "rampId": "ramp-id-de-creacion"
}
Lo que hace:
  • Marca el cash-in como completado
  • Activa el proceso de conversión
  • Mueve el ramp al siguiente estado
Ejemplo:
curl --request POST \
  --url https://teste-94u93qnn.uc.gateway.dev/api/v2/faker/cash-in \
  --header 'Authorization: Bearer TU_TOKEN_DE_ACCESO' \
  --header 'Content-Type: application/json' \
  --data '{"rampId": "tu-ramp-id"}'
Simula la finalización de la conversión cripto a fiat
POST /api/v2/faker/cash-out
Solicitud:
{
  "rampId": "ramp-id-de-creacion"
}
Lo que hace:
  • Completa el proceso de cash-out
  • Marca el ramp como COMPLETED
  • Activa webhooks
Ejemplo:
curl --request POST \
  --url https://teste-94u93qnn.uc.gateway.dev/api/v2/faker/cash-out \
  --header 'Authorization: Bearer TU_TOKEN_DE_ACCESO' \
  --header 'Content-Type: application/json' \
  --data '{"rampId": "tu-ramp-id"}'

Flujos de Prueba

Prueba Completa de On-Ramp

1

Crear Usuario de Prueba

Usa cualquier dato de aspecto válido - sin verificación real en sandbox
{
  "firstName": "Prueba",
  "lastName": "Usuario",
  "email": "[email protected]",
  "document": { "type": "PASSPORT", "number": "TEST123" }
}
2

Crear Cuenta de Billetera

Usa cualquier formato de dirección de billetera válido
{
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "network": "POLYGON",
  "currency": "USDC"
}
3

Crear Cotización

Obtén una cotización de prueba con tasas del sandbox
4

Crear Ramp

Ejecuta la transacción ramp
5

Simular Pago

Usa /api/v2/faker/cash-in para simular el pago del usuario
6

Verificar Finalización

Verifica que el estado del ramp cambie a COMPLETED

Prueba Completa de Off-Ramp

1

Crear Usuario de Prueba

Lo mismo que el flujo de on-ramp
2

Crear Cuenta Bancaria

Usa detalles bancarios de prueba
{
  "type": "PSE",
  "accountNumber": "1234567890",
  "bankCode": "0001"
}
3

Crear Cotización

Cotización de USDC a COP/MXN
4

Crear Ramp

Ejecuta el ramp con fuente cripto
5

Simular Finalización

Usa /api/v2/faker/cash-out para completar el proceso
6

Verificar Estado

Confirma que el estado es COMPLETED y los webhooks se activaron

Datos de Prueba

Cuentas Bancarias de Prueba (Colombia)

Nombre del BancoCódigo del BancoTipo de Cuenta
Bancolombia0001ahorros, corriente
Banco de Bogotá0002ahorros, corriente
Davivienda0003ahorros, corriente

Cuentas Bancarias de Prueba (México)

Nombre del BancoCódigo del BancoFormato CLABE
BBVA012012XXXXXXXXXXXXXXXXX
Santander014014XXXXXXXXXXXXXXXXX
Banorte072072XXXXXXXXXXXXXXXXX

Direcciones de Billetera de Prueba

Polygon (MATIC):
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb

Solana:
5FHwkrdxntdK24hgQU8qgBjn35Y1zwhz1GZwCkP4UJnC

Ethereum:
0x71C7656EC7ab88b098defB751B7401B5f6d8976F

Tron:
TXYZopYRdj2D9XRtbG4uXyrFPRw6sM3pjN
Estas son direcciones de ejemplo para pruebas. En sandbox, cualquier dirección con formato válido funcionará.

Limitaciones del Sandbox

Ten en cuenta estas diferencias entre sandbox y producción:
CaracterísticaSandboxProducción
Dinero real❌ No✅ Sí
Verificación KYC❌ Simulada✅ Verificación real
Procesamiento de pago⚡ Instantáneo⏱️ Tiempo real
Límites de transacción♾️ Sin límites✅ Basado en KYC
Webhooks✅ Sí✅ Sí
Límites de tasa de API🔓 Relajados🔒 Aplicados

Depuración en Sandbox

Habilitar Registro Detallado

const DEBUG = process.env.KILLB_ENV === 'sandbox';

async function makeRequest(endpoint, options) {
  if (DEBUG) {
    console.log('Solicitud:', endpoint, options);
  }
  
  const response = await fetch(endpoint, options);
  const data = await response.json();
  
  if (DEBUG) {
    console.log('Respuesta:', data);
  }
  
  return data;
}

Monitorear Estado del Ramp

async function waitForRampCompletion(rampId, maxAttempts = 30) {
  for (let i = 0; i < maxAttempts; i++) {
    const ramp = await fetch(`/api/v2/ramps/${rampId}`, {
      headers: { 'Authorization': `Bearer ${token}` }
    }).then(r => r.json());
    
    console.log(`Intento ${i + 1}: Estado = ${ramp.status}`);
    
    if (ramp.status === 'COMPLETED') {
      return ramp;
    }
    
    if (['FAILED', 'CANCELED', 'REJECTED'].includes(ramp.status)) {
      throw new Error(`Ramp ${ramp.status}: ${ramp.details}`);
    }
    
    await new Promise(resolve => setTimeout(resolve, 2000));
  }
  
  throw new Error('Timeout de finalización del ramp');
}

Cambiando a Producción

Cuando estés listo para ir en vivo:
1

Actualizar URL Base

Cambia de teste-94u93qnn.uc.gateway.dev a killb.app
const baseUrl = 'https://killb.app';
2

Usar Credenciales de Producción

Reemplaza las credenciales del sandbox con las claves de API de producción
3

Eliminar Llamadas Faker

Elimina todas las llamadas a los endpoints /api/v2/faker/*
4

Implementar KYC Real

Maneja la verificación KYC real y las cargas de documentos
5

Agregar Manejo de Errores

Implementa manejo de errores y registro de nivel de producción
6

Habilitar Monitoreo

Configura el monitoreo y alertas para tu integración

Lista de Verificación de Pruebas

Antes de ir a producción, prueba estos escenarios:
  • Creación de usuario y KYC
  • Creación de cuenta (banco y billetera)
  • Generación de cotización
  • Finalización de on-ramp
  • Finalización de off-ramp
  • Recepción de webhook
  • Generación de recibo
  • Manejo de cotización expirada
  • Detalles de cuenta inválidos
  • Saldo insuficiente
  • Simulación de pago fallido
  • Errores de red
  • Expiración de token
  • Firmas de webhook inválidas
  • Montos muy pequeños (< $1)
  • Montos muy grandes (> $10,000)
  • Transacciones concurrentes
  • Limitación de tasa
  • Prevención de duplicados (externalId)
  • Múltiples cuentas por usuario

¿Necesitas Ayuda?