Documentation Index
Fetch the complete documentation index at: https://docs.killb.com/llms.txt
Use this file to discover all available pages before exploring further.
Visión General
Ejemplos del mundo real demostrando patrones de integración comunes con el SDK JavaScript de KillB.Ejemplo Completo de On-Ramp
Implementación completa de un flujo de on-ramp:import { KillB } from '@killb/sdk';
async function completeOnRampFlow() {
// Inicializar SDK
const killb = new KillB({
email: process.env.KILLB_EMAIL!,
password: process.env.KILLB_PASSWORD!,
environment: 'sandbox'
});
await killb.initialize();
try {
// Paso 1: Crear u obtener usuario
const user = await killb.users.create({
type: 'PERSON',
externalId: `user-${Date.now()}`,
data: {
firstName: 'María',
lastName: 'López',
email: '[email protected]',
phone: '+525512345678',
dateOfBirth: '1990-01-01',
// ... otros campos requeridos
}
});
console.log('✅ Usuario creado:', user.id);
// Paso 2: Crear cuenta de billetera
const wallet = await killb.accounts.create({
type: 'WALLET',
userId: user.id,
data: {
currency: 'USDC',
network: 'POLYGON',
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
// ... otros campos
}
});
console.log('✅ Billetera creada:', wallet.id);
// Paso 3: Obtener cotización
const quote = await killb.quotations.create({
fromCurrency: 'MXN',
toCurrency: 'USDC',
amount: 1000,
amountIsToCurrency: false,
cashInMethod: 'SPEI',
cashOutMethod: 'POLYGON'
});
console.log('✅ Cotización creada:', quote.id);
console.log(' Tasa:', quote.rate);
console.log(' Recibirás:', quote.toAmount, 'USDC');
// Paso 4: Crear ramp
const ramp = await killb.ramps.create({
quotationId: quote.id,
userId: user.id,
accountId: wallet.id,
externalId: `onramp-${Date.now()}`
});
console.log('✅ Ramp creado:', ramp.id);
console.log(' URL de Pago:', ramp.paymentInfo[0].url);
// Paso 5: En sandbox, simular pago
if (killb.environment === 'sandbox') {
await killb.faker.cashIn(ramp.id);
console.log('✅ Pago simulado');
}
// Paso 6: Esperar finalización
const completedRamp = await ramp.waitForCompletion({
pollInterval: 5000,
timeout: 300000
});
console.log('✅ Ramp completado!');
console.log(' Prueba de transferencia:', completedRamp.transferProof);
return completedRamp;
} catch (error) {
console.error('❌ Error:', error);
throw error;
}
}
// Ejecutar el ejemplo
completeOnRampFlow()
.then(() => console.log('\n🎉 ¡Todo listo!'))
.catch(console.error);
Integración Express.js
Servidor Express.js completo con SDK KillB:import express from 'express';
import { KillB, WebhookHandler } from '@killb/sdk';
const app = express();
app.use(express.json());
// Inicializar SDK KillB
const killb = new KillB({
email: process.env.KILLB_EMAIL!,
password: process.env.KILLB_PASSWORD!,
environment: process.env.NODE_ENV === 'production' ? 'production' : 'sandbox'
});
killb.initialize().then(() => {
console.log('✅ SDK KillB inicializado');
});
// Endpoint para crear on-ramp
app.post('/api/onramp/create', async (req, res) => {
try {
const { userId, walletAddress, amount } = req.body;
// Crear cotización
const quote = await killb.quotations.create({
fromCurrency: 'COP',
toCurrency: 'USDC',
amount,
amountIsToCurrency: false,
cashInMethod: 'PSE',
cashOutMethod: 'POLYGON'
});
// Crear ramp
const ramp = await killb.ramps.create({
quotationId: quote.id,
userId,
accountId: walletAddress,
externalId: `order-${req.body.orderId}`
});
res.json({
success: true,
rampId: ramp.id,
paymentUrl: ramp.paymentInfo[0].url,
expectedAmount: quote.toAmount
});
} catch (error) {
console.error('Error en creación de on-ramp:', error);
res.status(500).json({
success: false,
error: error.message
});
}
});
app.listen(3000);
Próximos Pasos
SDK JavaScript
Documentación completa del SDK
Apps Demo
Más ejemplos completos
Referencia API
Documentación de REST API
Mejores Prácticas
Directrices de producción