InterApi

Wrapper de integração com a API v2 do Banco Inter.

Funcionalidades:

  • Autenticação
  • Pagamento Pix: get, create, update, refund

Instalação

Adicionar inter_api no Gemfile:

gem 'inter_api'

ou

bundle add inter_api

Instalar a gem:

bin/rails generate inter_api:install

Uso

Exemplo

Criar Pagamento PIX

# Instanciar o API client
api_client = InterApi::Client.new(crt: "./certificado_api_inter.crt", key: "./chave_api_inter.key", client_id: "123456", client_secret: "abcde", chave_pix: "1011121314", conta_corrente: "9876", scopes: "cobv.write cobv.read cob.write cob.read pix.write pix.read")
# Ao instanciar o objeto, cria um access_token e/ou valida a partir da data de expiração

# Criar um pagamento 
payment = api_client.create_payment(amount: 50.00, payer_tax_id: "123.123.123-01", payer_name: "João da Silva", expiration: 3600, solicitacao_pagador: "Compra de produto", info_adicionais: [ nome: "Produto", valor: "Produto 1"])
# retorna um objeto <InterApi::Payment>
puts payment.txid # "123123"
puts payment.status # "ATIVA"

# Obter um pagamento a partir do id
payment = api_client.get_payment(payment.txid)
# retorna um objeto <InterApi::Payment>
puts payment.txid # "123123"
puts payment.status # "ATIVA"

# Atualizar um pagamento
body = { status: "REMOVIDA_PELO_USUARIO_RECEBEDOR" }
api_client.update(payment.txid, body)
# retorna o objeto <InterApi::Payment> atualizado
puts payment.status # "REMOVIDA_PELO_USUARIO_RECEBEDOR"

Métodos do Pagamento

payment.valid? # true ou false

payment.paid? # true ou false

payment.qr_code # retorna o source do SVG

payment.reload! # retorna payment atualizado

payment.invalidate! # invalida e retorna o payment atualizado

# Reebolso de pagamento
reembolso = payment.refund(amount: 50.00, refund_nature: "ORIGINAL", description: "Reembolso")
# retorna o JSON da resposta
reembolso["status"] # "EM_PROCESSAMENTO"