Kobana

Endpoints REST, webhooks firmados, idempotencia nativa.

3 ambientes aislados (production, staging, sandbox). HMAC-SHA256 en todos los webhooks. Rate limiting por API key. SDKs oficiales Node/Python/Ruby en desarrollo.

Funcionalidad
Gestión de API keys con permisos granulares
643
endpoints REST
3
ambientes aislados
HMAC-SHA256
webhooks firmados
Idempotency-Key
nativo

Ambientes para flujo seguro de integración

Production
Ambiente real. Cobros reales. Logs auditados.
  • https://api.billing.kobana.com.br
  • Cobros reales
  • Logs auditados
Staging
Datos persistentes, gateways en sandbox. Para validación pre-producción.
  • https://api-staging.billing.kobana.com.br
  • Datos persistentes
  • Gateways en sandbox
Sandbox
Reset periódico. Gateways mockeados. Tarjetas de prueba predefinidas.
  • https://api-sandbox.billing.kobana.com.br
  • Reset periódico
  • Tarjetas de prueba

Qué está disponible para integrar

REST API Completa
643 endpoints cubriendo todos los recursos: suscripciones, facturas, pagos, clientes, planes, NFe, propuestas, eventos.
  • JSON request/response estandarizados
  • HTTP status codes semánticos
  • Paginación cursor + offset
  • Versionamiento por URL (/v1)
Webhooks Firmados
WebhookEndpoint por organización. Eventos seleccionados vía array events. Cada delivery en WebhookDelivery con retry y backoff.
  • HMAC-SHA256 vía X-Kobana-Signature header
  • Secret cifrado en reposo (AES-256-GCM)
  • 40+ tipos de evento
  • Retry exponencial hasta 5 intentos
Idempotencia Nativa
Header Idempotency-Key aceptado en todas las mutaciones. Store server-side garantiza misma respuesta para misma key.
  • UUID o ULID recomendados
  • Columna única en mutations
  • Retorna respuesta cacheada
  • TTL configurable
API Keys con Alcance
ApiKey por organización con array de permissions. RateLimitConfig por key (req/s + burst).
  • Read-only vs write
  • Restricción por recurso
  • Revocación inmediata
  • Last used tracked
Rate Limiting
Límites por API key, IP y endpoint. Headers X-RateLimit-* en todas las respuestas.
  • Default 100 req/s por org
  • Configurable por enterprise
  • 429 con Retry-After
Eventos Internos
Modelo Event registra todo cambio de estado. Útil para auditoría, replay y debug. Worker EventDispatch dispara webhooks.
  • Tipo + resource + data JSON
  • Filtros por tipo y período
  • API de retry manual
Sandbox con Tarjetas de Prueba
Ambiente aislado con gateway mock. Tarjetas estándar simulan aprobación, rechazo, 3DS, expirada.
  • Reset bajo demanda
  • Webhooks entregados en endpoint configurable (ngrok recomendado)
  • Misma API que producción
OpenAPI Spec
Especificación OpenAPI 3.x para generación de SDKs y documentación interactiva.
  • Swagger UI hospedado
  • Postman collection
  • SDKs auto-generados
Callbacks de Gateways
Endpoints públicos /api/callbacks/{provider} reciben webhooks de Pagar.me, Kobana Gateway Bancario, NFe.io. Procesados vía worker con handlers dedicados.
  • Idempotencia por payload
  • Validación de firma
  • Logs en modelo Callback

Verificar firma HMAC del webhook

javascript
const crypto = require('crypto');

app.post('/webhooks/kobana', express.raw({ type: 'application/json' }), (req, res) => {
  const signature = req.headers['x-kobana-signature'];
  const secret = process.env.KOBANA_WEBHOOK_SECRET;

  const expected = crypto
    .createHmac('sha256', secret)
    .update(req.body)
    .digest('hex');

  if (!crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
    return res.status(401).send('Invalid signature');
  }

  const event = JSON.parse(req.body);
  switch (event.type) {
    case 'invoice.paid':
      // marca pedido como pagado
      break;
    case 'subscription.canceled':
      // remueve acceso
      break;
  }
  res.json({ received: true });
});

Perguntas frequentes

Integración que aguanta en producción