Kobana

Integre com sua linguagem preferida

Bibliotecas oficiais mantidas pela Kobana para acelerar sua integração. Código limpo, bem documentado e pronto para produção.

RubyPHPPythonNode.js
Ilustração de desenvolvedor com logos de Ruby, PHP, Python e Node.js

Funcionalidades Comuns

Autenticação Simples

Configure uma vez, use em todas as requisições.

Tratamento de Erros

Exceções tipadas para cada tipo de erro da API.

Retentativas Automáticas

Retry automático com exponential backoff para erros de rede.

Paginação Facilitada

Iteradores e helpers para navegar por resultados paginados.

Tipagem Completa

TypeScript definitions, type hints (Python), PHPDoc.

Logging Integrado

Debug mode para inspecionar requisições e respostas.

SDKs Oficiais

💎

Ruby

Oficial
gem install kobana
# Gemfile: gem 'kobana'

Configuração

require 'kobana'

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

Exemplo de uso

# Criar boleto
boleto = Kobana::Charge::BankBillet.create(
  amount: 150.50,
  expire_at: Date.today + 30,
  customer_person_name: 'Joao da Silva',
  customer_cnpj_cpf: '12345678901',
  description: 'Mensalidade Janeiro/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}" }

# Criar cobrança PIX
pix = Kobana::Charge::Pix.create(
  amount: 50.00,
  expire_at: Date.today + 1,
  message: 'Pagamento de serviços',
  pix_account_id: 456
)

puts pix.qrcode[:emv]
🐘

PHP

Oficial
composer require kobana/kobana-php-client

Configuração

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

use Kobana\Client;

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

Exemplo de uso

// Criar boleto
$boleto = $kobana->charge->bankBillets->create([
    'amount' => 150.50,
    'expire_at' => date('Y-m-d', strtotime('+30 days')),
    'customer_person_name' => 'Joao da Silva',
    'customer_cnpj_cpf' => '12345678901',
    'description' => 'Mensalidade Janeiro/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";
}

// Criar cobrança PIX
$pix = $kobana->charge->pix->create([
    'amount' => 50.00,
    'expire_at' => date('Y-m-d', strtotime('+1 day')),
    'message' => 'Pagamento de serviços',
    'pix_account_id' => 456
]);

echo $pix->qrcode->emv;
🐍

Python

Oficial
pip install kobana

Configuração

from kobana import Kobana
import os

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

Exemplo de uso

from datetime import date, timedelta

# Criar boleto
boleto = client.charge.bank_billets.create(
    amount=150.50,
    expire_at=(date.today() + timedelta(days=30)).isoformat(),
    customer_person_name='Joao da Silva',
    customer_cnpj_cpf='12345678901',
    description='Mensalidade Janeiro/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}')

# Criar cobrança PIX
pix = client.charge.pix.create(
    amount=50.00,
    expire_at=(date.today() + timedelta(days=1)).isoformat(),
    message='Pagamento de serviços',
    pix_account_id=456
)

print(pix.qrcode.emv)
🟢

Node.js

Oficial
npm install kobana
# ou: yarn add kobana

Configuração

const Kobana = require('kobana');

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

Exemplo de uso

// Criar 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: 'Joao da Silva',
  customerCnpjCpf: '12345678901',
  description: 'Mensalidade Janeiro/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}`);
});

// Criar cobrança PIX
const pix = await client.charge.pix.create({
  amount: 50.00,
  expireAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
  message: 'Pagamento de serviços',
  pixAccountId: 456
});

console.log(pix.qrcode.emv);

Pronto para começar?

Crie sua conta de sandbox e teste a integração em minutos.