Uma gem Ruby para integração com as APIs do Banco Inter.
- ✅ Autenticação mTLS com certificados
- ✅ OAuth 2.0 client credentials flow
- ✅ Gerenciamento automático de tokens
- ✅ Suporte para ambiente sandbox e produção
- ✅ Configuração global e por instância
- ✅ Rate limiting aware
Adicione esta linha ao seu Gemfile:
gem 'bancointer-ruby'E execute:
$ bundle install
Ou instale diretamente:
$ gem install bancointer-ruby
Primeiro, você precisa dos certificados do Banco Inter:
- Certificado da aplicação (
.crt) - Chave privada (
.key) - Certificado CA (opcional, mas recomendado)
require 'bancointer'
Bancointer.configure do |config|
config.client_id = 'seu_client_id'
config.client_secret = 'seu_client_secret'
config.cert_path = '/path/to/certificates/Sandbox_InterAPI_Certificado.crt'
config.key_path = '/path/to/certificates/Sandbox_InterAPI_Chave.key'
config.ca_cert_path = '/path/to/certificates/ca.crt' # webhook opcional
config.environment = :sandbox # ou :production
config.default_scopes = ['extrato.read', 'boleto-cobranca.read']
end
# Use a configuração global
client = Bancointer.clientclient = Bancointer::Client.new(
client_id: 'seu_client_id',
client_secret: 'seu_client_secret',
cert_path: '/path/to/certificates/Sandbox_InterAPI_Certificado.crt',
key_path: '/path/to/certificates/Sandbox_InterAPI_Chave.key',
ca_cert_path: '/path/to/certificates/ca.crt',
environment: :sandbox,
scopes: ['extrato.read', 'pix.read']
)# Autenticar com escopos padrão
token = client.authenticate!
# Autenticar com escopos específicos
token = client.authenticate!(['pix.read', 'boleto-cobranca.read'])
# Verificar se está autenticado
puts client.authenticated? # => true/false
# Verificar se o token expirou
puts client.token_expired? # => true/false# A autenticação é feita automaticamente se necessário
response = client.request(:get, '/v2/extrato')
response = client.request(:post, '/v2/boletos', { dados: 'do_boleto' })
# Com headers personalizados
response = client.request(:get, '/v2/saldo', {}, { 'X-Custom-Header' => 'valor' })Alguns escopos comuns:
extrato.read- Consultar extratoboleto-cobranca.read- Consultar boletosboleto-cobranca.write- Criar boletospix.read- Consultar Pixpix.write- Criar Pix
Consulte a documentação oficial para a lista completa.
:sandbox- https://cdpj-sandbox.partners.uatinter.co (padrão):production- https://cdpj.partners.bancointer.com.br
A API do Banco Inter tem limite de 5 chamadas por minuto tanto em sandbox quanto em produção. A gem não implementa rate limiting automático, então você deve controlar isso em sua aplicação.
require 'bancointer'
# Configurar
Bancointer.configure do |config|
config.client_id = 'seu_client_id'
config.client_secret = 'seu_client_secret'
config.cert_path = './certificates/Sandbox_InterAPI_Certificado.crt'
config.key_path = './certificates/Sandbox_InterAPI_Chave.key'
config.ca_cert_path = './certificates/ca.crt'
config.environment = :sandbox
config.default_scopes = ['extrato.read']
end
# Usar
client = Bancointer.client
begin
# Autenticar
token = client.authenticate!
puts "Token obtido: #{token}"
# Fazer requisições
response = client.request(:get, '/v2/extrato')
puts "Status: #{response.status}"
puts "Body: #{response.body}"
rescue Bancointer::Client::AuthenticationError => e
puts "Erro de autenticação: #{e.message}"
rescue Bancointer::Client::ConfigurationError => e
puts "Erro de configuração: #{e.message}"
endApós clonar o repositório, execute bin/setup para instalar as dependências. Execute rake test para rodar os testes.
Para instalar a gem localmente, execute bundle exec rake install.
Os certificados de sandbox podem ser incluídos na pasta certificates/.
Bug reports e pull requests são bem-vindos no GitHub.
A gem está disponível como open source under os termos da MIT License.