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"