├── .gitignore
├── README.md
├── composer.json
├── docs
├── API BANKING
│ ├── Consultar extrato em pdf.md
│ ├── Consultar extrato enriquecido.md
│ ├── Consultar extrato.md
│ ├── Consultar saldo.md
│ ├── Incluir Pix.md
│ └── README.md
├── API COBRANCA (PIX)
│ ├── Cancelar boleto.md
│ ├── Incluir boleto de cobrança.md
│ ├── ObterCobranca.md
│ ├── README.md
│ ├── Recuperar boleto Pix em PDF.md
│ ├── Recuperar coleção de boletos Pix.md
│ └── Recuperar sumário de boletos pix.md
├── API COBRANCA
│ ├── Boleto em PDF
│ │ ├── README.md
│ │ ├── carne-bancario
│ │ │ ├── .DS_Store
│ │ │ ├── CarneBancario
│ │ │ │ ├── CSS.php
│ │ │ │ ├── CarneBancario.php
│ │ │ │ └── HTMLCarne.php
│ │ │ ├── README.md
│ │ │ ├── Util
│ │ │ │ └── ConversorDadosCarne.php
│ │ │ ├── exemplo
│ │ │ │ └── carne.pdf
│ │ │ └── index.php
│ │ └── visualizaBoleto.php
│ ├── Cancelar boleto.md
│ ├── Incluir boleto de cobrança.md
│ ├── README.md
│ ├── Recuperar boleto detalhado.md
│ ├── Recuperar boleto em PDF.md
│ ├── Recuperar coleção de boletos.md
│ └── Recuperar sumário de boletos.md
├── API PAGAMENTO
│ ├── Cancelar agendamento do pagamento.md
│ ├── Informação Pagamento Boleto.md
│ ├── Informação Pagamento DARF.md
│ ├── Obter dados CIP.md
│ ├── Pagar Boleto.md
│ ├── Pagar DARF.md
│ └── Recuperar Comprovante em PDF.md
├── API PIX
│ ├── COBRANCA IMEDIATA
│ │ ├── Atualizar cobrança imediata.md
│ │ ├── Consultar cobrança imediata.md
│ │ ├── Criar cobrança imediata.md
│ │ ├── Criar cobrança imediataPSB.md
│ │ └── Gerar o QRCode na tela.md
│ ├── COBRANCA VENCIMENTO
│ │ ├── Atualizar cobrança vencimento.md
│ │ ├── Consultar cobrança vencimento.md
│ │ ├── Criar cobrança vencimento.md
│ │ ├── Gerar o QRCode na tela.md
│ │ └── Listar cobrança vencimento copy.md
│ ├── Pix
│ │ ├── Consultar devolucaoo.md
│ │ ├── Consultar pix recebidos.md
│ │ ├── Consultar pix.md
│ │ └── Solicitar devolucao.md
│ └── WebHook
│ │ ├── Consultar callbacks.md
│ │ ├── Criar webhook.md
│ │ ├── Excluir webhook.md
│ │ └── Obter webhook cadastrado.md
├── README.md
├── TOKEN
│ ├── README.md
│ ├── SSL Erro 60.md
│ └── Token.md
├── WEBHOOK COBRANCA PIX
│ ├── Consultar callbacks.md
│ ├── Criar ou editar webhook.md
│ ├── Excluir webhook.md
│ ├── Obter webhook cadastrado.md
│ └── README.md
└── WEBHOOK
│ ├── Consultar callbacks.md
│ ├── Criar webhook.md
│ ├── Excluir webhook.md
│ ├── Obter webhook cadastrado.md
│ ├── README.md
│ └── Webhook.php.md
└── src
└── InterBanking.php
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.lock
3 | /API PAGAMENTO/Recuperar Comprovante em PDF.md
4 |
5 | /docs/API COBRANCA/Boleto em PDF/boleto carne/carne-bancario.zip
6 | /docs/API COBRANCA/Boleto em PDF/carne-bancario/vendor
7 | /docs/API COBRANCA/Boleto em PDF/carne-bancario/composer.json
8 | /docs/API COBRANCA/Boleto em PDF/carne-bancario/composer.lock
9 | /docs/API COBRANCA/Boleto em PDF/carne-bancario/nbproject
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # API-INTER-V2/V3 PHP
2 |
3 | ## Introdução
4 |
5 | Projeto completo utilizando comunicação e funcionalidades fornecidas pela API do Banco Inter. Essa biblioteca pode ser facilmente integrada ao seu software e/ou ERP.
6 |
7 | ## Como usar:
8 |
9 | Instalação:
10 | Para utilizar a biblioteca através do composer:
11 |
12 | ```php
13 | composer require divulgueregional/api-inter-v2
14 | ```
15 |
16 | ## Atualizar:
17 |
18 | Pela última tag:
19 |
20 | ```php
21 | composer update divulgueregional/api-inter-v2 1.0.19
22 | ```
23 |
24 | ## Documentação:
25 |
26 | Acesse a pasta docs e leia o README.md
27 |
28 | ## O QUE VOCÊ PODE UTILIZAR
29 |
30 | - Obter token oAuth
31 | - Incluir boleto de cobrança
32 | - Recuperar coleção de boletos
33 | - Recuperar sumário de boletos
34 | - Recuperar boleto detalhado
35 | - Recuperar boleto em PDF
36 | - Boleto em PDF
37 | - Cancelar boleto
38 | - Consultar extrato.
39 | - Recuperar extrato em PDF
40 | - Consultar extrato enriquecido
41 | - Consultar saldo.
42 | - Incluir Pix - pagar alguém
43 | - Criar webhook
44 | - Obter webhook cadastrado
45 | - Excluir webhook
46 | - WevHook Callback
47 | - Obter dados CIP.
48 | - Incluir pagamento com código de barras
49 | - Busca informações de pagamentos de boleto
50 | - Incluir pagamento de DARF
51 | - Busca informações de pagamentos DARF
52 | - Cancelar agendamento do pagamento
53 |
54 | ## COBRANÇA BOLETO PIX - V3
55 |
56 | - Incluir boleto de cobrança
57 | - Recuperar coleção de boletos
58 | - Recuperar sumário de boletos
59 | - Recuperar boleto detalhado
60 | - Recuperar boleto em PDF
61 | - Boleto em PDF
62 |
63 | ## WHEBHOOK COBRANÇA BOLETO PIX - V3
64 |
65 | - Consultar callbacks
66 | - Obter webhook cadastrado
67 | - Criar webhook
68 | - Excluir webhook
69 |
70 |
71 |
72 | ## PIX COBRANÇA IMEDIATA
73 |
74 | - Criar cobrança imediata - você informa txid
75 | - Criar cobrança imediata PSP - banco informa txid
76 | - Atualizar cobrança imediata
77 | - Consultar cobrança imediata
78 | - Lista de cobranças imediatas
79 | - Gerar o QRCode na tela
80 |
81 | ## PIX COBRANÇA COM VENCIMENTO
82 |
83 | - Criar cobrança com vencimento - você informa txid
84 | - Atualizar cobrança com vencimento
85 | - Consultar cobrança com vencimento
86 | - Lista de cobranças com vencimento
87 | - Gerar o QRCode na tela
88 |
89 | ## PIX
90 |
91 | - Consultar pix recebidos
92 | - Consultar pix
93 | - Solicitar devolução
94 | - Consultar devolução
95 |
96 | ## PIX WHEBHOOK
97 |
98 | - Consultar callbacks
99 | - Obter webhook cadastrado
100 | - Criar webhook
101 | - Excluir webhook
102 |
103 | ## FALTA IMPLEMENTAR
104 |
105 | - Pix - Location
106 | - Incluir pagamentos em lote
107 | - Buscar lote de pagamentos
108 |
109 | ## Contato Banco Inter:
110 |
111 | Poderá pedir o balanciamento dos boletos x transferências para
112 | +55 3003-4070 ou 0800 940 0007
113 |
114 | ## Autor:
115 |
116 | Roseno Matos (developer) rosenomatos@gmail.com
117 | Francisco Alex (Orientador)
118 |
119 | ## Licença:
120 |
121 | A API-INTER-V2 PHP é licenciado sob a Licença MIT (MIT). Você pode usar, copiar, modificar, integrar, publicar, distribuir e/ou vender cópias dos produtos finais, mas deve sempre declarar que Roseno Matos (rosenomatos@gmail.com) é o autor original destes códigos e atribuir um link para https://github.com/divulgueregional/api-inter-v2.git.
122 |
123 |
124 |
125 | ## Facilitou sua vida?
126 |
127 | Se o projeto o ajudou em uma tarefa excencial a sua aplicação de uma forma simples e se gostaria de contribuir com uma pequena doação ao autor, faça pelo PIX abaixo
"; 27 | $extratosPDF = $bankingInter->checkExtratoPDF($filters); 28 | // print_r($extratosPDF); 29 | $pdf = base64_decode($extratosPDF['pdf']); 30 | 31 | header('Content-Type: application/pdf'); 32 | echo $pdf; 33 | } catch (\Exception $e) { 34 | echo $e->getMessage(); 35 | } 36 | ``` -------------------------------------------------------------------------------- /docs/API BANKING/Consultar extrato enriquecido.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR EXTRATO ENREIQUECIDO-INTER 2 | 3 | ## Consultar Extrato Enriquecido 4 | Consultar extrato enriquecido com informações detalhadas de cada transação dado um período específico.
5 | Rate limit: 10 chamadas por minuto 6 | 7 | ```php 8 | require '../../../vendor/autoload.php'; 9 | use Divulgueregional\ApiInterV2\InterBanking; 10 | 11 | $config = [ 12 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 13 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 14 | ]; 15 | $token = '';//seu token 16 | $bankingInter = new InterBanking($config); 17 | $bankingInter->setToken($token); 18 | 19 | //CONSULTA MÁXIMA DE 90 DIAS 20 | $filters = [ 21 | 'dataInicio' => '2022-10-01',//obrigatorio 22 | 'dataFim' => '2022-10-17',//obrigatorio 23 | 'tipoOperacao' => '',//D - Débito(Saída); C - Crédito(Entrada) 24 | 'tipoTransacao' => '',// PIX, CAMBIO, ESTORNO, INVESTIMENTO, TRANSFERENCIA, PAGAMENTO, BOLETO_COBRANCA, OUTROS 25 | 'pagina' => 0,//Posição da página na lista de movimentações 26 | 'tamanhoPagina' => 50,// max: 10000. Tamanho da página na lista de movimentações por dia 27 | 'itensPorPagina' => '',// Valor máximo: 1000, Default value : 100 28 | 'paginaAtual' => '',//Página a ser retornada pela consulta. Se não for informada, assumirá que será 0. 29 | ]; 30 | 31 | try { 32 | echo ""; 33 | $extratos = $bankingInter->consultarExtratoEnriquecido($filters); 34 | print_r($extratos); 35 | } catch (\Exception $e) { 36 | echo $e->getMessage(); 37 | } 38 | ``` -------------------------------------------------------------------------------- /docs/API BANKING/Consultar extrato.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR EXTRATO-INTER 2 | 3 | ## Consultar Extrato 4 | Consultar extrato da conta. 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | 9 | use Divulgueregional\ApiInterV2\InterBanking; 10 | 11 | $config = [ 12 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 13 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 14 | ]; 15 | 16 | //CONSULTA MÁXIMA DE 90 DIAS 17 | $filters = [ 18 | 'dataInicio' => '2022-04-20',//obrigatorio 19 | 'dataFim' => '2022-04-28',//obrigatorio 20 | ]; 21 | 22 | $token = '';//seu token 23 | try { 24 | $bankingInter = new InterBanking($config); 25 | $bankingInter->setToken($token); 26 | 27 | echo ""; 28 | $extratos = $bankingInter->checkExtrato($filters); 29 | // print_r($extratos); 30 | foreach ($extratos['transacoes'] as $extrato) { 31 | // print_r($extrato); 32 | echo $extrato->dataEntrada. 33 | ' - '.$extrato->tipoTransacao. 34 | ' - '.$extrato->tipoOperacao. 35 | ' - '.$extrato->titulo. 36 | ' - '.$extrato->descricao. 37 | ' - '.$extrato->valor. 38 | ' - '.$extrato->codigoHistorico.'
'; 39 | } 40 | } catch (\Exception $e) { 41 | echo $e->getMessage(); 42 | } 43 | ``` -------------------------------------------------------------------------------- /docs/API BANKING/Consultar saldo.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR SALDO-INTER 2 | 3 | ## Consultar Saldo 4 | Para trazer o saldo da conta 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | 9 | use Divulgueregional\ApiInterV2\InterBanking; 10 | 11 | $config = [ 12 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 13 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 14 | ]; 15 | 16 | $filters = [ 17 | 'dataSaldo' => '',//YYYY-MM-DD caso não informar traz o saldo do dia 18 | ]; 19 | 20 | $token = '';//seu token 21 | try { 22 | $bankingInter = new InterBanking($config); 23 | $bankingInter->setToken($token); 24 | 25 | echo ""; 26 | $saldo = $bankingInter->checkSaldo($filters); 27 | print_r($saldo); 28 | } catch (\Exception $e) { 29 | echo $e->getMessage(); 30 | } 31 | ``` -------------------------------------------------------------------------------- /docs/API BANKING/Incluir Pix.md: -------------------------------------------------------------------------------- 1 | # INCLUIR PIX-INTER 2 | 3 | ## Incluir Pix 4 | Método para inclusão de um pagamento/transferência Pix utilizando dados bancários ou chave.
5 | Escopo requerido: pagamento-pix.write.
6 | Rate limit: 20 chamadas por minuto
7 | Você pagnado pix para outra pessoa pela chave 8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | // Exemplos de tipos: 20 | // Se email: email do recebedor (ex: fulano.da.silva@example.com) 21 | // Se CPF/CNPJ: 12345678900 / 00038166000105 22 | // Se número do telefone celular: +55DD9XXXXXXXX (formato internacional) 23 | // Se EVP: 123e4567-e12b-12d1-a456-426655440000 24 | $filters = [ 25 | 'valor' => '10.00', 26 | 'dataPagamento' => null, 27 | 'descricao' => 'Teste', 28 | 'destinatario' => [ 29 | 'chave' => '55309496068', 30 | 'tipo' => 'CHAVE', 31 | ], 32 | ]; 33 | 34 | $token = '';//seu token 35 | try { 36 | $bankingInter = new InterBanking($config); 37 | $bankingInter->setToken($token); 38 | 39 | echo ""; 40 | $incluirPix = $bankingInter->incluirPix($filters); 41 | print_r($incluirPix); 42 | } catch (\Exception $e) { 43 | echo $e->getMessage(); 44 | } 45 | ``` -------------------------------------------------------------------------------- /docs/API BANKING/README.md: -------------------------------------------------------------------------------- 1 | # API BANKING-INTER 2 | 3 | ## API Banking 4 | Estas funcionalidades incluem até o momento: 5 | 6 | - Consultar extrato 7 | - Consultar extrato em pdf 8 | - Consultar extrato enriquecido 9 | - Consultar saldo -------------------------------------------------------------------------------- /docs/API COBRANCA (PIX)/Cancelar boleto.md: -------------------------------------------------------------------------------- 1 | # CANCELAR BOLETO PIX-INTER 2 | 3 | ## Cancelar Boleto pix 4 | 5 | Cancela uma cobrança com o codigoCobranca informado. 6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.write
10 | Rate limit: 120 chamadas por minuto 11 | 12 | ```php 13 | require '../../../vendor/autoload.php'; 14 | 15 | use Divulgueregional\ApiInterV2\InterBanking; 16 | 17 | $config = [ 18 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 19 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 20 | ]; 21 | 22 | $token = '';//seu token 23 | $codigoCobranca = ''; 24 | $motivo = 'ACERTOS';//<= 50 characters; Motivo pelo qual a cobrança está sendo cancelada 25 | try { 26 | $bankingInter = new InterBanking($config); 27 | $bankingInter->setToken($token); 28 | 29 | $response = $bankingInter->cancelarBoletoPix($codigoCobranca, $motivo); 30 | print_r($response); 31 | } catch (\Exception $e) { 32 | echo $e->getMessage(); 33 | } 34 | ``` 35 | 36 | Status: 204 - Sucesso, boleto cancelado 37 | -------------------------------------------------------------------------------- /docs/API COBRANCA (PIX)/Incluir boleto de cobrança.md: -------------------------------------------------------------------------------- 1 | # INCLUIR BOLETO COBRANÇA-INTER 2 | 3 | ## Incluir Boleto de Cobrança pix 4 | 5 | Método utilizado para incluir uma cobrança com código de barras e QRCode.
6 | A inclusão é assíncrona, então você receberá um Código identificador único da cobranca, que deverá ser utilizado para atualizar a cobrança em seu sistema de forma ativa, através de consulta, ou de forma passiva, via Webhook. 7 | 8 | ## Escopo 9 | 10 | Escopo requerido: boleto-cobranca.write
11 | Rate limit: 120 chamadas por minuto 12 | 13 | ```php 14 | require '../../../vendor/autoload.php'; 15 | 16 | use Divulgueregional\ApiInterV2\InterBanking; 17 | 18 | $config = [ 19 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 20 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 21 | ]; 22 | 23 | $dadosBoleto = [ 24 | "seuNumero" => "85401",//obrigatório 25 | "valorNominal" => 50,//obrigatório 26 | "valorAbatimento" => 0, 27 | "dataEmissao" => "2022-04-28", 28 | "dataVencimento" => "2022-07-15",//obrigatório 29 | "numDiasAgenda" => 30,//obrigatório 30 | "cnpjCPFBeneficiario" => '99999999999999',//CNPJ de quem está emitindo o boleto 31 | "pagador" => [ 32 | "cpfCnpj" => "99999999999",//obrigatório 33 | "nome" => "Nome do Pagador",//obrigatório 34 | "email" => "", 35 | "telefone" => "", 36 | "cep" => "95097000",//obrigatório 37 | "numero" => "000", 38 | "complemento" => "", 39 | "bairro" => "Rio Branco", 40 | "cidade" => "Caxias do Sul",//obrigatório 41 | "uf" => "RS",//obrigatório 42 | "endereco" => "Endereço do pagador",//obrigatório 43 | "ddd" => "", 44 | "tipoPessoa" => "FISICA"//obrigatório 45 | ], 46 | // "desconto" => [ 47 | // "taxa" => 0, 48 | // "codigo" => "VALORFIXODATAINFORMADA", // VALORFIXODATAINFORMADA - Valor fixo até a data informada.; PERCENTUALDATAINFORMADA - Percentual até a data informada. 49 | // "quantidadeDias" => 0, 50 | // ], 51 | // "multa" => [ 52 | // "taxa" => 0, 53 | // "codigo" => "VALORFIXO", // TAXAMENSAL OU PERCENTUAL 54 | // ], 55 | // "mora" => [ 56 | // "taxa" => 0, 57 | // "codigo" => "TAXAMENSAL", // TAXAMENSAL OU VALORDIA 58 | // ], 59 | "mensagem" => [ 60 | "linha1" => "Teste de evio 1", 61 | "linha2" => "Teste de evio 2", 62 | "linha3" => "", 63 | "linha4" => "", 64 | "linha5" => "" 65 | ], 66 | ]; 67 | 68 | $token = '';//seu token 69 | try { 70 | $bankingInter = new InterBanking($config); 71 | $bankingInter->setToken($token); 72 | 73 | echo ""; 74 | $response = $bankingInter->incluirBoletoCobrancaPix($dadosBoleto); 75 | // echo $incluirBoletoCobranca->codigoSolicitacao; 76 | print_r($response); 77 | } catch (\Exception $e) { 78 | echo $e->getMessage(); 79 | } 80 | ``` 81 | 82 | ## ATENÇÃO 83 | 84 | Todos os parâmetros como os dados do pagador, devem ser validados por você para não der problema na geração do boleto. A cobrança é cadastrada no banco central e aparecerá no DDA dos sacados. Os dadosBoleto você deverá informar com os seus dados, revise cada parâmetro e coloque a informação corretamente. 85 | -------------------------------------------------------------------------------- /docs/API COBRANCA (PIX)/ObterCobranca.md: -------------------------------------------------------------------------------- 1 | # Obter Cobrança Pix-INTER 2 | 3 | ## Obter Cobrança Pix 4 | 5 | Retorna os dados da cobrança de acordo com identificadorCobranca informado.
6 | Necessita informar o nossoNumero. 7 | 8 | ## Escopo 9 | 10 | Escopo requerido: boleto-cobranca.read
11 | Rate limit: 120 chamadas por minuto 12 | 13 | ```php 14 | require '../../../vendor/autoload.php'; 15 | 16 | use Divulgueregional\ApiInterV2\InterBanking; 17 | 18 | $config = [ 19 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 20 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 21 | ]; 22 | 23 | $token = '';//seu token 24 | $codigoCobranca = '';//informe o nossoNumero 25 | try { 26 | $bankingInter = new InterBanking($config); 27 | $bankingInter->setToken($token); 28 | 29 | echo ""; 30 | $response = $bankingInter->ObterCobrancaPix($codigoCobranca); 31 | print_r($response); 32 | } catch (\Exception $e) { 33 | echo $e->getMessage(); 34 | } 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/API COBRANCA (PIX)/README.md: -------------------------------------------------------------------------------- 1 | # API COBRANÇA PIX-INTER 2 | 3 | ## API Cobranças Pix 4 | 5 | Suas funcionalidades são: 6 | 7 | - Incluir boleto de cobrança. 8 | - Recuperar coleção de boletos 9 | - Recuperar sumário de boletos 10 | - Recuperar boleto detalhado 11 | - Recuperar boleto em PDF 12 | - Cancelar boleto 13 | -------------------------------------------------------------------------------- /docs/API COBRANCA (PIX)/Recuperar boleto Pix em PDF.md: -------------------------------------------------------------------------------- 1 | # BOLETO PIX PDF-INTER 2 | 3 | ## Boleto Pix PDF 4 | 5 | Recupera uma cobrança com código de barras e QRCode em PDF.
6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.read
10 | Rate limit: 120 chamadas por minuto 11 | 12 | ```php 13 | require '../../../vendor/autoload.php'; 14 | 15 | use Divulgueregional\ApiInterV2\InterBanking; 16 | 17 | $config = [ 18 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 19 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 20 | ]; 21 | 22 | $token = '';//seu token 23 | $codigoCobranca = '';//informe o codigoCobranca 24 | try { 25 | $bankingInter = new InterBanking($config); 26 | $bankingInter->setToken($token); 27 | 28 | $boletoPDF = $bankingInter->boletoPDFPix($codigoCobranca); 29 | // print_r($boletoPDF); 30 | // echo $boletoPDF->pdf; 31 | $pdf = base64_decode($boletoPDF['response']->pdf); 32 | 33 | header('Content-Type: application/pdf'); 34 | echo $pdf; 35 | } catch (\Exception $e) { 36 | echo $e->getMessage(); 37 | } 38 | ``` 39 | -------------------------------------------------------------------------------- /docs/API COBRANCA (PIX)/Recuperar coleção de boletos Pix.md: -------------------------------------------------------------------------------- 1 | # COLEÇÃO DE BOLETOS PIX-INTER 2 | 3 | ## Coleção de Boletos pix 4 | 5 | Recuperar coleção de cobranças 6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.read
10 | Rate limit: 120 chamadas por minuto 11 | 12 | ```php 13 | require '../../../vendor/autoload.php'; 14 | 15 | use Divulgueregional\ApiInterV2\InterBanking; 16 | 17 | $config = [ 18 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 19 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 20 | ]; 21 | 22 | $filters = [ 23 | 'dataInicial' => '2022-04-01',//obrigatório 24 | 'dataFinal' => '2022-04-28',//obrigatório 25 | 'filtrarDataPor' => 'VENCIMENTO', //VENCIMENTO - EMISSAO - PAGAMENTO 26 | 'situacao' => 'PAGO,EMABERTO,VENCIDO', //RECEBIDO - A_RECEBER - MARCADO_RECEBIDO - ATRASADO - CANCELADO - EXPIRADO 27 | 'nome' => '', 28 | 'email' => '', 29 | 'cpfCnpj' => '', 30 | 'nossoNumero' => '', 31 | 'itensPorPagina' => 1000, //maximo 1000 32 | 'paginaAtual' => 0, 33 | 'ordenarPor' => 'PESSOA_PAGADORA', //PESSOA_PAGADORA - TIPO_COBRANCA - CODIGO_COBRANCA - IDENTIFICADOR - DATA_EMISSAO - DATA_VENCIMENTO - VALOR - STATUS 34 | 'tipoOrdenacao' => 'ASC', //ASC - Crescente (Default). DESC - Decrescente 35 | ]; 36 | 37 | $token = '';//seu token 38 | try { 39 | $bankingInter = new InterBanking($config); 40 | $bankingInter->setToken($token); 41 | 42 | $response = $bankingInter->colecaoBoletosPix($filters); 43 | print_r($response); 44 | } catch (\Exception $e) { 45 | echo $e->getMessage(); 46 | } 47 | ``` 48 | -------------------------------------------------------------------------------- /docs/API COBRANCA (PIX)/Recuperar sumário de boletos pix.md: -------------------------------------------------------------------------------- 1 | # SUMÁRIO DE BOLETOS PIX-INTER 2 | 3 | ## Sumário de Boletos pix 4 | 5 | Utilizado para recuperar o sumário de uma coleção de Cobranças por um período específico, de acordo com os parâmetros informados. 6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.read
10 | Rate limit: 120 chamadas por minuto 11 | 12 | ```php 13 | require '../../../vendor/autoload.php'; 14 | 15 | use Divulgueregional\ApiInterV2\InterBanking; 16 | 17 | $config = [ 18 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 19 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 20 | ]; 21 | 22 | $filters = [ 23 | 'dataInicial' => '2022-04-01',//obrigatório 24 | 'dataFinal' => '2022-04-28',//obrigatório 25 | 'filtrarDataPor' => 'VENCIMENTO', //VENCIMENTO - EMISSAO - PAGAMENTO 26 | 'situacao' => 'RECEBIDO', //RECEBIDO - A_RECEBER - MARCADO_RECEBIDO - ATRASADO - CANCELADO - EXPIRADO 27 | 'nome' => '', 28 | 'email' => '', 29 | 'cpfCnpj' => '', 30 | 'nossoNumero' => '', 31 | ]; 32 | 33 | $token = '';//seu token 34 | try { 35 | $bankingInter = new InterBanking($config); 36 | $bankingInter->setToken($token); 37 | 38 | $response = $bankingInter->sumarioBoletosPix($filters); 39 | print_r($response); 40 | } catch (\Exception $e) { 41 | echo $e->getMessage(); 42 | } 43 | ``` 44 | -------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/README.md: -------------------------------------------------------------------------------- 1 | # BOLETO PDF-INTER 2 | 3 | ## Boleto em PDF 4 | A API do Inter disponibiliza um PDF de boleto pronto.
5 | Porém, foi feito um layout usando o DomPDF para gerar o PDF.
6 | 7 | ## Exemplo de uso 8 | acesse o arquivo visualizaBoleto.php
9 | vai ser necessário você ter instalado o domPDF 10 | ```php 11 | composer require dompdf/dompdf 12 | ``` 13 | 14 | ## Autor: 15 | Rubens Gabrich Moraes Viana (developer) rubensgabrich@gmail.com
-------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/carne-bancario/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/divulgueregional/api-inter-v2/92ffcacda1af5b376d097567c8c7de2ff811976c/docs/API COBRANCA/Boleto em PDF/carne-bancario/.DS_Store -------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/carne-bancario/CarneBancario/CSS.php: -------------------------------------------------------------------------------- 1 | 113 | -------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/carne-bancario/CarneBancario/CarneBancario.php: -------------------------------------------------------------------------------- 1 | true, 13 | 'isRemoteEnabled' => true 14 | ]; 15 | $this->dompdf = new Dompdf($options); 16 | $this->dompdf->setPaper('A4', 'portrait'); 17 | } 18 | 19 | public function getPDF() { 20 | ob_start(); 21 | $this->montarHTML(); 22 | $conteudoPDF = ob_get_clean(); 23 | $this->dompdf->loadHtml($conteudoPDF); 24 | $this->dompdf->render(); 25 | return $this->dompdf->output(); 26 | } 27 | 28 | public function adicionarParcela($dadosBoleto) { 29 | $dadosBoleto = $this->formatarDados($dadosBoleto); 30 | $this->boletos[] = $dadosBoleto; 31 | } 32 | 33 | private function montarHTML() { 34 | $boletos = $this->boletos; 35 | require_once 'HTMLCarne.php'; 36 | // exit(); 37 | } 38 | 39 | private function formatarLinhaDigitavel($linha) { 40 | $p1 = substr($linha, 0, 4); 41 | $p2 = substr($linha, 19, 5); 42 | $p3 = $this->modulo10("$p1$p2"); 43 | $p4 = "$p1$p2$p3"; 44 | $p5 = substr($p4, 0, 5); 45 | $p6 = substr($p4, 5); 46 | $campo1 = "$p5.$p6"; 47 | 48 | $p1 = substr($linha, 24, 10); 49 | $p2 = $this->modulo10($p1); 50 | $p3 = "$p1$p2"; 51 | $p4 = substr($p3, 0, 5); 52 | $p5 = substr($p3, 5); 53 | $campo2 = "$p4.$p5"; 54 | 55 | $p1 = substr($linha, 34, 10); 56 | $p2 = $this->modulo10($p1); 57 | $p3 = "$p1$p2"; 58 | $p4 = substr($p3, 0, 5); 59 | $p5 = substr($p3, 5); 60 | $campo3 = "$p4.$p5"; 61 | 62 | $campo4 = substr($linha, 4, 1); 63 | 64 | $campo5 = substr($linha, 5, 14); 65 | 66 | return "$campo1 $campo2 $campo3 $campo4 $campo5"; 67 | } 68 | 69 | private function modulo11($num, $base = 9, $r = 0) { 70 | $soma = 0; 71 | $fator = 2; 72 | for ($i = strlen($num); $i > 0; $i--) { 73 | $numeros[$i] = substr($num, $i - 1, 1); 74 | $parcial[$i] = $numeros[$i] * $fator; 75 | $soma += $parcial[$i]; 76 | if ($fator == $base) { 77 | $fator = 1; 78 | } 79 | $fator++; 80 | } 81 | if ($r == 0) { 82 | $soma *= 10; 83 | $digito = $soma % 11; 84 | 85 | //corrigido 86 | if ($digito == 10) { 87 | $digito = "X"; 88 | } 89 | 90 | 91 | if (strlen($num) == "43") { 92 | //ent�o estamos checando a linha digit�vel 93 | if ($digito == "0" or $digito == "X" or $digito > 9) { 94 | $digito = 1; 95 | } 96 | } 97 | return $digito; 98 | } elseif ($r == 1) { 99 | $resto = $soma % 11; 100 | return $resto; 101 | } 102 | } 103 | 104 | private function modulo10($num) { 105 | $numtotal10 = 0; 106 | $fator = 2; 107 | 108 | for ($i = strlen($num); $i > 0; $i--) { 109 | $numeros[$i] = substr($num, $i - 1, 1); 110 | $parcial10[$i] = $numeros[$i] * $fator; 111 | $numtotal10 .= $parcial10[$i]; 112 | if ($fator == 2) { 113 | $fator = 1; 114 | } else { 115 | $fator = 2; 116 | } 117 | } 118 | 119 | $soma = 0; 120 | for ($i = strlen($numtotal10); $i > 0; $i--) { 121 | $numeros[$i] = substr($numtotal10, $i - 1, 1); 122 | $soma += $numeros[$i]; 123 | } 124 | $resto = $soma % 10; 125 | $digito = 10 - $resto; 126 | if ($resto == 0) { 127 | $digito = 0; 128 | } 129 | 130 | return $digito; 131 | } 132 | 133 | private function formatarDados($dadosBoleto) { 134 | 135 | if (isset($dadosBoleto->codigoBarras)) { 136 | $dadosBoleto->codigoBarrasDigitavel = $this->formatarLinhaDigitavel($dadosBoleto->codigoBarras); 137 | } 138 | 139 | return $dadosBoleto; 140 | } 141 | 142 | } -------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/carne-bancario/CarneBancario/HTMLCarne.php: -------------------------------------------------------------------------------- 1 | Carnê bancário'; 8 | $qtdBoletos = count($boletos); 9 | $boletoAtual = 0; 10 | foreach ($boletos as $dadosBoleto) { 11 | 12 | 13 | $barcode = $generator->getBarcode($dadosBoleto->codigoBarras, BarcodeGeneratorDynamicHTML::TYPE_INTERLEAVED_2_5); 14 | $dadosBoleto->codBarrasHTML = $barcode; 15 | $boletoAtual++; 16 | ?> 17 | 18 |
21 |
22 | = viaCliente($dadosBoleto) ?>
23 |
24 | |
25 |
26 |
27 | 28 | 29 | | 30 | 31 | 32 |
33 |
34 | = viaBanco($dadosBoleto) ?>
35 |
36 | |
37 |
68 | = $dadosBoleto->nomeBanco ?? '' ?> 69 | | 70 |71 | = $dadosBoleto->codigoBanco ?? '' ?> 72 | | 73 |74 | = ($dadosBoleto->codigoBarrasDigitavel ?? '') ?> 75 | | 76 |
86 |
87 |
90 | Local de pagamento
88 | Pagável em qualquer Banco até o vencimento
89 | |
91 |
92 |
93 |
96 | Vencimento
94 | = ($dadosBoleto->dataVencimento ?? '') ?>
95 | |
97 |
98 |
108 |
109 |
112 | Cedente
110 | = ($dadosBoleto->nomeEmpresa ?? '') ?>
111 | |
113 |
114 |
115 |
118 | Agência/Código do cedente
116 | = ($dadosBoleto->agencia ?? '') ?>/= ($dadosBoleto->codigoCedente ?? '') ?>
117 | |
119 |
128 |
129 |
132 | Data do documento
130 | = ($dadosBoleto->dataEmissaoTituloCobranca ?? '') ?>
131 | |
133 |
134 |
135 |
138 | Nº do documento
136 | = $dadosBoleto->numeroDocumento ?? '' ?>
137 | |
139 |
140 |
141 |
142 |
145 | Espécie DOC
143 | DM
144 | |
146 |
147 |
148 |
149 |
152 | Aceite
150 | = ($dadosBoleto->codigoAceite ?? '') ?>
151 | |
153 |
154 |
155 |
156 |
159 | Data process.
157 | = ($dadosBoleto->dataEmissao ?? '') ?>
158 | |
160 |
161 |
162 |
165 | Nosso número
163 | = ($dadosBoleto->nossoNumero ?? '') ?>
164 | |
166 |
179 |
180 |
183 | Uso do Banco
181 | |
184 |
185 |
186 |
189 | Carteira
187 | = ($dadosBoleto->carteiraCobranca ?? '') ?>
188 | |
190 |
191 |
192 |
193 |
196 | Espécie
194 | R$
195 | |
197 |
198 |
199 |
200 |
203 | Quantidade
201 | |
204 |
205 |
206 |
207 |
210 | Valor
208 |
209 | |
211 |
212 |
213 |
216 | (=) Valor do documento
214 | R$ = number_format($dadosBoleto->valorDocumento ?? '0', 2, ',', '.') ?>
215 | |
217 |
225 |
226 |
227 |
|
240 |
241 |
242 |
243 |
|
288 |
296 |
297 |
301 | Sacado
298 | = $dadosBoleto->nomePagador ?? '' ?>
299 | = ($dadosBoleto->CEPPagador ?? '') ?>, = ($dadosBoleto->bairroPagador ?? '') ?>, = ($dadosBoleto->cidadePagador ?? '') ?>-= ($dadosBoleto->UFPagador ?? '') ?>
300 | |
302 |
303 |
335 | = $dadosBoleto->nomeBanco ?? '' ?> 336 | | 337 |338 | = $dadosBoleto->codigoBanco ?? '' ?> 339 | | 340 | 341 |
349 |
350 |
|
441 |
NOME EMPRESA CNPJ: CNPJ |
290 | ENDEREÇO CEP |
291 |
298 | Condomínio:NOME 299 | CNPJ:CNPJ 300 | Endereço:ENDEREÇO |
301 | |
306 | Responsável:NOME 307 | CPF/CNPJ:CPF 308 | Endereço:ENDEREÇO |
309 |
315 |
|
322 | Pagamento para a conta ' . $nomefantasia . ' 323 | Nº DOCUMENTO: ' . $retornoBoletoDetalhado['response']->seuNumero . ' 324 | VENCIMENTO: ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataVencimento)) . ' 325 | VALOR: R$' . number_format($retornoBoletoDetalhado['response']->valorNominal, 2, ',', '.') . ' |
326 |
334 | |
336 | 077-9 | 337 |' . montarLinhaDigitavel($retornoBoletoDetalhado['response']->codigoBarras) . ' | 338 |
343 | Local de Pagamento
344 | 345 | PAGÁVEL EM QUALQUER BANCO 346 | |
347 |
348 | Vencimento
349 | 350 | ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataVencimento)) . ' 351 | |
352 | ||||
355 | Beneficiário
356 | 357 | ' . formatCnpjCpf($retornoBoletoDetalhado['response']->cnpjCpfBeneficiario) . ' - ' . $retornoBoletoDetalhado['response']->nomeBeneficiario . ' 358 | |
359 |
360 | Agência / Conta
361 | 362 | 00019/' . $retornoBoletoDetalhado['response']->contaCorrente . ' 363 | |
364 | ||||
367 | Endereço do Beneficiário
368 | 369 | ' . mb_strtoupper($montaendereco) . ' 370 | |
371 |
372 | Nosso Número / Cód. do Documento
373 | 374 | 00019/112/' . substr_replace($retornoBoletoDetalhado['response']->nossoNumero, '-', -1, 0) . ' 375 | |
376 | ||||
379 | Data do Documento
380 | 381 | ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataEmissao)) . ' 382 | |
383 |
384 | Nº do Documento
385 | 386 | ' . $retornoBoletoDetalhado['response']->seuNumero . ' 387 | |
388 |
389 | Espécia Documento
390 | 391 | DM 392 | |
393 |
394 | Aceite
395 | 396 | NAO 397 | |
398 |
399 | Data de Processamento
400 | 401 | ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataEmissao)) . ' 402 | |
403 |
404 | (=) Valor do Documento
405 | 406 | ' . number_format($retornoBoletoDetalhado['response']->valorNominal, 2, ',', '.') . ' 407 | |
408 |
411 | Uso do Banco
412 | 413 | 414 | |
415 |
416 | Carteira
417 | 418 | 112 419 | |
420 |
421 | Espécia Moeda
422 | 423 | REAL 424 | |
425 |
426 | Quantidade Moeda
427 | 428 | 429 | |
430 |
431 | Valor Moeda
432 | 433 | 434 | |
435 |
436 | (-) Desconto / Abatimento
437 | 438 | 439 | |
440 |
443 | Informações de responsabilidade do beneficiário:
444 | ' . $descBoletoDesconto . $descBoletoMulta . $descBoletoMora . '
445 | Data Limite para pagamento: ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataLimite)) . ' 446 | |
447 |
448 | (-) Outras Deduções
449 | 450 | 451 | |
452 | ||||
455 | (+) Mora / Multa
456 | 457 | 458 | |
459 | |||||
462 | (+) Outros Acréscimos
463 | 464 | 465 | |
466 |
468 | (=) Valor Cobrado
469 | 470 | 471 | |
472 |
473 |
477 | | 478 | | 479 | |
Pagador | 482 |' . $retornoBoletoDetalhado['response']->pagador->nome . ' | 483 |CNPJ/CPF: ' . formatCnpjCpf($retornoBoletoDetalhado['response']->pagador->cpfCnpj) . ' | 484 |
487 | | ' . mb_strtoupper($retornoBoletoDetalhado['response']->pagador->endereco . ' ' . $retornoBoletoDetalhado['response']->pagador->numero . ' ' . $retornoBoletoDetalhado['response']->pagador->complemento) . ' | 488 |489 | |
492 | | ' . mb_strtoupper($retornoBoletoDetalhado['response']->pagador->bairro . ' ' . Mask("#####-###", $retornoBoletoDetalhado['response']->pagador->cep) . ' ' . $retornoBoletoDetalhado['response']->pagador->cidade . '/' . $retornoBoletoDetalhado['response']->pagador->uf) . ' | 493 |494 | |
Beneficiário Final | 497 |' . $retornoBoletoDetalhado['response']->nomeBeneficiario . ' | 498 |CNPJ/CPF: ' . formatCnpjCpf($retornoBoletoDetalhado['response']->cnpjCpfBeneficiario) . ' | 499 |
502 | | 503 | | 504 | |
"; 87 | $incluirBoletoCobranca = $bankingInter->incluirBoletoCobranca($dadosBoleto); 88 | // echo $incluirBoletoCobranca->nossoNumero; 89 | print_r($incluirBoletoCobranca); 90 | } catch (\Exception $e) { 91 | echo $e->getMessage(); 92 | } 93 | ``` 94 | 95 | ## ATENÇÃO 96 | Todos os parâmetros como os dados do pagador, devem ser validados por você para não der problema na geração do boleto. A cobrança é cadastrada no banco central e aparecerá no DDA dos sacados. Os dadosBoleto você deverá informar com os seus dados, revise cada parâmetro e coloque a informação corretamente. -------------------------------------------------------------------------------- /docs/API COBRANCA/README.md: -------------------------------------------------------------------------------- 1 | # API COBRANÇA-INTER 2 | 3 | ## API Cobranças 4 | Suas funcionalidades são: 5 | 6 | - Incluir boleto de cobrança. 7 | - Recuperar coleção de boletos 8 | - Recuperar sumário de boletos 9 | - Recuperar boleto detalhado 10 | - Recuperar boleto em PDF 11 | - Cancelar boleto -------------------------------------------------------------------------------- /docs/API COBRANCA/Recuperar boleto detalhado.md: -------------------------------------------------------------------------------- 1 | # BOLETO DETALHADO-INTER 2 | 3 | ## Consultar boleto 4 | Busca todos os dados do boleto
5 | Necessita informar o nossoNumero. 6 | 7 | ## Problema identificado 8 | Consultar 5 boletos por minutos ou se enviar 10 requisições o Banco Inter retorna (Token inválido.) nas demais requisições / consultas. 9 | 10 | ```php 11 | require '../../../vendor/autoload.php'; 12 | 13 | use Divulgueregional\ApiInterV2\InterBanking; 14 | 15 | $config = [ 16 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 17 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 18 | ]; 19 | 20 | $token = '';//seu token 21 | $nossoNumero = '';//informe o nossoNumero 22 | try { 23 | $bankingInter = new InterBanking($config); 24 | $bankingInter->setToken($token); 25 | 26 | echo ""; 27 | $boletoDetalhado = $bankingInter->boletoDetalhado($nossoNumero); 28 | print_r($boletoDetalhado); 29 | } catch (\Exception $e) { 30 | echo $e->getMessage(); 31 | } 32 | ``` -------------------------------------------------------------------------------- /docs/API COBRANCA/Recuperar boleto em PDF.md: -------------------------------------------------------------------------------- 1 | # BOLETO PDF-INTER 2 | 3 | ## Boleto PDF 4 | Gera o boleto em formato de pdf
5 | Necessita informar o nossoNumero. 6 | 7 | ```php 8 | require '../../../vendor/autoload.php'; 9 | 10 | use Divulgueregional\ApiInterV2\InterBanking; 11 | 12 | $config = [ 13 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 14 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 15 | ]; 16 | 17 | $token = '';//seu token 18 | $nossoNumero = '';//informe o nossoNumero 19 | try { 20 | $bankingInter = new InterBanking($config); 21 | $bankingInter->setToken($token); 22 | 23 | $boletoPDF = $bankingInter->boletoPDF($nossoNumero); 24 | // print_r($boletoPDF); 25 | // echo $boletoPDF->pdf; 26 | $pdf = base64_decode($boletoPDF['response']->pdf); 27 | 28 | header('Content-Type: application/pdf'); 29 | echo $pdf; 30 | } catch (\Exception $e) { 31 | echo $e->getMessage(); 32 | } 33 | ``` -------------------------------------------------------------------------------- /docs/API COBRANCA/Recuperar coleção de boletos.md: -------------------------------------------------------------------------------- 1 | # COLEÇÃO DE BOLETOS-INTER 2 | 3 | ## Coleção de Boletos 4 | Coleção de boletos traz as informações dos boletos de acordo com os de filtros informados 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | 9 | use Divulgueregional\ApiInterV2\InterBanking; 10 | 11 | $config = [ 12 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 13 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 14 | ]; 15 | 16 | $filters = [ 17 | 'dataInicial' => '2022-04-01',//obrigatório 18 | 'dataFinal' => '2022-04-28',//obrigatório 19 | 'filtrarDataPor' => 'VENCIMENTO', //VENCIMENTO - EMISSAO - SITUACAO 20 | 'situacao' => 'PAGO,EMABERTO,VENCIDO', //EXPIRADO - VENCIDO - EMABERTO - PAGO - CANCELADO 21 | 'nome' => '', 22 | 'email' => '', 23 | 'cpfCnpj' => '', 24 | 'nossoNumero' => '', 25 | 'itensPorPagina' => 1000, //maximo 1000 26 | 'paginaAtual' => 0, 27 | 'ordenarPor' => 'DATAVENCIMENTO', //PAGADOR - NOSSONUMERO - SEUNUMERO - DATASITUACAO - DATAVENCIMENTO - VALOR - STATUS 28 | 'tipoOrdenacao' => 'ASC', //ASC - Crescente (Default). DESC - Decrescente 29 | ]; 30 | 31 | $token = '';//seu token 32 | try { 33 | $bankingInter = new InterBanking($config); 34 | $bankingInter->setToken($token); 35 | 36 | $colecaoBoletos = $bankingInter->colecaoBoletos($filters); 37 | print_r($colecaoBoletos); 38 | } catch (\Exception $e) { 39 | echo $e->getMessage(); 40 | } 41 | ``` -------------------------------------------------------------------------------- /docs/API COBRANCA/Recuperar sumário de boletos.md: -------------------------------------------------------------------------------- 1 | # SUMÁRIO DE BOLETOS-INTER 2 | 3 | ## Sumário de Boletos 4 | Sumário de boletos traz o resumo dos boletos de acordo com os de filtros informados 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | 9 | use Divulgueregional\ApiInterV2\InterBanking; 10 | 11 | $config = [ 12 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 13 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 14 | ]; 15 | 16 | $filters = [ 17 | 'dataInicial' => '2022-04-01',//obrigatório 18 | 'dataFinal' => '2022-04-28',//obrigatório 19 | 'filtrarDataPor' => 'VENCIMENTO', //VENCIMENTO - EMISSAO - SITUACAO 20 | 'situacao' => 'PAGO,EMABERTO,VENCIDO', //EXPIRADO - VENCIDO - EMABERTO - PAGO - CANCELADO 21 | 'nome' => '', 22 | 'email' => '', 23 | 'cpfCnpj' => '', 24 | 'nossoNumero' => '', 25 | ]; 26 | 27 | $token = '';//seu token 28 | try { 29 | $bankingInter = new InterBanking($config); 30 | $bankingInter->setToken($token); 31 | 32 | $sumarioBoletos = $bankingInter->sumarioBoletos($filters); 33 | print_r($sumarioBoletos); 34 | } catch (\Exception $e) { 35 | echo $e->getMessage(); 36 | } 37 | ``` -------------------------------------------------------------------------------- /docs/API PAGAMENTO/Cancelar agendamento do pagamento.md: -------------------------------------------------------------------------------- 1 | # CANCELAR AGENDAMENTO PAGAMENTO-INTER 2 | 3 | ## Cancelar agendamento do pagamento 4 | Método utilizado para cancelar o agendamento do pagamento de um boleto.
5 | Escopo requerido: pagamento-boleto.write
6 | Rate limit: 20 chamadas por minuto. 7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | use Divulgueregional\ApiInterV2\InterBanking; 11 | 12 | $config = [ 13 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 14 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 15 | ]; 16 | 17 | $token = '';//seu token 18 | $codigoTransacao = ''; //informe o nossoNumero 19 | try { 20 | $bankingInter = new InterBanking($config); 21 | $bankingInter->setToken($token); 22 | echo ""; 23 | $respose = $bankingInter->cancelarAgendamentoPagamento($codigoTransacao); 24 | print_r($respose); 25 | } catch (\Exception $e) { 26 | echo $e->getMessage(); 27 | } 28 | ``` -------------------------------------------------------------------------------- /docs/API PAGAMENTO/Informação Pagamento Boleto.md: -------------------------------------------------------------------------------- 1 | # INFORMAÇÃO PAGAMENTO BOLETO-INTER 2 | 3 | ## Informacao Pagamento Boleto 4 | Endpoint responsável por buscar informações de pagamentos de boleto. 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | use Divulgueregional\ApiInterV2\InterBanking; 9 | 10 | $config = [ 11 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 12 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 13 | ]; 14 | $bankingInter = new InterBanking($config); 15 | $token = '';//seu token 16 | $bankingInter->setToken($token); 17 | 18 | // filtrarDataPor 19 | // Os filtros de data inicial e data final se aplicarão a: 20 | // INCLUSAO - Data da operação que foi solicitado o pagamento do título. (Default) 21 | // PAGAMENTO - Data em que foi efetuado o pagamento do título 22 | // VENCIMENTO - Data do vencimento do título de pagamento. 23 | $codBarrasLinhaDigitavel = '123400000012345678922012345678964663362129356789'; 24 | $filters = [ 25 | 'codBarraLinhaDigitavel' => $codBarrasLinhaDigitavel, 26 | 'codigoTransacao' => null, 27 | 'dataInicio' => null, 28 | 'dataFim' => null, 29 | 'filtrarDataPor' => null, 30 | ]; 31 | try { 32 | echo ""; 33 | $respose = $bankingInter->informacaoPagamentoBoleto($filters); 34 | // print_r($respose); 35 | foreach ($respose['response'] as $dadosBoleto) { 36 | // print_r($dadosBoleto); 37 | echo $extdadosBoletorato->codigoTransacao. 38 | ' - '.$dadosBoleto->codigoBarra. 39 | ' - '.$dadosBoleto->tipo. 40 | ' - '.$dadosBoleto->dataVencimentoDigitada. 41 | ' - '.$dadosBoleto->dataVencimentoTitulo. 42 | ' - '.$dadosBoleto->dataInclusao. 43 | ' - '.$dadosBoleto->dataPagamento. 44 | ' - '.$dadosBoleto->valorPago. 45 | ' - '.$dadosBoleto->valorNominal. 46 | ' - '.$dadosBoleto->statusPagamento. 47 | ' - '.$dadosBoleto->nomeBeneficiario.'
'; 48 | } 49 | } catch (\Exception $e) { 50 | echo $e->getMessage(); 51 | } 52 | ``` -------------------------------------------------------------------------------- /docs/API PAGAMENTO/Informação Pagamento DARF.md: -------------------------------------------------------------------------------- 1 | # INFORMAÇÃO PAGAMENTO DARF-INTER 2 | 3 | ## Informacao Pagamento DARF 4 | Endpoint responsável por buscar informações de pagamentos de DARF. 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | use Divulgueregional\ApiInterV2\InterBanking; 9 | 10 | $config = [ 11 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 12 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 13 | ]; 14 | $bankingInter = new InterBanking($config); 15 | $token = '';//seu token 16 | $bankingInter->setToken($token); 17 | 18 | // filtrarDataPor 19 | // Os filtros de data inicial e data final se aplicarão a: 20 | // INCLUSAO - Filtro de data pela data da operação que foi incluida. (Default) 21 | // PAGAMENTO - Filtro de data em que foi realizado o pagamento de fato. 22 | // VENCIMENTO - Filtro de data de vencimento do pagamento da DARF. 23 | // PERIODO_APURACAO - Filtro de data de período de apuração do pagamento da DARF. 24 | $filters = [ 25 | 'codigoTransacao' => null, 26 | 'codigoReceita' => null, 27 | 'dataInicio' => null, 28 | 'dataFim' => null, 29 | 'filtrarDataPor' => null, 30 | ]; 31 | try { 32 | echo ""; 33 | $respose = $bankingInter->informacaoPagamentoDARF($filters); 34 | // print_r($respose); 35 | foreach ($respose['response'] as $dadosBoleto) { 36 | // print_r($dadosBoleto); 37 | echo $extdadosBoletorato->codigoTransacao. 38 | ' - '.$dadosBoleto->codigoBarra. 39 | ' - '.$dadosBoleto->tipo. 40 | ' - '.$dadosBoleto->dataVencimentoDigitada. 41 | ' - '.$dadosBoleto->dataVencimentoTitulo. 42 | ' - '.$dadosBoleto->dataInclusao. 43 | ' - '.$dadosBoleto->dataPagamento. 44 | ' - '.$dadosBoleto->valorPago. 45 | ' - '.$dadosBoleto->valorNominal. 46 | ' - '.$dadosBoleto->statusPagamento. 47 | ' - '.$dadosBoleto->nomeBeneficiario.'
'; 48 | } 49 | } catch (\Exception $e) { 50 | echo $e->getMessage(); 51 | } 52 | ``` -------------------------------------------------------------------------------- /docs/API PAGAMENTO/Obter dados CIP.md: -------------------------------------------------------------------------------- 1 | # OBTER DADOS CIP-INTER 2 | 3 | ## Obter dados CIP 4 | Método para obter os dados completos de um título a partir do código de barras ou da linha digitável
5 | Este endpoint está implementado com um rate-limit de 10 chamadas por minuto. 6 | 7 | ```php 8 | require '../../../vendor/autoload.php'; 9 | 10 | use Divulgueregional\ApiInterV2\InterBanking; 11 | 12 | $config = [ 13 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 14 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 15 | ]; 16 | 17 | $codBarrasLinhaDigitavel = ''; 18 | $token = '';//seu token 19 | try { 20 | $bankingInter = new InterBanking($config); 21 | $bankingInter->setToken($token); 22 | 23 | echo ""; 24 | $obterDadosCIP = $bankingInter->obterDadosCIP($codBarrasLinhaDigitavel); 25 | print_r($obterDadosCIP); 26 | } catch (\Exception $e) { 27 | echo $e->getMessage(); 28 | } 29 | ``` -------------------------------------------------------------------------------- /docs/API PAGAMENTO/Pagar Boleto.md: -------------------------------------------------------------------------------- 1 | # PAGAR BOLETO-INTER 2 | 3 | ## Pagar boleto 4 | Método para inclusão de um pagamento imediato ou agendamento do pagamento de boleto, convênio ou tributo com código de barras.
5 | Este endpoint está implementado com um rate-limit de 10 chamadas por minuto. 6 | 7 | ```php 8 | require '../../../vendor/autoload.php'; 9 | 10 | use Divulgueregional\ApiInterV2\InterBanking; 11 | 12 | $config = [ 13 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 14 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 15 | ]; 16 | 17 | $filters = [ 18 | 'codBarraLinhaDigitavel' => $Post->codBarraLinhaDigitavel,// required 19 | 'valorPagar' => $Post->valorPagar,// required 20 | 'dataPagamento' => $Post->dataPagamento,// Data para efetivar o pagamento. Se não informada, o pagamento será feito no mesmo dia. Formato aceito: YYYY-MM-DD 21 | 'dataVencimento' => $Post->dataVencimento,// required Data de vencimento do título. Formato aceito: YYYY-MM-DD 22 | ]; 23 | $token = '';//seu token 24 | try { 25 | $bankingInter = new InterBanking($config); 26 | $bankingInter->setToken($token); 27 | 28 | echo ""; 29 | $pagarBoleto = $bankingInter->pagarBoleto($filters); 30 | print_r($pagarBoleto); 31 | } catch (\Exception $e) { 32 | echo $e->getMessage(); 33 | } 34 | ``` -------------------------------------------------------------------------------- /docs/API PAGAMENTO/Pagar DARF.md: -------------------------------------------------------------------------------- 1 | # PAGAR DARF-INTER 2 | 3 | ## Pagar DARF 4 | Método para inclusão de um pagamento imediato de DARF sem código de barras.
5 | Este endpoint está implementado com um rate-limit de 120 chamadas por minuto. 6 | 7 | ```php 8 | require '../../../vendor/autoload.php'; 9 | 10 | use Divulgueregional\ApiInterV2\InterBanking; 11 | 12 | $config = [ 13 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 14 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 15 | ]; 16 | 17 | $filters = [ 18 | 'cnpjCpf' => $Post->cnpjCpf,// string 19 | 'codigoReceita' => $Post->codigoReceita,// string 0220 20 | 'dataVencimento' => $Post->dataVencimento,// string 31/01/2020 21 | 'descricao' => $Post->descricao,// string Pagamento DARF 22 | 'nomeEmpresa' => $Post->nomeEmpresa,// string Minha empresa 23 | 'telefoneEmpresa' => $Post->telefoneEmpresa,// string 24 | 'periodoApuracao' => $Post->periodoApuracao,// string 2020-01-31 25 | 'valorPrincipal' => $Post->valorPrincipal,// string 47.14 26 | 'valorMulta' => $Post->valorMulta,// string 27.48 27 | 'valorJuros' => $Post->valorJuros,// string 10.11 28 | 'dataPagamento' => $Post->dataPagamento,// string 2020-01-30 29 | 'referencia' => $Post->referencia,// string 13609400849201739 30 | ]; 31 | $token = '';//seu token 32 | try { 33 | $bankingInter = new InterBanking($config); 34 | $bankingInter->setToken($token); 35 | 36 | echo ""; 37 | $pagarDARF = $bankingInter->pagarDARF($filters); 38 | print_r($pagarDARF); 39 | } catch (\Exception $e) { 40 | echo $e->getMessage(); 41 | } 42 | ``` -------------------------------------------------------------------------------- /docs/API PAGAMENTO/Recuperar Comprovante em PDF.md: -------------------------------------------------------------------------------- 1 | # RECUPERAR COMPROVANTE EM PDF - FOI RETIRADO DA API 2 | 3 | ## FOI RETIRADO DA API 4 | ## Recuperar comprovante em PDF 5 | Busca o comprovante de pagamento através do código de barras ou linha digitável e retorna o base64 do PDF.
6 | Este endpoint está implementado com um rate-limit de 120 chamadas por minuto. 7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $codBarrasLinhaDigitavel = ''; 19 | $token = '';//seu token 20 | try { 21 | $bankingInter = new InterBanking($config); 22 | $bankingInter->setToken($token); 23 | 24 | echo ""; 25 | $recuperarComprovantePDF = $bankingInter->recuperarComprovantePDF($codBarrasLinhaDigitavel); 26 | print_r($recuperarComprovantePDF); 27 | } catch (\Exception $e) { 28 | echo $e->getMessage(); 29 | } 30 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA IMEDIATA/Atualizar cobrança imediata.md: -------------------------------------------------------------------------------- 1 | # ATUALIZAR COBRANÇA IMEDIATA-INTER 2 | 3 | ## Atualizar cobrança imediata 4 | Endpoint para atualizar cobrança imediata.
5 | Escopo requerido: cob.write
6 | Rate limit: 120 chamadas por minuto
7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $txid = ''; //gerado ao criar o pix 19 | $filters = [ 20 | "calendario" => [ 21 | "expiracao" => 86400,//Tempo de vida da cobrança, especificado em segundos a partir da data de criação (Calendario.criacao) 22 | ], 23 | "devedor" => [ 24 | "cpf" => '',//required 25 | "nome" => '',//required 26 | //ou 27 | // "cnpj" => '',//required 28 | // "nome" => '',//required 29 | ], 30 | "valor" => [ 31 | "original" => '5.00',//string required- valores monetários referentes à cobrança. 32 | "modalidadeAlteracao" => 0,//int Trata-se de um campo que determina se o valor final do documento pode ser alterado pelo pagador. Na ausência desse campo, assume-se que não se pode alterar o valor do documento de cobrança, ou seja, assume-se o valor 0. Se o campo estiver presente e com valor 1, então está determinado que o valor final da cobrança pode ter seu valor alterado pelo pagador. 33 | ], 34 | // "chave" => "",//string chave Pix do recebedor. Chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. 35 | "solicitacaoPagador" => "Pix Texte",//O campo solicitacaoPagador determina um texto a ser apresentado ao pagador para que ele possa digitar uma informação correlata, em formato livre, a ser enviada ao recebedor. Esse texto está limitado a 140 caracteres. 36 | // "infoAdicionais" => [ 37 | // [ 38 | // "nome" => '"Campo 1',//required 39 | // "valor" => "Informação Adicional1 do PSP-Recebedor",//required 40 | // ], 41 | // ], 42 | ]; 43 | 44 | $token = '';//seu token 45 | try { 46 | $bankingInter = new InterBanking($config); 47 | $bankingInter->setToken($token); 48 | 49 | echo ""; 50 | $atualizarCobrancaImediata = $bankingInter->atualizarCobrancaImediata($txid, $filters); 51 | print_r($atualizarCobrancaImediata); 52 | } catch (\Exception $e) { 53 | echo $e->getMessage(); 54 | } 55 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA IMEDIATA/Consultar cobrança imediata.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR COBRANÇA IMEDIATA-INTER 2 | 3 | ## Consultar cobrança imediata 4 | Endpoint para consultar uma cobrança através de um determinado txid.
5 | Traz um json com as informações do pix gerado
6 | Escopo requerido: cob.read
7 | Rate limit: 120 chamadas por minuto
8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $txid = 320.01; 20 | 21 | $token = '';//seu token 22 | try { 23 | $bankingInter = new InterBanking($config); 24 | $bankingInter->setToken($token); 25 | 26 | echo ""; 27 | $consultarCobrancaImediata = $bankingInter->consultarCobrancaImediata($txid); 28 | print_r($consultarCobrancaImediata); 29 | } catch (\Exception $e) { 30 | echo $e->getMessage(); 31 | } 32 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA IMEDIATA/Criar cobrança imediata.md: -------------------------------------------------------------------------------- 1 | # CRIAR COBRANÇA IMEDIATA-INTER 2 | 3 | ## Criar cobrança imediata 4 | Endpoint para criar uma cobrança imediata.
5 | Escopo requerido: cob.write
6 | Você gera o txid.
7 | Rate limit: 120 chamadas por minuto
8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $txid = '';//gerado por você, min 24 max 35 caracteres 20 | $filters = [ 21 | "calendario" => [ 22 | "expiracao" => 86400,//Tempo de vida da cobrança, especificado em segundos a partir da data de criação (Calendario.criacao) 23 | ], 24 | "devedor" => [ 25 | "cpf" => '',//required 26 | "nome" => "",//required 27 | //ou 28 | // "cnpj" => '',//required 29 | // "nome" => "",//required 30 | ], 31 | "valor" => [ 32 | "original" => '10.00',//string required- valores monetários referentes à cobrança. 33 | "modalidadeAlteracao" => 0,//int Trata-se de um campo que determina se o valor final do documento pode ser alterado pelo pagador. Na ausência desse campo, assume-se que não se pode alterar o valor do documento de cobrança, ou seja, assume-se o valor 0. Se o campo estiver presente e com valor 1, então está determinado que o valor final da cobrança pode ter seu valor alterado pelo pagador. 34 | ], 35 | "chave" => "",//string chave Pix do recebedor. Chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. 36 | "solicitacaoPagador" => "Meus serviços",//O campo solicitacaoPagador determina um texto a ser apresentado ao pagador para que ele possa digitar uma informação correlata, em formato livre, a ser enviada ao recebedor. Esse texto está limitado a 140 caracteres. 37 | // "infoAdicionais" => [ 38 | // [ 39 | // "nome" => '"Campo 1',//required 40 | // "valor" => "Informação Adicional1 do PSP-Recebedor",//required 41 | // ], 42 | // ], 43 | ]; 44 | 45 | $token = '';//seu token 46 | try { 47 | $bankingInter = new InterBanking($config); 48 | $bankingInter->setToken($token); 49 | 50 | echo ""; 51 | $criarCobrancaImediata = $bankingInter->criarCobrancaImediata($txid, $filters); 52 | print_r($criarCobrancaImediata); 53 | } catch (\Exception $e) { 54 | echo $e->getMessage(); 55 | } 56 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA IMEDIATA/Criar cobrança imediataPSB.md: -------------------------------------------------------------------------------- 1 | # CRIAR COBRANÇA IMEDIATA-INTER 2 | 3 | ## Criar cobrança imediata 4 | Endpoint para criar uma cobrança imediata.
5 | O banco gera o txid.
6 | Escopo requerido: cob.write
7 | Rate limit: 120 chamadas por minuto
8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $filters = [ 20 | "calendario" => [ 21 | "expiracao" => 86400,//Tempo de vida da cobrança, especificado em segundos a partir da data de criação (Calendario.criacao) 22 | ], 23 | "devedor" => [ 24 | "cpf" => '',//required 25 | "nome" => "",//required 26 | //ou 27 | // "cnpj" => '',//required 28 | // "nome" => "",//required 29 | ], 30 | "valor" => [ 31 | "original" => '10.00',//string required- valores monetários referentes à cobrança. 32 | "modalidadeAlteracao" => 0,//int Trata-se de um campo que determina se o valor final do documento pode ser alterado pelo pagador. Na ausência desse campo, assume-se que não se pode alterar o valor do documento de cobrança, ou seja, assume-se o valor 0. Se o campo estiver presente e com valor 1, então está determinado que o valor final da cobrança pode ter seu valor alterado pelo pagador. 33 | ], 34 | "chave" => "",//string chave Pix do recebedor. Chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. 35 | "solicitacaoPagador" => "Meus serviços",//O campo solicitacaoPagador determina um texto a ser apresentado ao pagador para que ele possa digitar uma informação correlata, em formato livre, a ser enviada ao recebedor. Esse texto está limitado a 140 caracteres. 36 | // "infoAdicionais" => [ 37 | // [ 38 | // "nome" => '"Campo 1',//required 39 | // "valor" => "Informação Adicional1 do PSP-Recebedor",//required 40 | // ], 41 | // ], 42 | ]; 43 | 44 | $token = '';//seu token 45 | try { 46 | $bankingInter = new InterBanking($config); 47 | $bankingInter->setToken($token); 48 | 49 | echo ""; 50 | $criarCobrancaImediataPSB = $bankingInter->criarCobrancaImediataPSB($filters); 51 | print_r($criarCobrancaImediataPSB); 52 | } catch (\Exception $e) { 53 | echo $e->getMessage(); 54 | } 55 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA IMEDIATA/Gerar o QRCode na tela.md: -------------------------------------------------------------------------------- 1 | # GERAR QRCODE NA TELA-INTER 2 | 3 | ## Gerar o QRCode na tela 4 | Você pode usar esse projeto para gerar o qrcode: https://github.com/mpdf/qrcode
5 | Atualmente estou usando chart.googleapis.com
6 | basta colocar o pixCopiaECola do json do retorno do pix criado no src do img.
7 | https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl='+pixCopiaECola 8 |
9 | 10 | ```js 11 | var imgPixQRCode = document.getElementById('img_pix_qrcode'); 12 | 13 | var copia_e_cola = document.getElementById('chave_copia_e_cola'); 14 | imgPixQRCode.src = 'https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl='+copia_e_cola; 15 | imgPixQRCode.style.display = 'block'; 16 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA VENCIMENTO/Atualizar cobrança vencimento.md: -------------------------------------------------------------------------------- 1 | # ATUALIZAR COBRANÇA VENCIMENTO-INTER 2 | 3 | ## Atualizar cobrança vencimento 4 | Endpoint para atualizar cobrança imediata.
5 | Escopo requerido: cob.write
6 | Rate limit: 120 chamadas por minuto
7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $txid = ''; //gerado ao criar o pix 19 | //JURIDICA 20 | $filters = [ 21 | "devedor" => [ 22 | "cpf" => '99999999999',//required 23 | "nome" => "NOME DA PESSOA",//required 24 | //ou 25 | // "cnpj" => '',//required 26 | // "nome" => "",//required 27 | ], 28 | "valor" => [ 29 | "original" => '5.00',//string required- valores monetários referentes à cobrança. 30 | "modalidadeAlteracao" => 0,//int Trata-se de um campo que determina se o valor final do documento pode ser alterado pelo pagador. Na ausência desse campo, assume-se que não se pode alterar o valor do documento de cobrança, ou seja, assume-se o valor 0. Se o campo estiver presente e com valor 1, então está determinado que o valor final da cobrança pode ter seu valor alterado pelo pagador. 31 | ], 32 | // "chave" => "",//string chave Pix do recebedor. Chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. 33 | "solicitacaoPagador" => "Meu serviço alterado",//O campo solicitacaoPagador determina um texto a ser apresentado ao pagador para que ele possa digitar uma informação correlata, em formato livre, a ser enviada ao recebedor. Esse texto está limitado a 140 caracteres. 34 | // "infoAdicionais" => [ 35 | // [ 36 | // "nome" => '"Campo 1',//required 37 | // "valor" => "Informação Adicional1 do PSP-Recebedor",//required 38 | // ], 39 | // ], 40 | ]; 41 | 42 | $token = '';//seu token 43 | try { 44 | $bankingInter = new InterBanking($config); 45 | $bankingInter->setToken($token); 46 | 47 | echo ""; 48 | $atualizarCobrancaVencimento = $bankingInter->atualizarCobrancaVencimento($txid, $filters); 49 | print_r($atualizarCobrancaVencimento); 50 | } catch (\Exception $e) { 51 | echo $e->getMessage(); 52 | } 53 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA VENCIMENTO/Consultar cobrança vencimento.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR COBRANÇA VENCIMENTO-INTER 2 | 3 | ## Consultar cobrança vencimento 4 | Endpoint para consultar uma cobrança com vencimento através de um determinado txid.
5 | Traz um json com as informações do pix gerado
6 | Escopo requerido: cobv.read
7 | Rate limit: 120 chamadas por minuto
8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $txid = 320.01; 20 | 21 | $token = '';//seu token 22 | try { 23 | $bankingInter = new InterBanking($config); 24 | $bankingInter->setToken($token); 25 | 26 | echo ""; 27 | $consultarCobrancaVencimento = $bankingInter->consultarCobrancaVencimento($txid); 28 | print_r($consultarCobrancaVencimento); 29 | } catch (\Exception $e) { 30 | echo $e->getMessage(); 31 | } 32 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA VENCIMENTO/Criar cobrança vencimento.md: -------------------------------------------------------------------------------- 1 | # CRIAR COBRANÇA VENCIMENTO-INTER 2 | 3 | ## Criar cobrança vencimento 4 | Endpoint para criar uma cobrança com vencimento.
5 | Escopo requerido: cobv.write
6 | Você gera o txid.
7 | Rate limit: 120 chamadas por minuto
8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $txid = '';//gerado por você, min 24 max 35 caracteres 20 | //JURIDICA 21 | $filters = [ 22 | "calendario" => [ 23 | "dataDeVencimento" => "2023-07-25",//Tempo de vida da cobrança, especificado em segundos a partir da data de criação (Calendario.criacao) 24 | "validadeAposVencimento" => 30 25 | ], 26 | // "loc" => [ 27 | // "id" => 789, 28 | // ], 29 | "devedor" => [ 30 | "logradouro" => 'Rua A, 666. Rio Branco', 31 | "cidade" => "Caxias do Sul", 32 | "uf" => 'RS', 33 | "cep" => '95097660', 34 | "cnpj" => '99999999999999', 35 | "nome" => "MINHA EMPRESA", 36 | ], 37 | "valor" => [ 38 | "original" => '10.00',//string required- valores monetários referentes à cobrança. 39 | // "multa" => [ 40 | // "modalidade" => "2",// 1-Valor Fixo; 2-Percentual 41 | // "valorPerc" => "5.00", 42 | // ], 43 | // "multa" => [ 44 | // "modalidade" => "2",//1-Valor (dias corridos); 2-Percentual ao dia (dias corridos);3-Percentual ao mês (dias corridos);4-Percentual ao ano (dias corridos);5-Valor (dias úteis);6-Percentual ao dia (dias úteis);7-Percentual ao mês (dias úteis);8-Percentual ao ano (dias úteis) 45 | // "valorPerc" => "1.00", 46 | // ], 47 | // "desconto" => [ 48 | // "modalidade" => "1",// 1-Valor Fixo; 2-Percentual 49 | // "descontoDataFixa" => [ 50 | // "data" => "2020-11-30", 51 | // "valorPerc" => "2.00", 52 | // ], 53 | // ], 54 | ], 55 | "chave" => "",//string chave Pix do recebedor. Chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. 56 | "solicitacaoPagador" => "Sobre meus serviços",//O campo solicitacaoPagador determina um texto a ser apresentado ao pagador para que ele possa digitar uma informação correlata, em formato livre, a ser enviada ao recebedor. Esse texto está limitado a 140 caracteres. 57 | // "infoAdicionais" => [ 58 | // [ 59 | // "nome" => '"Campo 1',//required 60 | // "valor" => "Informação Adicional1 do PSP-Recebedor",//required 61 | // ], 62 | // ], 63 | ]; 64 | $token = '';//seu token 65 | try { 66 | $bankingInter = new InterBanking($config); 67 | $bankingInter->setToken($token); 68 | 69 | echo ""; 70 | $criarCobrancaVencimento = $bankingInter->criarCobrancaVencimento($txid, $filters); 71 | print_r($criarCobrancaVencimento); 72 | } catch (\Exception $e) { 73 | echo $e->getMessage(); 74 | } 75 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA VENCIMENTO/Gerar o QRCode na tela.md: -------------------------------------------------------------------------------- 1 | # GERAR QRCODE NA TELA-INTER 2 | 3 | ## Gerar o QRCode na tela 4 | Você pode usar esse projeto para gerar o qrcode: https://github.com/mpdf/qrcode
5 | Atualmente estou usando chart.googleapis.com
6 | basta colocar o pixCopiaECola do json do retorno do pix criado no src do img.
7 | https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl='+pixCopiaECola 8 |
9 | 10 | ```js 11 | var imgPixQRCode = document.getElementById('img_pix_qrcode'); 12 | 13 | var copia_e_cola = document.getElementById('chave_copia_e_cola'); 14 | imgPixQRCode.src = 'https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl='+copia_e_cola; 15 | imgPixQRCode.style.display = 'block'; 16 | ``` -------------------------------------------------------------------------------- /docs/API PIX/COBRANCA VENCIMENTO/Listar cobrança vencimento copy.md: -------------------------------------------------------------------------------- 1 | # LISTAR COBRANÇA VENCIMENTO-INTER 2 | 3 | ## Listar cobrança com vencimento 4 | Endpoint para consultar cobranças com vencimento através de parâmetros como início, fim, cpf, cnpj e status.
5 | Escopo requerido: cobv.read
6 | Rate limit: 120 chamadas por minuto
7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $filters = [ 19 | "inicio" => '2023-07-01T12:09:00Z', 20 | "fim" => '2023-07-30T12:09:00Z', 21 | // "txId" => null, 22 | // "txIdPresente" => null, 23 | // "devolucaoPresente" => null, 24 | // "cpf" => null, 25 | // "cnpj" => null, 26 | // "status" => null, 27 | // "paginacao.paginaAtual" => 0, 28 | // "paginacao.itensPorPagina" => 100, 29 | ]; 30 | 31 | $token = '';//seu token 32 | try { 33 | $bankingInter = new InterBanking($config); 34 | $bankingInter->setToken($token); 35 | 36 | echo ""; 37 | $consultarListaCobrancaVencimento = $bankingInter->consultarListaCobrancaVencimento($filters); 38 | print_r($consultarListaCobrancaVencimento); 39 | } catch (\Exception $e) { 40 | echo $e->getMessage(); 41 | } 42 | ``` -------------------------------------------------------------------------------- /docs/API PIX/Pix/Consultar devolucaoo.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR DEVOLUÇÃO-INTER 2 | 3 | ## Consultar devolução 4 | Endpoint para consultar uma devolução através de um E2EID do Pix e do ID da devolução.
5 | Escopo requerido: pix.read
6 | Rate limit: 120 chamadas por minuto
7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $e2eId = '111111111111111111111111111111'; 19 | $id = '22222222222222222'; 20 | 21 | $token = '';//seu token 22 | try { 23 | $bankingInter = new InterBanking($config); 24 | $bankingInter->setToken($token); 25 | 26 | echo ""; 27 | $consultarPix = $bankingInter->consultarPix($e2eId, $id); 28 | print_r($consultarPix); 29 | } catch (\Exception $e) { 30 | echo $e->getMessage(); 31 | } 32 | ``` -------------------------------------------------------------------------------- /docs/API PIX/Pix/Consultar pix recebidos.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR PIX RECEBIDO-INTER 2 | 3 | ## Consultar pix recebidos 4 | Endpoint para consultar um pix por um período específico, de acordo com os parâmetros informados.
5 | Escopo requerido: pix.read
6 | Rate limit: 120 chamadas por minuto
7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $filters = [ 19 | "inicio" => '2023-06-01T12:09:00Z', 20 | "fim" => '2023-06-30T12:09:00Z', 21 | "txId" => null, 22 | "txIdPresente" => null, 23 | "devolucaoPresente" => null, 24 | "cpf" => null, 25 | "cnpj" => null, 26 | "paginacao.paginaAtual" => 0, 27 | "paginacao.itensPorPagina" => 100, 28 | ]; 29 | 30 | $token = '';//seu token 31 | try { 32 | $bankingInter = new InterBanking($config); 33 | $bankingInter->setToken($token); 34 | 35 | echo ""; 36 | $consultarPixRecebidos = $bankingInter->consultarPixRecebidos($filters); 37 | print_r($consultarPixRecebidos); 38 | } catch (\Exception $e) { 39 | echo $e->getMessage(); 40 | } 41 | ``` -------------------------------------------------------------------------------- /docs/API PIX/Pix/Consultar pix.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR PIX-INTER 2 | 3 | ## Consultar pix 4 | Endpoint para consultar um pix através de um determinado EndToEndId.
5 | Escopo requerido: pix.read
6 | Rate limit: 120 chamadas por minuto
7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $e2eId = '111111111111111111111111111111'; 19 | 20 | $token = '';//seu token 21 | try { 22 | $bankingInter = new InterBanking($config); 23 | $bankingInter->setToken($token); 24 | 25 | echo ""; 26 | $consultarPix = $bankingInter->consultarPix($e2eId); 27 | print_r($consultarPix); 28 | } catch (\Exception $e) { 29 | echo $e->getMessage(); 30 | } 31 | ``` -------------------------------------------------------------------------------- /docs/API PIX/Pix/Solicitar devolucao.md: -------------------------------------------------------------------------------- 1 | # SOLICITAR DEVOLUÇÃO-INTER 2 | 3 | ## Solicitar devolução 4 | Endpoint para solicitar uma devolução através de um E2EID do Pix e do ID da devolução.
5 | Escopo requerido: pix.write
6 | Rate limit: 120 chamadas por minuto
7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $e2eId = '111111111111111111111111111111'; 19 | $id = '22222222222222222'; 20 | $filter = [ 21 | "valor" => '7.89', 22 | "natureza" => "ORIGINAL", //ORIGINAL, RETIRADA 23 | "descricao" => null,// limitado a 140 24 | ]; 25 | 26 | $token = '';//seu token 27 | try { 28 | $bankingInter = new InterBanking($config); 29 | $bankingInter->setToken($token); 30 | 31 | echo ""; 32 | $consultarPix = $bankingInter->consultarPix($e2eId, $id, $filter); 33 | print_r($consultarPix); 34 | } catch (\Exception $e) { 35 | echo $e->getMessage(); 36 | } 37 | ``` -------------------------------------------------------------------------------- /docs/API PIX/WebHook/Consultar callbacks.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR CALLBACKS-INTER 2 | 3 | ## Consultar Callbacks 4 | Retorna as requisições de callbacks ordenadas pela data de disparo (decrescente).
5 | Permite consultar erros no envio de callbacks.
6 | Escopo requerido: webhook.read
7 | Rate limit: 10 chamadas por minuto 8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $filters = [ 20 | 'dataHoraInicio' => '2023-06-01T00:00Z',//obrigatorio 21 | 'dataHoraFim' => '2023-06-01T00:00Z',//obrigatorio 22 | 'pagina' => null, 23 | 'tamanhoPagina' => null, 24 | 'nossoNumero' => null, 25 | ]; 26 | 27 | $token = '';//seu token 28 | try { 29 | $bankingInter = new InterBanking($config); 30 | $bankingInter->setToken($token); 31 | 32 | echo ""; 33 | $response = $bankingInter->callbacksPix($filters); 34 | // print_r($response); 35 | } catch (\Exception $e) { 36 | echo $e->getMessage(); 37 | } 38 | ``` -------------------------------------------------------------------------------- /docs/API PIX/WebHook/Criar webhook.md: -------------------------------------------------------------------------------- 1 | # CRIAR WEBHOOK-INTER 2 | 3 | ## Como criar o webhook 4 | Crie um arquivo para receber as notificações, após informe a url desse arquivo para criar o webhook 5 | 6 | ## criando o webhook 7 | Você só pode ter 1 webhook 8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $chave '';//sua chave 20 | $token = '';//seu token 21 | try { 22 | $bankingInter = new InterBanking($config); 23 | $bankingInter->setToken($token); 24 | 25 | echo ""; 26 | $webhookUrl = 'https://www.seudominio/webhook/webhook.php';//recebe as notificações 27 | $criarWebHookPix = $bankingInter->criarWebHookPix($chave, $webhookUrl); 28 | print_r($criarWebHookPix); 29 | } catch (\Exception $e) { 30 | echo $e->getMessage(); 31 | } 32 | ``` -------------------------------------------------------------------------------- /docs/API PIX/WebHook/Excluir webhook.md: -------------------------------------------------------------------------------- 1 | # EXCLUIR WEBHOOK-INTER 2 | 3 | ## Excluindo o webhook cadastrado 4 | Exclui o webhook.
5 | Escopo requerido: webhook.write
6 | Rate limit: 10 chamadas por minuto 7 | 8 | ```php 9 | require '../../../vendor/autoload.php'; 10 | 11 | use Divulgueregional\ApiInterV2\InterBanking; 12 | 13 | $config = [ 14 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 15 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 16 | ]; 17 | 18 | $chave '';//sua chave 19 | $token = '';//seu token 20 | try { 21 | $bankingInter = new InterBanking($config); 22 | $bankingInter->setToken($token); 23 | 24 | echo ""; 25 | $excluirWebHookPix = $bankingInter->excluirWebHookPix($chave); 26 | print_r($excluirWebHookPix); 27 | } catch (\Exception $e) { 28 | echo $e->getMessage(); 29 | } 30 | ``` -------------------------------------------------------------------------------- /docs/API PIX/WebHook/Obter webhook cadastrado.md: -------------------------------------------------------------------------------- 1 | # OBTER WEBHOOK CADASTRADO-INTER 2 | 3 | ## Obtendo o webhook cadastrado 4 | Você só pode ter 1 webhook por chave
5 | Obtém o webhook cadastrado, caso exista.
6 | Escopo requerido: webhook.read
7 | Rate limit: 10 chamadas por minuto 8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $chave '';//sua chave 20 | $token = '';//seu token 21 | try { 22 | $bankingInter = new InterBanking($config); 23 | $bankingInter->setToken($token); 24 | 25 | echo ""; 26 | $obterWebHookPix = $bankingInter->obterWebHookPix($chave); 27 | print_r($obterWebHookPix); 28 | } catch (\Exception $e) { 29 | echo $e->getMessage(); 30 | } 31 | ``` -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # API-INTER 2 | 3 | ## Introdução 4 | 5 | Essa documentação visa auxiliar a implementação com a API do Banco Inter usando os padrões estabelecidos pelo banco, disponibilizando um conjunto de funcionalidade que permitem acesso seguro a dados e serviços bancários. Essa biblioteca pode ser facilmente integrada ao seu software e/ou ERP. 6 | 7 | ## PRIMEIRO PASSSO 8 | Acesse sua conta no site do Banco do Inter e gere uma aplicação para obter o certificado crt e key.
9 | Após gerar o certificado baixe ele e pegue o client_id e client_secret.
10 | Gere o token para poder utilizar as funcionalidades da API Banking e API cobranças 11 | 12 | 13 | # ENDPOINTS DA API DO BANCO INTER 14 | 15 | ## AUTENTICAÇÃO OAUTH 16 | 17 | Token 18 | - Obter token oAuth 19 | 20 | ## API Cobrança 21 | 22 | Boletos 23 | - Incluir boleto de cobrança. 24 | - Recuperar coleção de boletos 25 | - Recuperar sumário de boletos 26 | - Recuperar boleto detalhado 27 | - Recuperar boleto em PDF 28 | - Cancelar boleto 29 | 30 | Webhook 31 | - Criar webhook. 32 | - Obter webhook cadastrado 33 | - Excluir webhook 34 | - webhook.php 35 | 36 | ## API Banking 37 | 38 | Extrato 39 | - Consultar extrato 40 | - Consultar extrato em pdf 41 | 42 | Saldo 43 | - Consultar saldo 44 | 45 | Pagamento 46 | - Obter dados CIP. 47 | - Incluir pagamento com código de barras 48 | - Busca informações de pagamentos de boleto 49 | - Incluir pagamento de DARF 50 | - Busca informações de pagamentos DARF -------------------------------------------------------------------------------- /docs/TOKEN/README.md: -------------------------------------------------------------------------------- 1 | # TOKEN-INTER 2 | 3 | ## Como usar o TOKEN na APIs do Inter 4 | Para segurança, é necessário gerar um token. A partir da autorização via client credentials (clientId e clientSecret), que são obtidas no momento em que se cria uma aplicação e baixa o certificado e a chave. No detalhe da aplicação você terá o valor das credenciais. 5 | 6 | ## Erro Certificado 7 | Ao gerar o token pode gerar erro ao ler o certificado por causa do SSL
8 | Leia o documento SSL Erro 60 que vai auxiliá-lo para uma solução. -------------------------------------------------------------------------------- /docs/TOKEN/SSL Erro 60.md: -------------------------------------------------------------------------------- 1 | # Error 60: SSL 2 | 3 | ## cURL error 60: SSL certificate problem 4 | Esse erro é porque quando for verificado o certificado do Banco Inter, não é possível ler ele. Isso pode ocorrer porque o certificado não é válido ou sua máquina não posssui o SSL instalado para fazer essa leitura. 5 | 6 | ## SOLUÇÃO 1 7 | Coloque no config a variavel 'verify' => false 8 | 9 | ```php 10 | $config = [ 11 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 12 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 13 | 'verify' => false 14 | ]; 15 | ``` 16 | 17 | ## SOLUÇÃO 2 18 | Usando o arquivo cacert.pem disponível nessa sessão
19 | Salve o arquivo em sua pasta e direciona o caminho no config: 20 | 21 | ```php 22 | $config = [ 23 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 24 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 25 | 'verify' => 'C:\cacert.pem', 26 | ]; 27 | ``` 28 | Download do arquivo cacert.pem: https://curl.se/ca/cacert.pem 29 | 30 | ## OBSERVAÇÃO 31 | Caso informar verify só poderá informar 3 valores.
32 | 1- 'verify' => false
33 | 2- 'verify' => true
34 | 3- 'verify' => caminho do certificado cacert.pem -------------------------------------------------------------------------------- /docs/TOKEN/Token.md: -------------------------------------------------------------------------------- 1 | # TOKEN-INTER 2 | 3 | ## O Token deve ser gerado com certificado 4 | 5 | O tokem devem ser gerado com o uso do certificado, que foi obtido na criação da aplicação, caso contrário, o token gerado será inválido e seu sistema não conseguirá consumir os serviços do Inter. 6 | 7 | ## Certificado 8 | Faça login no site do Banco do Inter.
9 | Clique em conta digital e selecione Gestão de aplicações
10 | 11 | - Criar aplicação 12 | - baixe o certificado que vai estar zipado e descompacte para obter o certificado .crt e .key 13 | - Clique na seta esquerda ao lado do nome da aplicação e pegue ClientId e ClientSecret 14 | 15 | ## Geração do Token 16 | Obter token oAuth 17 | 18 | ```php 19 | require '../../../vendor/autoload.php'; 20 | 21 | use Divulgueregional\ApiInterV2\InterBanking; 22 | 23 | $config = [ 24 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 25 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 26 | ]; 27 | 28 | $client_id = '';//seu client_id 29 | $client_secret = '';//client_secret 30 | try { 31 | $bankingInter = new InterBanking($config); 32 | 33 | $token = $bankingInter->getToken($client_id, $client_secret); 34 | print_r($token); 35 | } catch (\Exception $e) { 36 | echo $e->getMessage(); 37 | } 38 | ``` 39 | 40 | ## Observação 41 | Armazene e controle o token da forma que achar mais conveniente para você
42 | Pois para poder usar as funcionalidades da API vai precisar desse token
43 | O Token tem uma válidade de 1 hora após ele ser gerado. 44 | 45 | ## Controle do Token 46 | Segue um exemplo simples que auxilia uma forma de verificar o tempo do token gerado através da session, mas você pode obtar e armazenar no banco e trazer as infomações desses dados no exemplo abaixo. 47 | 48 | ```php 49 | //obter o token 50 | $controlToken = controlToken();//função para analisar tempo do token 51 | 52 | if($controlToken=='gerarToken'){ 53 | $config = [ 54 | 'certificate' => '../cert/Inter_API_Certificado.crt', 55 | 'certificateKey' => '../cert/Inter_API_Chave.key', 56 | ]; 57 | 58 | $bankingInter = new InterBanking($config); 59 | 60 | $client_id = '';//seu client_id 61 | $client_secret = '';//client_secret 62 | $result = $bankingInter->getToken( $client_id, $client_secret); 63 | if (isset($result['access_token'])) { 64 | $_SESSION['tokenInter'] = []; 65 | $_SESSION['tokenInter']['data'] = date('Y-m-d'); 66 | $_SESSION['tokenInter']['hora'] = date('H:i:s'); 67 | $_SESSION['tokenInter']['token'] = $result['access_token']; 68 | 69 | $bankingInter->setToken($result['access_token']); 70 | } 71 | 72 | }else{ 73 | $token = $_SESSION['tokenInter']['token']; 74 | $bankingInter->setToken($token); 75 | } 76 | 77 | 78 | //funcão verifica válidade do token 79 | function controlToken() 80 | { 81 | date_default_timezone_set('America/Sao_Paulo'); 82 | if(isset($_SESSION['tokenInter']['token'])) 83 | { 84 | if ($_SESSION['tokenInter']['token'] != '') 85 | { 86 | //token gerado, conferir validade 87 | if ($_SESSION['tokenInter']['data'] == date('Y-m-d')) 88 | { 89 | //data válida, verificar horário 90 | $hora_decorridas = gmdate('H:i:s', strtotime(date('H:i:s')) - strtotime($_SESSION['tokenInter']['hora'])); 91 | $hora_min = explode(":", $hora_decorridas); 92 | if ($hora_min[0] == '00') 93 | { 94 | if ($hora_min[1] < '58') 95 | { 96 | return $_SESSION['tokenInter']['token']; 97 | } else { 98 | //passou de 56 min, gerar novo token 99 | return 'gerarToken'; 100 | } 101 | } else { 102 | //passou de 1 hora, gerar token 103 | return 'gerarToken'; 104 | } 105 | } else { 106 | //data inválida, gerar token 107 | return 'gerarToken'; 108 | } 109 | } else { 110 | return 'gerarToken'; 111 | } 112 | } else { 113 | return 'gerarToken'; 114 | } 115 | } 116 | 117 | ``` -------------------------------------------------------------------------------- /docs/WEBHOOK COBRANCA PIX/Consultar callbacks.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR CALLBACKS-INTER 2 | 3 | ## Consultar Callbacks 4 | 5 | Retorna as requisições de callbacks ordenado pela data de disparo (decrescente) 6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.read
10 | Rate limit: 10 chamadas por minuto 11 | 12 | ```php 13 | require '../../../vendor/autoload.php'; 14 | 15 | use Divulgueregional\ApiInterV2\InterBanking; 16 | 17 | $config = [ 18 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 19 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 20 | ]; 21 | 22 | $filters = [ 23 | 'dataHoraInicio' => '2023-06-01T00:00Z',//obrigatorio 24 | 'dataHoraFim' => '2023-06-01T00:00Z',//obrigatorio 25 | 'pagina' => null, 26 | 'tamanhoPagina' => null, 27 | 'codigoCobranca' => null, 28 | ]; 29 | 30 | $token = '';//seu token 31 | try { 32 | $bankingInter = new InterBanking($config); 33 | $bankingInter->setToken($token); 34 | 35 | echo ""; 36 | $response = $bankingInter->callbacksCobPIx($filters); 37 | // print_r($response); 38 | } catch (\Exception $e) { 39 | echo $e->getMessage(); 40 | } 41 | ``` 42 | -------------------------------------------------------------------------------- /docs/WEBHOOK COBRANCA PIX/Criar ou editar webhook.md: -------------------------------------------------------------------------------- 1 | # CRIAR/EDITAR WEBHOOK-INTER 2 | 3 | ## Como criar/editar o webhook 4 | 5 | Cria/edita o webhook. 6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.read
10 | Rate limit: 5 chamadas por minuto 11 | 12 | ## criando o webhook 13 | 14 | Você só pode ter 1 webhook 15 | 16 | ```php 17 | require '../../../vendor/autoload.php'; 18 | 19 | use Divulgueregional\ApiInterV2\InterBanking; 20 | 21 | $config = [ 22 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 23 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 24 | ]; 25 | 26 | $token = '';//seu token 27 | try { 28 | $bankingInter = new InterBanking($config); 29 | $bankingInter->setToken($token); 30 | 31 | echo ""; 32 | $webhookUrl = 'https://www.seudominio/webhook/webhook.php';//recebe as notificações 33 | $response = $bankingInter->criarWebhookCobPIx($webhookUrl); 34 | print_r($response); 35 | } catch (\Exception $e) { 36 | echo $e->getMessage(); 37 | } 38 | ``` 39 | -------------------------------------------------------------------------------- /docs/WEBHOOK COBRANCA PIX/Excluir webhook.md: -------------------------------------------------------------------------------- 1 | # EXCLUIR WEBHOOK-INTER 2 | 3 | ## Excluindo o webhook cadastrado 4 | 5 | Exclui o webhook. 6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.write
10 | Rate limit: 5 chamadas por minuto 11 | 12 | ```php 13 | require '../../../vendor/autoload.php'; 14 | 15 | use Divulgueregional\ApiInterV2\InterBanking; 16 | 17 | $config = [ 18 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 19 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 20 | ]; 21 | 22 | $token = '';//seu token 23 | try { 24 | $bankingInter = new InterBanking($config); 25 | $bankingInter->setToken($token); 26 | 27 | echo ""; 28 | $response = $bankingInter->excluirWebhookCobPIx(); 29 | print_r($response); 30 | } catch (\Exception $e) { 31 | echo $e->getMessage(); 32 | } 33 | ``` 34 | -------------------------------------------------------------------------------- /docs/WEBHOOK COBRANCA PIX/Obter webhook cadastrado.md: -------------------------------------------------------------------------------- 1 | # OBTER WEBHOOK CADASTRADO-INTER 2 | 3 | ## Obtendo o webhook cadastrado 4 | 5 | Obtém o webhook cadastrado, caso exista.
6 | Você só pode ter 1 webhook 7 | 8 | ## Escopo 9 | 10 | Escopo requerido: boleto-cobranca.write
11 | Rate limit: 5 chamadas por minuto 12 | 13 | ```php 14 | require '../../../vendor/autoload.php'; 15 | 16 | use Divulgueregional\ApiInterV2\InterBanking; 17 | 18 | $config = [ 19 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 20 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 21 | ]; 22 | 23 | $token = '';//seu token 24 | try { 25 | $bankingInter = new InterBanking($config); 26 | $bankingInter->setToken($token); 27 | 28 | echo ""; 29 | $response = $bankingInter->obterWebhookCadastradoCobPIx(); 30 | print_r($response); 31 | } catch (\Exception $e) { 32 | echo $e->getMessage(); 33 | } 34 | ``` 35 | -------------------------------------------------------------------------------- /docs/WEBHOOK COBRANCA PIX/README.md: -------------------------------------------------------------------------------- 1 | # WEBHOOK-INTER 2 | 3 | ## O que pode fazer com webhook 4 | 5 | Cria/edita o webhook cobrança pix. 6 | 7 | ## Escopo 8 | 9 | Escopo requerido: boleto-cobranca.read
10 | Rate limit: 5 chamadas por minuto 11 | 12 | Suas funcionalidades são: 13 | 14 | - Criar webhook. 15 | - Obter webhook cadastrado 16 | - Excluir webhook 17 | - webhook.php 18 | 19 | ## Notificações 20 | 21 | Irá receber notificações do boleto gerado, cancelamento e pagamento
22 | -------------------------------------------------------------------------------- /docs/WEBHOOK/Consultar callbacks.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR CALLBACKS-INTER 2 | 3 | ## Consultar Callbacks 4 | Retorna as requisições de callbacks ordenadas pela data de disparo (decrescente).
5 | Permite consultar erros no envio de callbacks.
6 | Escopo requerido: boleto-cobranca.read
7 | Rate limit: 10 chamadas por minuto 8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $filters = [ 20 | 'dataHoraInicio' => '2023-06-01T00:00Z',//obrigatorio 21 | 'dataHoraFim' => '2023-06-01T00:00Z',//obrigatorio 22 | 'pagina' => null, 23 | 'tamanhoPagina' => null, 24 | 'nossoNumero' => null, 25 | ]; 26 | 27 | $token = '';//seu token 28 | try { 29 | $bankingInter = new InterBanking($config); 30 | $bankingInter->setToken($token); 31 | 32 | echo ""; 33 | $response = $bankingInter->callbacks($filters); 34 | // print_r($response); 35 | } catch (\Exception $e) { 36 | echo $e->getMessage(); 37 | } 38 | ``` -------------------------------------------------------------------------------- /docs/WEBHOOK/Criar webhook.md: -------------------------------------------------------------------------------- 1 | # CRIAR WEBHOOK-INTER 2 | 3 | ## Como criar o webhook 4 | Crie um arquivo para receber as notificações, após informe a url desse arquivo para criar o webhook 5 | 6 | ## criando o webhook 7 | Você só pode ter 1 webhook 8 | 9 | ```php 10 | require '../../../vendor/autoload.php'; 11 | 12 | use Divulgueregional\ApiInterV2\InterBanking; 13 | 14 | $config = [ 15 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 16 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 17 | ]; 18 | 19 | $token = '';//seu token 20 | try { 21 | $bankingInter = new InterBanking($config); 22 | $bankingInter->setToken($token); 23 | 24 | echo ""; 25 | $webhookUrl = 'https://www.seudominio/webhook/webhook.php';//recebe as notificações 26 | $criarWebhook = $bankingInter->criarWebhook($webhookUrl); 27 | print_r($criarWebhook); 28 | } catch (\Exception $e) { 29 | echo $e->getMessage(); 30 | } 31 | ``` -------------------------------------------------------------------------------- /docs/WEBHOOK/Excluir webhook.md: -------------------------------------------------------------------------------- 1 | # EXCLUIR WEBHOOK-INTER 2 | 3 | ## Excluindo o webhook cadastrado 4 | 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | 9 | use Divulgueregional\ApiInterV2\InterBanking; 10 | 11 | $config = [ 12 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 13 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 14 | ]; 15 | 16 | $token = '';//seu token 17 | try { 18 | $bankingInter = new InterBanking($config); 19 | $bankingInter->setToken($token); 20 | 21 | echo ""; 22 | $excluirWebhook = $bankingInter->excluirWebhook(); 23 | print_r($excluirWebhook); 24 | } catch (\Exception $e) { 25 | echo $e->getMessage(); 26 | } 27 | ``` -------------------------------------------------------------------------------- /docs/WEBHOOK/Obter webhook cadastrado.md: -------------------------------------------------------------------------------- 1 | # OBTER WEBHOOK CADASTRADO-INTER 2 | 3 | ## Obtendo o webhook cadastrado 4 | Você só pode ter 1 webhook 5 | 6 | ```php 7 | require '../../../vendor/autoload.php'; 8 | 9 | use Divulgueregional\ApiInterV2\InterBanking; 10 | 11 | $config = [ 12 | 'certificate' => '../cert/Inter_API_Certificado.crt',//local do certificado crt 13 | 'certificateKey' => '../cert/Inter_API_Chave.key',//local do certificado key 14 | ]; 15 | 16 | $token = '';//seu token 17 | try { 18 | $bankingInter = new InterBanking($config); 19 | $bankingInter->setToken($token); 20 | 21 | echo ""; 22 | $obterWebhookCadastrado = $bankingInter->obterWebhookCadastrado(); 23 | print_r($obterWebhookCadastrado); 24 | } catch (\Exception $e) { 25 | echo $e->getMessage(); 26 | } 27 | ``` -------------------------------------------------------------------------------- /docs/WEBHOOK/README.md: -------------------------------------------------------------------------------- 1 | # WEBHOOK-INTER 2 | 3 | ## O que pode fazer com webhook 4 | Crie um webhook para receber em tempo real os eventos de pagamento ou cancelamento de uma cobrança, de um débito ou crédito em conta, da confirmação de pagamentos e muito mais! 5 | 6 | Suas funcionalidades são: 7 | 8 | - Criar webhook. 9 | - Obter webhook cadastrado 10 | - Excluir webhook 11 | - webhook.php -------------------------------------------------------------------------------- /docs/WEBHOOK/Webhook.php.md: -------------------------------------------------------------------------------- 1 | # ARQUIVO QUE RECEBE AS NOTIFICAÇÕES 2 | 3 | ## Como tratar o recebimento 4 | Arquivo webhook.php 5 | 6 | ```php 7 | nossoNumero; 13 | $situacao = $retorno->situacao; 14 | 15 | //gravando na pasta um arquivo log com o retorno 16 | $aleatorio = rand(1, 500); 17 | $dataHora = date('Y-m-d H:s:i'); 18 | $fp = fopen("logWebHookInter-{$aleatorio}-{$dataHora}.log", "a"); 19 | fwrite($fp, $Post_Recebe); 20 | fclose($fp); 21 | 22 | 23 | ``` -------------------------------------------------------------------------------- /src/InterBanking.php: -------------------------------------------------------------------------------- 1 | client = new Client([ 19 | 'base_uri' => 'https://cdpj.partners.bancointer.com.br', 20 | ]); 21 | 22 | if (isset($config['verify'])) { 23 | if ($config['verify'] == '') { 24 | $verify = false; 25 | } elseif ($config['verify'] != '' && $config['verify'] != 1) { 26 | $verify = $config['verify']; 27 | } else { 28 | $verify = $config['certificate']; 29 | } 30 | } else { 31 | $verify = $config['certificate']; 32 | } 33 | 34 | $this->optionsRequest = [ 35 | 'headers' => [ 36 | 'Accept' => 'application/json' 37 | ], 38 | 'cert' => $config['certificate'], 39 | 'verify' => $verify, 40 | 'ssl_key' => $config['certificateKey'], 41 | ]; 42 | } 43 | 44 | ############################################## 45 | ######## TOKEN ############################### 46 | ############################################## 47 | public function getToken(string $client_id, string $client_secret, $scope = 'extrato.read boleto-cobranca.read boleto-cobranca.write pagamento-boleto.read pagamento-boleto.write pagamento-pix.write cob.write cob.read pix.read pix.write webhook.write webhook.read cobv.write cobv.write cobv.read') 48 | { 49 | $options = $this->optionsRequest; 50 | $options['form_params'] = [ 51 | 'client_id' => $client_id, 52 | 'client_secret' => $client_secret, 53 | 'grant_type' => 'client_credentials', 54 | 'scope' => $scope 55 | ]; 56 | 57 | try { 58 | $response = $this->client->request( 59 | 'POST', 60 | '/oauth/v2/token', 61 | $options 62 | ); 63 | 64 | return (array) json_decode($response->getBody()->getContents()); 65 | } catch (ClientException $e) { 66 | return $this->parseResultClient($e); 67 | } catch (\Exception $e) { 68 | $response = $e->getMessage(); 69 | return ['error' => $response]; 70 | } 71 | } 72 | 73 | public function setToken(string $token) 74 | { 75 | $this->token = $token; 76 | } 77 | ############################################## 78 | ######## FIM TOKEN ########################### 79 | ############################################## 80 | 81 | ############################################## 82 | ######## BANKING ############################# 83 | ############################################## 84 | public function checkSaldo($filters) 85 | { 86 | $options = $this->optionsRequest; 87 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 88 | $options['query'] = $filters; 89 | 90 | try { 91 | $response = $this->client->request( 92 | 'GET', 93 | "/banking/v2/saldo", 94 | $options 95 | ); 96 | 97 | $statusCode = $response->getStatusCode(); 98 | $result = json_decode($response->getBody()->getContents()); 99 | return array('status' => $statusCode, 'response' => $result); 100 | } catch (ClientException $e) { 101 | return $this->parseResultClient($e); 102 | } catch (\Exception $e) { 103 | $response = $e->getMessage(); 104 | return ['error' => "Falha ao buscar saldo: {$response}"]; 105 | } 106 | } 107 | 108 | public function checkExtrato($filters) 109 | { 110 | $options = $this->optionsRequest; 111 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 112 | $options['query'] = $filters; 113 | 114 | try { 115 | $response = $this->client->request( 116 | 'GET', 117 | "/banking/v2/extrato", 118 | $options 119 | ); 120 | 121 | $statusCode = $response->getStatusCode(); 122 | $result = json_decode($response->getBody()->getContents()); 123 | return array('status' => $statusCode, 'response' => $result); 124 | } catch (ClientException $e) { 125 | return $this->parseResultClient($e); 126 | } catch (\Exception $e) { 127 | $response = $e->getMessage(); 128 | return ['error' => "Falha ao consultar o extrato: {$response}"]; 129 | } 130 | } 131 | 132 | public function checkExtratoPDF($filters) 133 | { 134 | $options = $this->optionsRequest; 135 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 136 | $options['query'] = $filters; 137 | 138 | try { 139 | $response = $this->client->request( 140 | 'GET', 141 | "/banking/v2/extrato/exportar", 142 | $options 143 | ); 144 | 145 | $statusCode = $response->getStatusCode(); 146 | $result = json_decode($response->getBody()->getContents()); 147 | return array('status' => $statusCode, 'response' => $result); 148 | } catch (ClientException $e) { 149 | return $this->parseResultClient($e); 150 | } catch (\Exception $e) { 151 | $response = $e->getMessage(); 152 | return ['error' => "Falha ao buscar Extrato em PDF: {$response}"]; 153 | } 154 | } 155 | 156 | public function consultarExtratoEnriquecido($filters) 157 | { 158 | $options = $this->optionsRequest; 159 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 160 | $options['query'] = $filters; 161 | 162 | try { 163 | $response = $this->client->request( 164 | 'GET', 165 | "/banking/v2/extrato/completo", 166 | $options 167 | ); 168 | 169 | $statusCode = $response->getStatusCode(); 170 | $result = json_decode($response->getBody()->getContents()); 171 | return array('status' => $statusCode, 'response' => $result); 172 | } catch (ClientException $e) { 173 | return $this->parseResultClient($e); 174 | } catch (\Exception $e) { 175 | $response = $e->getMessage(); 176 | return ['error' => "Falha ao consultar o extrato Completo: {$response}"]; 177 | } 178 | } 179 | 180 | public function IncluirPix($filters) 181 | { 182 | $options = $this->optionsRequest; 183 | $options['headers']['Content-Type'] = 'application/json'; 184 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 185 | $options['body'] = json_encode($filters); 186 | try { 187 | $response = $this->client->request( 188 | 'POST', 189 | "/banking/v2/pix", 190 | $options 191 | ); 192 | 193 | $statusCode = $response->getStatusCode(); 194 | $result = json_decode($response->getBody()->getContents()); 195 | return array('status' => $statusCode, 'response' => $result); 196 | } catch (ClientException $e) { 197 | return $this->parseResultClient($e); 198 | } catch (\Exception $e) { 199 | $response = $e->getMessage(); 200 | return ['error' => "Falha ao obter dados CIP: {$response}"]; 201 | } 202 | } 203 | ############################################## 204 | ######## FIM BANKING ######################### 205 | ############################################## 206 | 207 | 208 | ############################################## 209 | ######## COBRANÇAS ########################### 210 | ############################################## 211 | public function boletoDetalhado(string $nossoNumero) 212 | { 213 | $options = $this->optionsRequest; 214 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 215 | 216 | try { 217 | $response = $this->client->request( 218 | 'GET', 219 | "/cobranca/v2/boletos/{$nossoNumero}", 220 | $options 221 | ); 222 | 223 | $statusCode = $response->getStatusCode(); 224 | $result = json_decode($response->getBody()->getContents()); 225 | return array('status' => $statusCode, 'response' => $result); 226 | } catch (ClientException $e) { 227 | return $this->parseResultClient($e); 228 | } catch (\Exception $e) { 229 | $response = $e->getMessage(); 230 | return ['error' => "Falha ao buscar boleto Detalhado: {$response}"]; 231 | } 232 | } 233 | 234 | public function boletoPDF(string $nossoNumero) 235 | { 236 | $options = $this->optionsRequest; 237 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 238 | try { 239 | $response = $this->client->request( 240 | 'GET', 241 | "/cobranca/v2/boletos/{$nossoNumero}/pdf", 242 | $options 243 | ); 244 | 245 | $statusCode = $response->getStatusCode(); 246 | $result = json_decode($response->getBody()->getContents()); 247 | return array('status' => $statusCode, 'response' => $result); 248 | } catch (ClientException $e) { 249 | return $this->parseResultClient($e); 250 | } catch (\Exception $e) { 251 | $response = $e->getMessage(); 252 | return ['error' => "Falha ao buscar boleto em PDF: {$response}"]; 253 | } 254 | } 255 | 256 | public function cancelarBoleto(string $nossoNumero, string $motivo) 257 | { 258 | $options = $this->optionsRequest; 259 | $options['body'] = json_encode(['motivoCancelamento' => $motivo]); 260 | $options['headers']['Content-Type'] = 'application/json'; 261 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 262 | try { 263 | $response = $this->client->request( 264 | 'POST', 265 | "/cobranca/v2/boletos/{$nossoNumero}/cancelar", 266 | $options 267 | ); 268 | 269 | $statusCode = $response->getStatusCode(); 270 | $result = json_decode($response->getBody()->getContents()); 271 | return array('status' => $statusCode, 'response' => $result); 272 | } catch (ClientException $e) { 273 | return $this->parseResultClient($e); 274 | } catch (\Exception $e) { 275 | $response = $e->getMessage(); 276 | return ['error' => "Falha ao cancelar Boleto: {$response}"]; 277 | } 278 | } 279 | 280 | public function sumarioBoletos($filters) 281 | { 282 | $options = $this->optionsRequest; 283 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 284 | $options['query'] = $filters; 285 | try { 286 | $response = $this->client->request( 287 | 'GET', 288 | "/cobranca/v2/boletos/sumario", 289 | $options 290 | ); 291 | 292 | $statusCode = $response->getStatusCode(); 293 | $result = json_decode($response->getBody()->getContents()); 294 | return array('status' => $statusCode, 'response' => $result); 295 | } catch (ClientException $e) { 296 | return $this->parseResultClient($e); 297 | } catch (\Exception $e) { 298 | $response = $e->getMessage(); 299 | return ['error' => "Falha ao consultar o sumário: {$response}"]; 300 | } 301 | } 302 | 303 | public function colecaoBoletos($filters) 304 | { 305 | $options = $this->optionsRequest; 306 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 307 | $options['query'] = $filters; 308 | try { 309 | $response = $this->client->request( 310 | 'GET', 311 | "/cobranca/v2/boletos", 312 | $options 313 | ); 314 | 315 | $statusCode = $response->getStatusCode(); 316 | $result = json_decode($response->getBody()->getContents()); 317 | return array('status' => $statusCode, 'response' => $result); 318 | } catch (ClientException $e) { 319 | return $this->parseResultClient($e); 320 | } catch (\Exception $e) { 321 | $response = $e->getMessage(); 322 | return ['error' => "Falha ao consultar coleção de boletos: {$response}"]; 323 | } 324 | } 325 | 326 | public function incluirBoletoCobranca($dadosBoleto) 327 | { 328 | $options = $this->optionsRequest; 329 | $options['body'] = json_encode($dadosBoleto); 330 | $options['headers']['Content-Type'] = 'application/json'; 331 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 332 | try { 333 | $response = $this->client->request( 334 | 'POST', 335 | '/cobranca/v2/boletos', 336 | $options 337 | ); 338 | $statusCode = $response->getStatusCode(); 339 | $result = json_decode($response->getBody()->getContents()); 340 | return array('status' => $statusCode, 'response' => $result); 341 | } catch (ClientException $e) { 342 | return $this->parseResultClient($e); 343 | } catch (\Exception $e) { 344 | $response = $e->getMessage(); 345 | return ['error' => "Falha ao incluir Boleto Cobranca: {$response}"]; 346 | } 347 | } 348 | 349 | ############################################## 350 | ######## WEBHOOK ############################# 351 | ############################################## 352 | public function criarWebhook(string $webhookUrl) 353 | { 354 | $options = $this->optionsRequest; 355 | $options['body'] = json_encode(['webhookUrl' => $webhookUrl]); 356 | $options['headers']['Content-Type'] = 'application/json'; 357 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 358 | try { 359 | $response = $this->client->request( 360 | 'PUT', 361 | "/cobranca/v2/boletos/webhook", 362 | $options 363 | ); 364 | $statusCode = $response->getStatusCode(); 365 | $result = json_decode($response->getBody()->getContents()); 366 | return array('status' => $statusCode, 'response' => $result); 367 | } catch (ClientException $e) { 368 | return $this->parseResultClient($e); 369 | } catch (\Exception $e) { 370 | $response = $e->getMessage(); 371 | return ['error' => "Falha ao criar Webhook: {$response}"]; 372 | } 373 | } 374 | 375 | public function obterWebhookCadastrado() 376 | { 377 | $options = $this->optionsRequest; 378 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 379 | try { 380 | $response = $this->client->request( 381 | 'GET', 382 | "/cobranca/v2/boletos/webhook", 383 | $options 384 | ); 385 | 386 | $statusCode = $response->getStatusCode(); 387 | $result = json_decode($response->getBody()->getContents()); 388 | return array('status' => $statusCode, 'response' => $result); 389 | } catch (ClientException $e) { 390 | return $this->parseResultClient($e); 391 | } catch (\Exception $e) { 392 | $response = $e->getMessage(); 393 | return ['error' => "Falha ao obter Webhook Cadastrado: {$response}"]; 394 | } 395 | } 396 | 397 | public function excluirWebhook() 398 | { 399 | $options = $this->optionsRequest; 400 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 401 | try { 402 | $response = $this->client->request( 403 | 'DELETE', 404 | "/cobranca/v2/boletos/webhook", 405 | $options 406 | ); 407 | 408 | $statusCode = $response->getStatusCode(); 409 | $result = json_decode($response->getBody()->getContents()); 410 | return array('status' => $statusCode, 'response' => $result); 411 | } catch (ClientException $e) { 412 | return $this->parseResultClient($e); 413 | } catch (\Exception $e) { 414 | $response = $e->getMessage(); 415 | return ['error' => "Falha ao excluir Webhook: {$response}"]; 416 | } 417 | } 418 | 419 | public function callbacks($filters) 420 | { 421 | $options = $this->optionsRequest; 422 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 423 | $options['query'] = $filters; 424 | 425 | try { 426 | $response = $this->client->request( 427 | 'GET', 428 | "/cobranca/v2/boletos/webhook/callbacks", 429 | $options 430 | ); 431 | 432 | $statusCode = $response->getStatusCode(); 433 | $result = json_decode($response->getBody()->getContents()); 434 | return array('status' => $statusCode, 'response' => $result); 435 | } catch (ClientException $e) { 436 | return $this->parseResultClient($e); 437 | } catch (\Exception $e) { 438 | $response = $e->getMessage(); 439 | return ['error' => "Falha ao buscar Extrato em PDF: {$response}"]; 440 | } 441 | } 442 | 443 | ############################################## 444 | ######## WEBHOOK COBRANÇA PIX ################ 445 | ############################################## 446 | public function criarWebhookCobPIx(string $webhookUrl) 447 | { 448 | $options = $this->optionsRequest; 449 | $options['body'] = json_encode(['webhookUrl' => $webhookUrl]); 450 | $options['headers']['Content-Type'] = 'application/json'; 451 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 452 | try { 453 | $response = $this->client->request( 454 | 'PUT', 455 | "/cobranca/v3/cobrancas/webhook", 456 | $options 457 | ); 458 | $statusCode = $response->getStatusCode(); 459 | $result = json_decode($response->getBody()->getContents()); 460 | return array('status' => $statusCode, 'response' => $result); 461 | } catch (ClientException $e) { 462 | return $this->parseResultClient($e); 463 | } catch (\Exception $e) { 464 | $response = $e->getMessage(); 465 | return ['error' => "Falha ao criar Webhook: {$response}"]; 466 | } 467 | } 468 | 469 | public function obterWebhookCadastradoCobPIx() 470 | { 471 | $options = $this->optionsRequest; 472 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 473 | try { 474 | $response = $this->client->request( 475 | 'GET', 476 | "/cobranca/v3/cobrancas/webhook", 477 | $options 478 | ); 479 | $statusCode = $response->getStatusCode(); 480 | $result = json_decode($response->getBody()->getContents()); 481 | return array('status' => $statusCode, 'response' => $result); 482 | } catch (ClientException $e) { 483 | return $this->parseResultClient($e); 484 | } catch (\Exception $e) { 485 | $response = $e->getMessage(); 486 | return ['error' => "Falha ao obter Webhook Cadastrado: {$response}"]; 487 | } 488 | } 489 | 490 | public function excluirWebhookCobPIx() 491 | { 492 | $options = $this->optionsRequest; 493 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 494 | $options['headers']['Accept'] = "application/problem+json"; 495 | try { 496 | $response = $this->client->request( 497 | 'DELETE', 498 | "/cobranca/v3/cobrancas/webhook", 499 | $options 500 | ); 501 | $statusCode = $response->getStatusCode(); 502 | $result = json_decode($response->getBody()->getContents()); 503 | return array('status' => $statusCode, 'response' => $result); 504 | } catch (ClientException $e) { 505 | return $this->parseResultClient($e); 506 | } catch (\Exception $e) { 507 | $response = $e->getMessage(); 508 | return ['error' => "Falha ao excluir Webhook: {$response}"]; 509 | } 510 | } 511 | 512 | public function callbacksCobPIx($filters) 513 | { 514 | $options = $this->optionsRequest; 515 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 516 | $options['query'] = $filters; 517 | 518 | try { 519 | $response = $this->client->request( 520 | 'GET', 521 | "/cobranca/v3/cobrancas/webhook/callbacks", 522 | $options 523 | ); 524 | $statusCode = $response->getStatusCode(); 525 | $result = json_decode($response->getBody()->getContents()); 526 | return array('status' => $statusCode, 'response' => $result); 527 | } catch (ClientException $e) { 528 | return $this->parseResultClient($e); 529 | } catch (\Exception $e) { 530 | $response = $e->getMessage(); 531 | return ['error' => "Falha ao buscar Extrato em PDF: {$response}"]; 532 | } 533 | } 534 | 535 | ############################################## 536 | ######## COBRANÇAS BOLETO PIX ################ 537 | ############################################## 538 | public function ObterCobrancaPix(string $codigoCobranca) 539 | { 540 | $options = $this->optionsRequest; 541 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 542 | 543 | try { 544 | $response = $this->client->request( 545 | 'GET', 546 | "/cobranca/v3/cobrancas/{$codigoCobranca}", 547 | $options 548 | ); 549 | 550 | $statusCode = $response->getStatusCode(); 551 | $result = json_decode($response->getBody()->getContents()); 552 | return array('status' => $statusCode, 'response' => $result); 553 | } catch (ClientException $e) { 554 | return $this->parseResultClient($e); 555 | } catch (\Exception $e) { 556 | $response = $e->getMessage(); 557 | return ['error' => "Falha ao Obter Cobranca Pix: {$response}"]; 558 | } 559 | } 560 | 561 | public function boletoPDFPix(string $codigoCobranca) 562 | { 563 | $options = $this->optionsRequest; 564 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 565 | try { 566 | $response = $this->client->request( 567 | 'GET', 568 | "/cobranca/v3/cobrancas/{$codigoCobranca}/pdf", 569 | $options 570 | ); 571 | 572 | $statusCode = $response->getStatusCode(); 573 | $result = json_decode($response->getBody()->getContents()); 574 | return array('status' => $statusCode, 'response' => $result); 575 | } catch (ClientException $e) { 576 | return $this->parseResultClient($e); 577 | } catch (\Exception $e) { 578 | $response = $e->getMessage(); 579 | return ['error' => "Falha ao buscar boleto em PDF: {$response}"]; 580 | } 581 | } 582 | 583 | public function cancelarBoletoPix(string $codigoCobranca, string $motivo) 584 | { 585 | $options = $this->optionsRequest; 586 | $options['body'] = json_encode(['motivoCancelamento' => $motivo]); 587 | $options['headers']['Content-Type'] = 'application/json'; 588 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 589 | try { 590 | $response = $this->client->request( 591 | 'POST', 592 | "/cobranca/v3/cobrancas/{$codigoCobranca}/cancelar", 593 | $options 594 | ); 595 | $statusCode = $response->getStatusCode(); 596 | $result = json_decode($response->getBody()->getContents()); 597 | return array('status' => $statusCode, 'response' => $result); 598 | } catch (ClientException $e) { 599 | return $this->parseResultClient($e); 600 | } catch (\Exception $e) { 601 | $response = $e->getMessage(); 602 | return ['error' => "Falha ao cancelar Boleto: {$response}"]; 603 | } 604 | } 605 | 606 | public function sumarioBoletosPix($filters) 607 | { 608 | $options = $this->optionsRequest; 609 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 610 | $options['query'] = $filters; 611 | try { 612 | $response = $this->client->request( 613 | 'GET', 614 | "/cobranca/v3/cobrancas/sumario", 615 | $options 616 | ); 617 | 618 | $statusCode = $response->getStatusCode(); 619 | $result = json_decode($response->getBody()->getContents()); 620 | return array('status' => $statusCode, 'response' => $result); 621 | } catch (ClientException $e) { 622 | return $this->parseResultClient($e); 623 | } catch (\Exception $e) { 624 | $response = $e->getMessage(); 625 | return ['error' => "Falha ao consultar o sumário: {$response}"]; 626 | } 627 | } 628 | 629 | public function colecaoBoletosPix($filters) 630 | { 631 | $options = $this->optionsRequest; 632 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 633 | $options['query'] = $filters; 634 | try { 635 | $response = $this->client->request( 636 | 'GET', 637 | "/cobranca/v3/cobrancas", 638 | $options 639 | ); 640 | 641 | $statusCode = $response->getStatusCode(); 642 | $result = json_decode($response->getBody()->getContents()); 643 | return array('status' => $statusCode, 'response' => $result); 644 | } catch (ClientException $e) { 645 | return $this->parseResultClient($e); 646 | } catch (\Exception $e) { 647 | $response = $e->getMessage(); 648 | return ['error' => "Falha ao consultar coleção de boletos: {$response}"]; 649 | } 650 | } 651 | 652 | public function incluirBoletoCobrancaPix($dadosBoleto) 653 | { 654 | $options = $this->optionsRequest; 655 | $options['body'] = json_encode($dadosBoleto); 656 | $options['headers']['Content-Type'] = 'application/json'; 657 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 658 | try { 659 | $response = $this->client->request( 660 | 'POST', 661 | '/cobranca/v3/cobrancas', 662 | $options 663 | ); 664 | $statusCode = $response->getStatusCode(); 665 | $result = json_decode($response->getBody()->getContents()); 666 | return array('status' => $statusCode, 'response' => $result); 667 | } catch (ClientException $e) { 668 | return $this->parseResultClient($e); 669 | } catch (\Exception $e) { 670 | $response = $e->getMessage(); 671 | return ['error' => "Falha ao incluir Boleto Cobranca pix: {$response}"]; 672 | } 673 | } 674 | 675 | ############################################## 676 | ######## PAGAMENTOS ########################## 677 | ############################################## 678 | public function obterDadosCIP($codBarrasLinhaDigitavel) 679 | { 680 | $codBarrasLinhaDigitavel = $this->soNumeros($codBarrasLinhaDigitavel); 681 | $options = $this->optionsRequest; 682 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 683 | try { 684 | $response = $this->client->request( 685 | 'GET', 686 | "/banking/v2/pagamento/{$codBarrasLinhaDigitavel}", 687 | $options 688 | ); 689 | 690 | $statusCode = $response->getStatusCode(); 691 | $result = json_decode($response->getBody()->getContents()); 692 | return array('status' => $statusCode, 'response' => $result); 693 | } catch (ClientException $e) { 694 | return $this->parseResultClient($e); 695 | } catch (\Exception $e) { 696 | $response = $e->getMessage(); 697 | return ['error' => "Falha ao obter dados CIP: {$response}"]; 698 | } 699 | } 700 | 701 | public function pagarBoleto($filters) 702 | { 703 | $options = $this->optionsRequest; 704 | $options['body'] = json_encode($filters); 705 | $options['headers']['Content-Type'] = 'application/json'; 706 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 707 | try { 708 | $response = $this->client->request( 709 | 'POST', 710 | "/banking/v2/pagamento", 711 | $options 712 | ); 713 | 714 | $statusCode = $response->getStatusCode(); 715 | $result = json_decode($response->getBody()->getContents()); 716 | return array('status' => $statusCode, 'response' => $result); 717 | } catch (ClientException $e) { 718 | return $this->parseResultClient($e); 719 | } catch (\Exception $e) { 720 | $response = $e->getMessage(); 721 | return ['error' => "Falha ao obter dados CIP: {$response}"]; 722 | } 723 | } 724 | 725 | public function informacaoPagamentoBoleto($filters) 726 | { 727 | $options = $this->optionsRequest; 728 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 729 | $options['query'] = $filters; 730 | 731 | try { 732 | $response = $this->client->request( 733 | 'GET', 734 | "/banking/v2/pagamento", 735 | $options 736 | ); 737 | 738 | $statusCode = $response->getStatusCode(); 739 | $result = json_decode($response->getBody()->getContents()); 740 | return array('status' => $statusCode, 'response' => $result); 741 | } catch (ClientException $e) { 742 | return $this->parseResultClient($e); 743 | } catch (\Exception $e) { 744 | $response = $e->getMessage(); 745 | return ['error' => "Falha ao buscar saldo: {$response}"]; 746 | } 747 | } 748 | 749 | //essa função foi retirada 750 | public function recuperarComprovantePDF($codBarrasLinhaDigitavel) 751 | { 752 | $codBarrasLinhaDigitavel = $this->soNumeros($codBarrasLinhaDigitavel); 753 | $options = $this->optionsRequest; 754 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 755 | try { 756 | $response = $this->client->request( 757 | 'GET', 758 | "/banking/v2/pagamento/comprovante/{$codBarrasLinhaDigitavel}", 759 | $options 760 | ); 761 | 762 | $statusCode = $response->getStatusCode(); 763 | $result = json_decode($response->getBody()->getContents()); 764 | return array('status' => $statusCode, 'response' => $result); 765 | } catch (ClientException $e) { 766 | return $this->parseResultClient($e); 767 | } catch (\Exception $e) { 768 | $response = $e->getMessage(); 769 | return ['error' => "Falha ao obter dados CIP: {$response}"]; 770 | } 771 | } 772 | 773 | public function pagarDARF($filters) 774 | { 775 | $options = $this->optionsRequest; 776 | $options['body'] = json_encode($filters); 777 | $options['headers']['Content-Type'] = 'application/json'; 778 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 779 | try { 780 | $response = $this->client->request( 781 | 'POST', 782 | "/banking/v2/pagamento/darf", 783 | $options 784 | ); 785 | 786 | $statusCode = $response->getStatusCode(); 787 | $result = json_decode($response->getBody()->getContents()); 788 | return array('status' => $statusCode, 'response' => $result); 789 | } catch (ClientException $e) { 790 | return $this->parseResultClient($e); 791 | } catch (\Exception $e) { 792 | $response = $e->getMessage(); 793 | return ['error' => "Falha ao obter dados CIP: {$response}"]; 794 | } 795 | } 796 | 797 | public function informacaoPagamentoDARF($filters) 798 | { 799 | $options = $this->optionsRequest; 800 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 801 | $options['query'] = $filters; 802 | 803 | try { 804 | $response = $this->client->request( 805 | 'GET', 806 | "/banking/v2/pagamento/darf", 807 | $options 808 | ); 809 | 810 | $statusCode = $response->getStatusCode(); 811 | $result = json_decode($response->getBody()->getContents()); 812 | return array('status' => $statusCode, 'response' => $result); 813 | } catch (ClientException $e) { 814 | return $this->parseResultClient($e); 815 | } catch (\Exception $e) { 816 | $response = $e->getMessage(); 817 | return ['error' => "Falha ao buscar saldo: {$response}"]; 818 | } 819 | } 820 | 821 | public function cancelarAgendamentoPagamento(string $codigoTransacao) 822 | { 823 | $options = $this->optionsRequest; 824 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 825 | try { 826 | $response = $this->client->request( 827 | 'DELETE', 828 | "/banking/v2/pagamento/{$codigoTransacao}", 829 | $options 830 | ); 831 | 832 | $statusCode = $response->getStatusCode(); 833 | $result = json_decode($response->getBody()->getContents()); 834 | return array('status' => $statusCode, 'response' => $result); 835 | } catch (ClientException $e) { 836 | return $this->parseResultClient($e); 837 | } catch (\Exception $e) { 838 | $response = $e->getMessage(); 839 | return ['error' => "Falha ao cancelar agendamento: {$response}"]; 840 | } 841 | } 842 | 843 | ############################################## 844 | ######## PIX - COBRANÇA IMEDIATA ############# 845 | ############################################## 846 | // REQUEST BODY SCHEMA 847 | public function criarCobrancaImediata($txid, $filter) 848 | { 849 | $options = $this->optionsRequest; 850 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 851 | $options['headers']['Content-Type'] = 'application/json'; 852 | $options['body'] = json_encode($filter); 853 | try { 854 | $response = $this->client->request( 855 | 'PUT', 856 | "/pix/v2/cob/{$txid}", 857 | $options 858 | ); 859 | 860 | $statusCode = $response->getStatusCode(); 861 | $result = json_decode($response->getBody()->getContents()); 862 | return array('status' => $statusCode, 'response' => $result); 863 | } catch (ClientException $e) { 864 | return $this->parseResultClient($e); 865 | } catch (\Exception $e) { 866 | $response = $e->getMessage(); 867 | return ['error' => "Falha a Criar Cobranca imediata: {$response}"]; 868 | } 869 | } 870 | 871 | // REQUEST BODY SCHEMA 872 | public function atualizarCobrancaImediata($txid, $filter) 873 | { 874 | $options = $this->optionsRequest; 875 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 876 | $options['headers']['Content-Type'] = 'application/json'; 877 | $options['body'] = json_encode($filter); 878 | try { 879 | $response = $this->client->request( 880 | 'PATCH', 881 | "/pix/v2/cob/{$txid}", 882 | $options 883 | ); 884 | 885 | $statusCode = $response->getStatusCode(); 886 | $result = json_decode($response->getBody()->getContents()); 887 | return array('status' => $statusCode, 'response' => $result); 888 | } catch (ClientException $e) { 889 | return $this->parseResultClient($e); 890 | } catch (\Exception $e) { 891 | $response = $e->getMessage(); 892 | return ['error' => "Falha a Criar Cobranca imediata: {$response}"]; 893 | } 894 | } 895 | 896 | public function consultarCobrancaImediata($txid) 897 | { 898 | $options = $this->optionsRequest; 899 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 900 | try { 901 | $response = $this->client->request( 902 | 'GET', 903 | "/pix/v2/cob/{$txid}", 904 | $options 905 | ); 906 | 907 | $statusCode = $response->getStatusCode(); 908 | $result = json_decode($response->getBody()->getContents()); 909 | return array('status' => $statusCode, 'response' => $result); 910 | } catch (ClientException $e) { 911 | return $this->parseResultClient($e); 912 | } catch (\Exception $e) { 913 | $response = $e->getMessage(); 914 | return ['error' => "Falha ao Consultar Cobranca imediata: {$response}"]; 915 | } 916 | } 917 | 918 | // REQUEST BODY SCHEMA 919 | public function criarCobrancaImediataPSP($filter) 920 | { 921 | $options = $this->optionsRequest; 922 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 923 | $options['headers']['Content-Type'] = 'application/json'; 924 | $options['body'] = json_encode($filter); 925 | try { 926 | $response = $this->client->request( 927 | 'POST', 928 | "/pix/v2/cob", 929 | $options 930 | ); 931 | 932 | $statusCode = $response->getStatusCode(); 933 | $result = json_decode($response->getBody()->getContents()); 934 | return array('status' => $statusCode, 'response' => $result); 935 | } catch (ClientException $e) { 936 | return $this->parseResultClient($e); 937 | } catch (\Exception $e) { 938 | $response = $e->getMessage(); 939 | return ['error' => "Falha a Criar Cobranca imediata: {$response}"]; 940 | } 941 | } 942 | 943 | // QUERY PARAMS 944 | public function consultarListaCobrancaImediata($filters) 945 | { 946 | $options = $this->optionsRequest; 947 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 948 | $options['query'] = $filters; 949 | 950 | try { 951 | $response = $this->client->request( 952 | 'GET', 953 | "/pix/v2/cob", 954 | $options 955 | ); 956 | 957 | $statusCode = $response->getStatusCode(); 958 | $result = json_decode($response->getBody()->getContents()); 959 | return array('status' => $statusCode, 'response' => $result); 960 | } catch (ClientException $e) { 961 | return $this->parseResultClient($e); 962 | } catch (\Exception $e) { 963 | $response = $e->getMessage(); 964 | return ['error' => "Falha ao buscar saldo: {$response}"]; 965 | } 966 | } 967 | 968 | ############################################## 969 | ######## PIX - COBRANÇA VENCIMENTO ########### 970 | ############################################## 971 | // REQUEST BODY SCHEMA 972 | public function criarCobrancaVencimento($txid, $filter) 973 | { 974 | $options = $this->optionsRequest; 975 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 976 | $options['headers']['Content-Type'] = 'application/json'; 977 | $options['body'] = json_encode($filter); 978 | try { 979 | $response = $this->client->request( 980 | 'PUT', 981 | "/pix/v2/cobv/{$txid}", 982 | $options 983 | ); 984 | 985 | $statusCode = $response->getStatusCode(); 986 | $result = json_decode($response->getBody()->getContents()); 987 | return array('status' => $statusCode, 'response' => $result); 988 | } catch (ClientException $e) { 989 | return $this->parseResultClient($e); 990 | } catch (\Exception $e) { 991 | $response = $e->getMessage(); 992 | return ['error' => "Falha a Criar Cobranca imediata: {$response}"]; 993 | } 994 | } 995 | 996 | // REQUEST BODY SCHEMA 997 | public function atualizarCobrancaVencimento($txid, $filter) 998 | { 999 | $options = $this->optionsRequest; 1000 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1001 | $options['headers']['Content-Type'] = 'application/json'; 1002 | $options['body'] = json_encode($filter); 1003 | try { 1004 | $response = $this->client->request( 1005 | 'PATCH', 1006 | "/pix/v2/cobv/{$txid}", 1007 | $options 1008 | ); 1009 | 1010 | $statusCode = $response->getStatusCode(); 1011 | $result = json_decode($response->getBody()->getContents()); 1012 | return array('status' => $statusCode, 'response' => $result); 1013 | } catch (ClientException $e) { 1014 | return $this->parseResultClient($e); 1015 | } catch (\Exception $e) { 1016 | $response = $e->getMessage(); 1017 | return ['error' => "Falha a Criar Cobranca imediata: {$response}"]; 1018 | } 1019 | } 1020 | 1021 | public function consultarCobrancaVencimento($txid) 1022 | { 1023 | $options = $this->optionsRequest; 1024 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1025 | try { 1026 | $response = $this->client->request( 1027 | 'GET', 1028 | "/pix/v2/cobv/{$txid}", 1029 | $options 1030 | ); 1031 | 1032 | $statusCode = $response->getStatusCode(); 1033 | $result = json_decode($response->getBody()->getContents()); 1034 | return array('status' => $statusCode, 'response' => $result); 1035 | } catch (ClientException $e) { 1036 | return $this->parseResultClient($e); 1037 | } catch (\Exception $e) { 1038 | $response = $e->getMessage(); 1039 | return ['error' => "Falha ao Consultar Cobranca imediata: {$response}"]; 1040 | } 1041 | } 1042 | 1043 | // QUERY PARAMS 1044 | public function consultarListaCobrancaVencimento($filters) 1045 | { 1046 | $options = $this->optionsRequest; 1047 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1048 | $options['query'] = $filters; 1049 | 1050 | try { 1051 | $response = $this->client->request( 1052 | 'GET', 1053 | "/pix/v2/cobv", 1054 | $options 1055 | ); 1056 | 1057 | $statusCode = $response->getStatusCode(); 1058 | $result = json_decode($response->getBody()->getContents()); 1059 | return array('status' => $statusCode, 'response' => $result); 1060 | } catch (ClientException $e) { 1061 | return $this->parseResultClient($e); 1062 | } catch (\Exception $e) { 1063 | $response = $e->getMessage(); 1064 | return ['error' => "Falha ao buscar saldo: {$response}"]; 1065 | } 1066 | } 1067 | 1068 | ############################################## 1069 | ######## PIX ################################# 1070 | ############################################## 1071 | // PATH PARAMS 1072 | public function consultarPix($e2eId) 1073 | { 1074 | $options = $this->optionsRequest; 1075 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1076 | try { 1077 | $response = $this->client->request( 1078 | 'GET', 1079 | "/pix/v2/pix/{$e2eId}", 1080 | $options 1081 | ); 1082 | 1083 | $statusCode = $response->getStatusCode(); 1084 | $result = json_decode($response->getBody()->getContents()); 1085 | return array('status' => $statusCode, 'response' => $result); 1086 | } catch (ClientException $e) { 1087 | return $this->parseResultClient($e); 1088 | } catch (\Exception $e) { 1089 | $response = $e->getMessage(); 1090 | return ['error' => "Falha ao Consultar Cobranca imediata: {$response}"]; 1091 | } 1092 | } 1093 | 1094 | // QUERY PARAMS 1095 | public function consultarPixRecebidos($filters) 1096 | { 1097 | $options = $this->optionsRequest; 1098 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1099 | $options['query'] = $filters; 1100 | 1101 | try { 1102 | $response = $this->client->request( 1103 | 'GET', 1104 | "/pix/v2/pix", 1105 | $options 1106 | ); 1107 | 1108 | $statusCode = $response->getStatusCode(); 1109 | $result = json_decode($response->getBody()->getContents()); 1110 | return array('status' => $statusCode, 'response' => $result); 1111 | } catch (ClientException $e) { 1112 | return $this->parseResultClient($e); 1113 | } catch (\Exception $e) { 1114 | $response = $e->getMessage(); 1115 | return ['error' => "Falha ao buscar saldo: {$response}"]; 1116 | } 1117 | } 1118 | 1119 | // PATH PARAMS - BETA 1120 | public function solicitardevolucao($e2eId, $id, $filter) 1121 | { 1122 | $options = $this->optionsRequest; 1123 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1124 | $options['headers']['Content-Type'] = 'application/json'; 1125 | $options['body'] = json_encode($filter); 1126 | try { 1127 | $response = $this->client->request( 1128 | 'PUT', 1129 | "/pix/v2/pix/{$e2eId}/devolucao/{$id}", 1130 | $options 1131 | ); 1132 | 1133 | $statusCode = $response->getStatusCode(); 1134 | $result = json_decode($response->getBody()->getContents()); 1135 | return array('status' => $statusCode, 'response' => $result); 1136 | } catch (ClientException $e) { 1137 | return $this->parseResultClient($e); 1138 | } catch (\Exception $e) { 1139 | $response = $e->getMessage(); 1140 | return ['error' => "Falha ao Consultar Cobranca imediata: {$response}"]; 1141 | } 1142 | } 1143 | 1144 | // PATH PARAMS 1145 | public function consultadevolucao($e2eId, $id) 1146 | { 1147 | $options = $this->optionsRequest; 1148 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1149 | try { 1150 | $response = $this->client->request( 1151 | 'GET', 1152 | "/pix/v2/pix/{$e2eId}/devolucao/{$id}", 1153 | $options 1154 | ); 1155 | 1156 | $statusCode = $response->getStatusCode(); 1157 | $result = json_decode($response->getBody()->getContents()); 1158 | return array('status' => $statusCode, 'response' => $result); 1159 | } catch (ClientException $e) { 1160 | return $this->parseResultClient($e); 1161 | } catch (\Exception $e) { 1162 | $response = $e->getMessage(); 1163 | return ['error' => "Falha ao Consultar Cobranca imediata: {$response}"]; 1164 | } 1165 | } 1166 | 1167 | ############################################## 1168 | ######## WEBHOOK PIX ######################### 1169 | ############################################## 1170 | // PATH PARAMETERS 1171 | public function criarWebhookPix(string $chave, string $webhookUrl) 1172 | { 1173 | $options = $this->optionsRequest; 1174 | $options['body'] = json_encode(['webhookUrl' => $webhookUrl]); 1175 | $options['headers']['Content-Type'] = 'application/json'; 1176 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1177 | try { 1178 | $response = $this->client->request( 1179 | 'PUT', 1180 | "/pix/v2/webhook/{$chave}", 1181 | $options 1182 | ); 1183 | $statusCode = $response->getStatusCode(); 1184 | $result = json_decode($response->getBody()->getContents()); 1185 | return array('status' => $statusCode, 'response' => $result); 1186 | } catch (ClientException $e) { 1187 | return $this->parseResultClient($e); 1188 | } catch (\Exception $e) { 1189 | $response = $e->getMessage(); 1190 | return ['error' => "Falha ao criar Webhook Pix: {$response}"]; 1191 | } 1192 | } 1193 | 1194 | // PATH PARAMETERS 1195 | public function obterWebhookCadastradoPix(string $chave) 1196 | { 1197 | $options = $this->optionsRequest; 1198 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1199 | try { 1200 | $response = $this->client->request( 1201 | 'GET', 1202 | "/pix/v2/webhook/{$chave}", 1203 | $options 1204 | ); 1205 | https: //cdpj.partners.bancointer.com.br/pix/v2/webhook/{chave} 1206 | 1207 | $statusCode = $response->getStatusCode(); 1208 | $result = json_decode($response->getBody()->getContents()); 1209 | return array('status' => $statusCode, 'response' => $result); 1210 | } catch (ClientException $e) { 1211 | return $this->parseResultClient($e); 1212 | } catch (\Exception $e) { 1213 | $response = $e->getMessage(); 1214 | return ['error' => "Falha ao obter Webhook Cadastrado: {$response}"]; 1215 | } 1216 | } 1217 | 1218 | // PATH PARAMETERS 1219 | public function excluirWebhookPix(string $chave) 1220 | { 1221 | $options = $this->optionsRequest; 1222 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1223 | try { 1224 | $response = $this->client->request( 1225 | 'DELETE', 1226 | "/pix/v2/webhook/{$chave}", 1227 | $options 1228 | ); 1229 | $statusCode = $response->getStatusCode(); 1230 | $result = json_decode($response->getBody()->getContents()); 1231 | return array('status' => $statusCode, 'response' => $result); 1232 | } catch (ClientException $e) { 1233 | return $this->parseResultClient($e); 1234 | } catch (\Exception $e) { 1235 | $response = $e->getMessage(); 1236 | return ['error' => "Falha ao excluir Webhook Pix: {$response}"]; 1237 | } 1238 | } 1239 | 1240 | // QUERY PARAMETERS 1241 | public function callbacksPix($filters) 1242 | { 1243 | $options = $this->optionsRequest; 1244 | $options['headers']['Authorization'] = "Bearer {$this->token}"; 1245 | $options['query'] = $filters; 1246 | 1247 | try { 1248 | $response = $this->client->request( 1249 | 'GET', 1250 | "/pix/v2/webhook/callbacks", 1251 | $options 1252 | ); 1253 | 1254 | $statusCode = $response->getStatusCode(); 1255 | $result = json_decode($response->getBody()->getContents()); 1256 | return array('status' => $statusCode, 'response' => $result); 1257 | } catch (ClientException $e) { 1258 | return $this->parseResultClient($e); 1259 | } catch (\Exception $e) { 1260 | $response = $e->getMessage(); 1261 | return ['error' => "Falha ao buscar callBack Pix: {$response}"]; 1262 | } 1263 | } 1264 | 1265 | 1266 | ############################################## 1267 | ######## FERRAMENTAS ######################### 1268 | ############################################## 1269 | private function parseResultClient($result) 1270 | { 1271 | $statusCode = $result->getResponse()->getStatusCode(); 1272 | $response = $result->getResponse()->getReasonPhrase(); 1273 | $body = $result->getResponse()->getBody()->getContents(); 1274 | 1275 | return ['error' => $body, 'response' => $response, 'statusCode' => $statusCode]; 1276 | } 1277 | 1278 | private function soNumeros($string) 1279 | { 1280 | $somenteNumeros = preg_replace('/[^0-9]/', '', $string); 1281 | return $somenteNumeros; 1282 | } 1283 | } 1284 | --------------------------------------------------------------------------------