Kobana

Integra con tu lenguaje preferido

Librerías oficiales mantenidas por Kobana para acelerar tu integración. Código limpio, bien documentado y listo para producción.

RubyPHPPythonNode.js
Ilustración de desarrollador con logos de Ruby, PHP, Python y Node.js

Funcionalidades Comunes

Autenticación Simple

Configura una vez y úsalo en todas las requests.

Manejo de Errores

Excepciones tipadas para cada tipo de error de la API.

Reintentos Automáticos

Auto retry con backoff exponencial para errores de red.

Paginación Fácil

Iteradores y helpers para navegar por los resultados paginados.

Tipado Completo

Definiciones TypeScript, type hints (Python), PHPDoc.

Logging Integrado

Modo debug para inspeccionar requests y responses.

SDKs Oficiales

💎

Ruby

Oficial
gem install kobana
# Gemfile: gem 'kobana'

Configuración

require 'kobana'

Kobana.configure do |config|
  config.access_token = ENV['KOBANA_ACCESS_TOKEN']
  config.environment = :production # o :sandbox
end

Ejemplo de uso

# Crear boleto
boleto = Kobana::Charge::BankBillet.create(
  amount: 150.50,
  expire_at: Date.today + 30,
  customer_person_name: 'Juan Pérez',
  customer_cnpj_cpf: '12345678901',
  description: 'Mensualidad Enero/2025',
  bank_billet_account_id: 123
)

puts boleto.uid
puts boleto.url

# Listar boletos
boletos = Kobana::Charge::BankBillet.all(status: 'opened', per_page: 50)
boletos.each { |b| puts "#{b.uid}: R$ #{b.amount}" }

# Crear cobro PIX
pix = Kobana::Charge::Pix.create(
  amount: 50.00,
  expire_at: Date.today + 1,
  message: 'Pago del servicio',
  pix_account_id: 456
)

puts pix.qrcode[:emv]
🐘

PHP

Oficial
composer require kobana/kobana-php-client

Configuración

<?php
require 'vendor/autoload.php';

use Kobana\Client;

$kobana = new Client([
    'access_token' => getenv('KOBANA_ACCESS_TOKEN'),
    'environment' => 'production' // o 'sandbox'
]);

Ejemplo de uso

// Crear boleto
$boleto = $kobana->charge->bankBillets->create([
    'amount' => 150.50,
    'expire_at' => date('Y-m-d', strtotime('+30 days')),
    'customer_person_name' => 'Juan Pérez',
    'customer_cnpj_cpf' => '12345678901',
    'description' => 'Mensualidad Enero/2025',
    'bank_billet_account_id' => 123
]);

echo $boleto->uid;
echo $boleto->url;

// Listar boletos
$boletos = $kobana->charge->bankBillets->list([
    'status' => 'opened',
    'per_page' => 50
]);

foreach ($boletos->items as $b) {
    echo "{$b->uid}: R$ {$b->amount}\n";
}

// Crear cobro PIX
$pix = $kobana->charge->pix->create([
    'amount' => 50.00,
    'expire_at' => date('Y-m-d', strtotime('+1 day')),
    'message' => 'Pago del servicio',
    'pix_account_id' => 456
]);

echo $pix->qrcode->emv;
🐍

Python

Oficial
pip install kobana

Configuración

from kobana import Kobana
import os

client = Kobana(
    access_token=os.environ['KOBANA_ACCESS_TOKEN'],
    environment='production'  # o 'sandbox'
)

Ejemplo de uso

from datetime import date, timedelta

# Crear boleto
boleto = client.charge.bank_billets.create(
    amount=150.50,
    expire_at=(date.today() + timedelta(days=30)).isoformat(),
    customer_person_name='Juan Pérez',
    customer_cnpj_cpf='12345678901',
    description='Mensualidad Enero/2025',
    bank_billet_account_id=123
)

print(boleto.uid)
print(boleto.url)

# Listar boletos
boletos = client.charge.bank_billets.list(status='opened', per_page=50)
for b in boletos.items:
    print(f'{b.uid}: R$ {b.amount}')

# Crear cobro PIX
pix = client.charge.pix.create(
    amount=50.00,
    expire_at=(date.today() + timedelta(days=1)).isoformat(),
    message='Pago del servicio',
    pix_account_id=456
)

print(pix.qrcode.emv)
🟢

Node.js

Oficial
npm install kobana
# o: yarn add kobana

Configuración

const Kobana = require('kobana');

const client = new Kobana({
  accessToken: process.env.KOBANA_ACCESS_TOKEN,
  environment: 'production' // o 'sandbox'
});

Ejemplo de uso

// Crear boleto
const boleto = await client.charge.bankBillets.create({
  amount: 150.50,
  expireAt: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],
  customerPersonName: 'Juan Pérez',
  customerCnpjCpf: '12345678901',
  description: 'Mensualidad Enero/2025',
  bankBilletAccountId: 123
});

console.log(boleto.uid);
console.log(boleto.url);

// Listar boletos
const boletos = await client.charge.bankBillets.list({
  status: 'opened',
  perPage: 50
});

boletos.items.forEach(b => {
  console.log(`${b.uid}: R$ ${b.amount}`);
});

// Crear cobro PIX
const pix = await client.charge.pix.create({
  amount: 50.00,
  expireAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
  message: 'Pago del servicio',
  pixAccountId: 456
});

console.log(pix.qrcode.emv);

¿Listo para empezar?

Crea tu cuenta de sandbox y prueba la integración en minutos.