├── .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

128 | 129 | Chave Pix E-MAIL: roseno@divulgueregional.com.br 130 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "divulgueregional/api-inter-v2", 3 | "description": "API Inter gera\u0000\u0000o de boletos", 4 | "license": "mit", 5 | "type": "library", 6 | "autoload": { 7 | "psr-4": { 8 | "Divulgueregional\\ApiInterV2\\": "src/" 9 | } 10 | }, 11 | "authors": [ 12 | { 13 | "name": "Roseno Matos", 14 | "email": "roseno@divulgueregional.com.br" 15 | } 16 | ], 17 | "minimum-stability": "dev", 18 | "require": { 19 | "guzzlehttp/guzzle": "^6.0 | ^7.0" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /docs/API BANKING/Consultar extrato em pdf.md: -------------------------------------------------------------------------------- 1 | # CONSULTAR EXTRATO PDF-INTER 2 | 3 | ## Consultar Extrato PDF 4 | Consultar extrato da conta e mostrar em PDF. 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 | 'dataInicio' => '2022-04-20',//obrigatorio 18 | 'dataFim' => '2022-04-28',//obrigatorio 19 | ]; 20 | 21 | $token = '';//seu token 22 | try { 23 | $bankingInter = new InterBanking($config); 24 | $bankingInter->setToken($token); 25 | 26 | echo "
";
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 | 19 | 20 | 25 | 26 | 27 | 30 | 31 | 32 | 37 | 38 |
21 |
22 | 23 |
24 |
28 | 29 | 33 |
34 | 35 |
36 |
39 | 40 | 1 && $boletoAtual != $qtdBoletos && !$multiploDe3) { 44 | ?> 45 |
46 |
47 |
48 | 53 | 54 | 55 | 56 | 57 | 62 | 63 |
64 | 65 | 66 | 67 | 70 | 73 | 76 | 77 |
68 | nomeBanco ?? '' ?> 69 | 71 | codigoBanco ?? '' ?> 72 | 74 | codigoBarrasDigitavel ?? '') ?> 75 |
78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 91 | 97 | 98 | 99 |
86 |
87 |
Local de pagamento
88 |
Pagável em qualquer Banco até o vencimento
89 |
90 |
92 |
93 |
Vencimento
94 |
dataVencimento ?? '') ?>
95 |
96 |
100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 113 | 119 | 120 |
108 |
109 |
Cedente
110 |
nomeEmpresa ?? '') ?>
111 |
112 |
114 |
115 |
Agência/Código do cedente
116 |
agencia ?? '') ?>/codigoCedente ?? '') ?>
117 |
118 |
121 | 122 | 123 | 124 | 125 | 126 | 127 | 133 | 139 | 140 | 146 | 147 | 153 | 154 | 160 | 166 | 167 |
128 |
129 |
Data do documento
130 |
dataEmissaoTituloCobranca ?? '') ?>
131 |
132 |
134 |
135 |
Nº do documento
136 |
numeroDocumento ?? '' ?>
137 |
138 |
141 |
142 |
Espécie DOC
143 |
DM
144 |
145 |
148 |
149 |
Aceite
150 |
codigoAceite ?? '') ?>
151 |
152 |
155 |
156 |
Data process.
157 |
dataEmissao ?? '') ?>
158 |
159 |
161 |
162 |
Nosso número
163 |
nossoNumero ?? '') ?>
164 |
165 |
168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 184 | 190 | 191 | 197 | 198 | 204 | 205 | 211 | 217 | 218 |
179 |
180 |
Uso do Banco
181 |
 
182 |
183 |
185 |
186 |
Carteira
187 |
carteiraCobranca ?? '') ?>
188 |
189 |
192 |
193 |
Espécie
194 |
R$
195 |
196 |
199 |
200 |
Quantidade
201 |
 
202 |
203 |
206 |
207 |
Valor
208 |
209 |
210 |
212 |
213 |
(=) Valor do documento
214 |
R$ valorDocumento ?? '0', 2, ',', '.') ?>
215 |
216 |
219 | 220 | 221 | 222 | 223 | 224 | 240 | 288 | 289 |
225 | 226 | 227 | 228 | 229 | 235 | 236 |
230 |
Instruções de responsabilidade do beneficiário. Qualquer dúvida, contate o beneficiário
231 |
232 | mensagemBloqueto ?> 233 |
234 |
237 | 238 | 239 |
241 | 242 | 243 | 244 | 245 | 251 | 252 |
246 |
247 |
(-) Desconto/Abatimento
248 |
 
249 |
250 |
253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 268 | 269 |
263 |
264 |
(+) Juros/Multa
265 |
266 |
267 |
270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 283 | 284 |
278 |
279 |
(=) Valor cobrado
280 |
R$ valorDocumento ?? '0', 2, ',', '.') ?>
281 |
282 |
285 | 286 | 287 |
290 | 291 | 292 | 293 | 294 | 295 | 302 | 303 | 304 |
296 |
297 |
Sacado
298 |
nomePagador ?? '' ?>
299 |
CEPPagador ?? '') ?>, bairroPagador ?? '') ?>, cidadePagador ?? '') ?>-UFPagador ?? '') ?>
300 |
301 |
305 | 306 | 307 | 308 | 309 |
Autenticação mecânica
310 |
311 | boletoPago) { 313 | echo "Essa parcela já foi paga."; 314 | } else { 315 | echo str_replace('position:relative;width:100%;height:100%', 'position:relative;width:100%;height:35px', $dadosBoleto->codBarrasHTML); 316 | } 317 | ?> 318 |
319 | 320 | 321 | 322 |
323 | 328 | 329 |
330 | 331 | 332 | 333 | 334 | 337 | 340 | 341 | 342 |
335 | nomeBanco ?? '' ?> 336 | 338 | codigoBanco ?? '' ?> 339 |
343 | 344 | 345 | 346 | 347 | 348 | 441 | 442 |
349 | 350 | 351 | 352 | 358 | 359 |
353 |
354 |
Nosso número
355 |
nossoNumero ?? '') ?>
356 |
357 |
360 | 361 | 362 | 363 | 369 | 370 |
364 |
365 |
Vencimento
366 |
dataVencimento ?? '') ?>
367 |
368 |
371 | 372 | 373 | 374 | 375 | 381 | 382 |
376 |
377 |
Valor do documento
378 |
R$ valorDocumento ?? '0', 2, ',', '.') ?>
379 |
380 |
383 | 384 | 385 | 386 | 392 | 393 |
387 |
388 |
(-) Desconto/Abatimento
389 |
 
390 |
391 |
394 | 395 | 396 | 397 | 403 | 404 |
398 |
399 |
(+) Juros/Multa
400 |
401 |
402 |
405 | 406 | 407 | 408 | 409 | 415 | 416 |
410 |
411 |
Nº do documento
412 |
numeroDocumento ?>
413 |
414 |
417 | 418 | 419 | 420 | 426 | 427 |
421 |
422 |
(=) Valor cobrado
423 |
R$ valorDocumento ?? '0', 2, ',', '.') ?>
424 |
425 |
428 | 429 | 430 | 431 | 437 | 438 |
432 |
433 |
Pagador
434 |
nomePagador ?? '' ?>
435 |
436 |
439 | 440 |
443 | 444 |
445 |
446 | nomeEmpresa ?? '' ?>
447 | CNPJ: CNPJEmpresa ?? '' ?> 448 | 449 |
450 | 5 | Foi feito um layout usando o DomPDF para gerar o PDF.
6 | 7 | ## Exemplo de uso 8 | Na pasta exemplo tem um pdf para ver como vai ficar
9 | Para executar em sua aplicação:
10 | acesse o arquivo index.php
11 | vai ser necessário você ter instalado o domPDF 12 | ```php 13 | composer require dompdf/dompdf 14 | ``` 15 | para gerar o código de barra foi usado o picqer 16 | ```php 17 | composer require picqer/php-barcode-generator 18 | ``` 19 | 20 | ## Autor: 21 | Igor Lisboa Monteiro (developer) iggorlisboa@gmail.com
-------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/carne-bancario/Util/ConversorDadosCarne.php: -------------------------------------------------------------------------------- 1 | codBanco = $codigoBanco; 10 | $this->dadosBoleto = $dadosBoleto; 11 | $carne = new stdClass(); 12 | 13 | switch ($codigoBanco) { 14 | case '077': //Banco Inter 15 | 16 | $descBoletoMulta = ''; 17 | $descBoletoMora = ''; 18 | 19 | if ($dadosBoleto->multa->codigo == 'PERCENTUAL') { 20 | $descBoletoMulta = ' MULTA DE ' . $dadosBoleto->multa->taxa . '% EM ' . date('d/m/Y', strtotime($dadosBoleto->multa->data)) . '.'; 21 | } 22 | if ($dadosBoleto->multa->codigo == 'VALORFIXO') { 23 | $descBoletoMulta = ' MULTA DE R$ ' . number_format($dadosBoleto->multa->valor, 2, ',', '.') . ' EM ' . date('d/m/Y', strtotime($dadosBoleto->multa->data)) . '.'; 24 | } 25 | if ($dadosBoleto->mora->codigo == 'TAXAMENSAL') { 26 | $descBoletoMora = ' MORA DE ' . $dadosBoleto->mora->taxa . '% A PARTIR DE ' . date('d/m/Y', strtotime($dadosBoleto->mora->data)) . '.'; 27 | } 28 | if ($dadosBoleto->mora->codigo == 'VALORDIA') { 29 | $descBoletoMora = ' MORA DE R$ ' . number_format($dadosBoleto->mora->valor, 2, ',', '.') . ' A PARTIR DE ' . date('d/m/Y', strtotime($dadosBoleto->mora->data)) . '.'; 30 | } 31 | 32 | $carne->codigoLinhaDigitavel = $dadosBoleto->linhaDigitavel; 33 | $carne->codigoBarras = $dadosBoleto->codigoBarras; 34 | $carne->mensagemBloqueto = ($dadosBoleto->mensagem->linha1 ?? '') . ($dadosBoleto->mensagem->linha2 ?? ''); 35 | 36 | $carne->mensagemBloqueto .= '
' . $descBoletoMulta; 37 | $carne->mensagemBloqueto .= '
' . $descBoletoMora; 38 | 39 | $carne->nossoNumero = $dadosBoleto->nossoNumero; 40 | $carne->nomeBanco = 'Banco Inter'; 41 | $carne->codigoBanco = '077-9'; 42 | $carne->dataVencimento = $this->converterData($dadosBoleto->dataVencimento, $formatoAtual = 'Y-m-d', $novoFormato = 'd/m/Y'); 43 | $carne->valorDocumento = $dadosBoleto->valorNominal; 44 | $carne->numeroDocumento = $dadosBoleto->seuNumero; 45 | $carne->nomePagador = $dadosBoleto->pagador->nome; 46 | $carne->CNPJCPFPagador = $this->formatarCPFCNPJ($dadosBoleto->pagador->cpfCnpj); 47 | $carne->CEPPagador = $dadosBoleto->pagador->cep; 48 | $carne->enderecoPagador = $dadosBoleto->pagador->endereco; 49 | $carne->bairroPagador = $dadosBoleto->pagador->bairro; 50 | $carne->cidadePagador = $dadosBoleto->pagador->cidade; 51 | $carne->UFPagador = $dadosBoleto->pagador->uf; 52 | $carne->nomeEmpresa = $dadosBoleto->nomeBeneficiario; 53 | $carne->CNPJEmpresa = $this->formatarCPFCNPJ($dadosBoleto->cnpjCpfBeneficiario); 54 | $carne->agencia = '0001-9'; 55 | $carne->codigoCedente = $dadosBoleto->contaCorrente; 56 | $carne->codigoAceite = 'NAO'; 57 | $carne->dataEmissao = $this->converterData($dadosBoleto->dataEmissao, $formatoAtual = 'Y-m-d', $novoFormato = 'd/m/Y'); 58 | $carne->carteiraCobranca = '112'; 59 | $carne->boletoPago = $dadosBoleto->situacao == 'PAGO'; 60 | break; 61 | 62 | case '001': 63 | 64 | 65 | $descBoletoMulta = ''; 66 | $descBoletoMora = ''; 67 | $descBoletoProtesto = ''; 68 | 69 | if (in_array($dadosBoleto->codigoTipoMulta, [1, 2])) { 70 | $dataMulta = str_replace('.', '/', $dadosBoleto->dataMultaTitulo); 71 | 72 | if ($dadosBoleto->codigoTipoMulta == 1 && $dadosBoleto->valorMultaTituloCobranca > 0) { 73 | $multa = number_format($dadosBoleto->valorMultaTituloCobranca, 2, ',', '.'); 74 | $descBoletoMulta = "Em $dataMulta, multa de R$ $multa."; 75 | } 76 | 77 | if ($dadosBoleto->codigoTipoMulta == 2 && $dadosBoleto->percentualMultaTitulo > 0) { 78 | $multa = number_format(($dadosBoleto->valorAtualTituloCobranca * $dadosBoleto->percentualMultaTitulo) / 100, 2, ',', '.'); 79 | $descBoletoMulta = "Em $dataMulta, multa de $dadosBoleto->percentualMultaTitulo%, R$ $multa."; 80 | } 81 | } 82 | 83 | 84 | if (in_array($dadosBoleto->codigoTipoJuroMora, [1, 2])) { 85 | 86 | $dataVencimento = str_replace('.', '/', $dadosBoleto->dataVencimentoTituloCobranca); 87 | $msgMora = ''; 88 | if ($dadosBoleto->codigoTipoJuroMora == 1 && $dadosBoleto->valorJuroMoraTitulo > 0) { 89 | $mora = number_format($dadosBoleto->valorJuroMoraTitulo, 2, ',', '.'); 90 | $descBoletoMora = "Depois de $dataVencimento, mora diária de R$ $mora."; 91 | } 92 | 93 | if ($dadosBoleto->codigoTipoJuroMora == 2 && $dadosBoleto->percentualJuroMoraTitulo > 0) { 94 | $mora = number_format(($dadosBoleto->valorAtualTituloCobranca * $dadosBoleto->percentualJuroMoraTitulo) / 100, 2, ',', '.'); 95 | $descBoletoMora = "Depois de $dataVencimento, mora mensal de R$ $mora."; 96 | } 97 | } 98 | 99 | if (is_numeric($dadosBoleto->quantidadeDiaProtesto) && $dadosBoleto->quantidadeDiaProtesto > 0) { 100 | $descBoletoProtesto = "Sujeito a protesto após $dadosBoleto->quantidadeDiaProtesto dias do vencimento"; 101 | } 102 | 103 | 104 | 105 | $carne->codigoLinhaDigitavel = $dadosBoleto->codigoLinhaDigitavel; 106 | $carne->codigoBarras = $dadosBoleto->textoCodigoBarrasTituloCobranca; 107 | $carne->mensagemBloqueto = $dadosBoleto->textoMensagemBloquetoTitulo; 108 | 109 | $carne->mensagemBloqueto .= '
' . 'Pagável em qualquer banco até o vencimento'; 110 | $carne->mensagemBloqueto .= '
' . $descBoletoMulta; 111 | $carne->mensagemBloqueto .= '
' . $descBoletoMora; 112 | $carne->mensagemBloqueto .= '
' . $descBoletoProtesto; 113 | 114 | $carne->nossoNumero = $dadosBoleto->nossoNumero; 115 | $carne->nomeBanco = 'Banco do Brasil'; 116 | $carne->codigoBanco = '001-9'; 117 | $carne->dataVencimento = $this->converterData($dadosBoleto->dataVencimentoTituloCobranca, $formatoAtual = 'd.m.Y', $novoFormato = 'd/m/Y'); 118 | $carne->valorDocumento = $dadosBoleto->valorAtualTituloCobranca; 119 | $carne->numeroDocumento = $dadosBoleto->numeroTituloCedenteCobranca; 120 | $carne->nomePagador = $dadosBoleto->nomeSacadoCobranca; 121 | $carne->CNPJCPFPagador = ''; 122 | $carne->CEPPagador = $dadosBoleto->numeroCepSacadoCobranca; 123 | $carne->enderecoPagador = $dadosBoleto->textoEnderecoSacadoCobranca; 124 | $carne->bairroPagador = $dadosBoleto->nomeBairroSacadoCobranca; 125 | $carne->cidadePagador = $dadosBoleto->nomeMunicipioSacadoCobranca; 126 | $carne->UFPagador = $dadosBoleto->siglaUnidadeFederacaoSacadoCobranca; 127 | $carne->nomeEmpresa = $dadosBoleto->nomeSacadorAvalistaTitulo; 128 | $carne->CNPJEmpresa = $this->formatarCPFCNPJ($dadosBoleto->numeroInscricaoSacadorAvalista); 129 | $carne->agencia = $dadosBoleto->agencia; 130 | $carne->codigoCedente = $dadosBoleto->contaCorrente; 131 | $carne->codigoAceite = $dadosBoleto->codigoAceiteTituloCobranca; 132 | $carne->dataEmissao = $this->converterData($dadosBoleto->dataEmissaoTituloCobranca, $formatoAtual = 'd.m.Y', $novoFormato = 'd/m/Y'); 133 | $carne->carteiraCobranca = $dadosBoleto->numeroCarteiraCobranca; 134 | $carne->boletoPago = $carne->valorDocumento <= $dadosBoleto->valorPagoSacado; 135 | 136 | break; 137 | 138 | default: 139 | 140 | exit('Carnê indisponível para esse banco'); 141 | break; 142 | } 143 | 144 | 145 | 146 | return $carne; 147 | } 148 | 149 | private function converterData($data, $formatoAtual, $novoFormato) { 150 | $dataObj = DateTime::createFromFormat($formatoAtual, $data); 151 | return $dataObj->format($novoFormato); 152 | } 153 | 154 | private function formatarCPFCNPJ($documento) { 155 | $documento = preg_replace('/[^0-9]/', '', $documento); 156 | 157 | if (strlen($documento) == 11) { // CPF 158 | return substr($documento, 0, 3) . '.' . substr($documento, 3, 3) . '.' . substr($documento, 6, 3) . '-' . substr($documento, 9, 2); 159 | } elseif (strlen($documento) == 14) { // CNPJ 160 | return substr($documento, 0, 2) . '.' . substr($documento, 2, 3) . '.' . substr($documento, 5, 3) . '/' . substr($documento, 8, 4) . '-' . substr($documento, 12, 2); 161 | } else { 162 | return $documento; 163 | } 164 | } 165 | 166 | } 167 | -------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/carne-bancario/exemplo/carne.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/divulgueregional/api-inter-v2/92ffcacda1af5b376d097567c8c7de2ff811976c/docs/API COBRANCA/Boleto em PDF/carne-bancario/exemplo/carne.pdf -------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/carne-bancario/index.php: -------------------------------------------------------------------------------- 1 | codigoLinhaDigitavel = '00190000090312855700000006000178793870000001000'; 11 | $parcela1->codigoBarras = '00191954600000100000000003500053000000004717'; 12 | $parcela1->mensagemBloqueto = 'Texto instuções'; 13 | $parcela1->nossoNumero = '009825263563'; 14 | $parcela1->nomeBanco = 'Banco Inter'; 15 | $parcela1->codigoBanco = '077-9'; 16 | $parcela1->dataVencimento = '12/05/2034'; 17 | $parcela1->valorDocumento = 120; 18 | $parcela1->numeroDocumento = '32232'; //seu número 19 | $parcela1->nomePagador = 'Nome Cliente'; 20 | $parcela1->CNPJCPFPagador = '02327558174'; 21 | $parcela1->CEPPagador = '23421234'; 22 | $parcela1->enderecoPagador = 'Rua teste'; 23 | $parcela1->bairroPagador = 'Bairo cliente'; 24 | $parcela1->cidadePagador = 'Brasília'; 25 | $parcela1->UFPagador = 'DF'; 26 | $parcela1->nomeEmpresa = 'Nome Empresa emitente'; 27 | $parcela1->CNPJEmpresa = '87654637876547'; 28 | $parcela1->agencia = '0001-9'; 29 | $parcela1->codigoCedente = '7626264'; 30 | $parcela1->codigoAceite = 'NAO'; 31 | $parcela1->dataEmissao = '12/09/2023'; 32 | $parcela1->carteiraCobranca = '112'; 33 | $parcela1->boletoPago = false; 34 | 35 | $parcela2 = new stdClass(); 36 | $parcela2->codigoLinhaDigitavel = '00190000090312855700000006000178793870000001000'; 37 | $parcela2->codigoBarras = '00191954600000100000000003500053000000004717'; 38 | $parcela2->mensagemBloqueto = 'Texto instuções'; 39 | $parcela2->nossoNumero = '009825263563'; 40 | $parcela2->nomeBanco = 'banco do Brasil'; 41 | $parcela2->codigoBanco = '001-9'; 42 | $parcela2->dataVencimento = '12/05/2034'; 43 | $parcela2->valorDocumento = 170; 44 | $parcela2->numeroDocumento = '32232'; //seu número 45 | $parcela2->nomePagador = 'Nome Cliente'; 46 | $parcela2->CNPJCPFPagador = '02327558174'; 47 | $parcela2->CEPPagador = '23421234'; 48 | $parcela2->enderecoPagador = 'Rua teste'; 49 | $parcela2->bairroPagador = 'Bairo cliente'; 50 | $parcela2->cidadePagador = 'Brasília'; 51 | $parcela2->UFPagador = 'DF'; 52 | $parcela2->nomeEmpresa = 'Nome Empresa emitente'; 53 | $parcela2->CNPJEmpresa = '87654637876547'; 54 | $parcela2->agencia = '0001-9'; 55 | $parcela2->codigoCedente = '7626264'; 56 | $parcela2->codigoAceite = 'S'; 57 | $parcela2->dataEmissao = '12/09/2023'; 58 | $parcela2->carteiraCobranca = '112'; 59 | $parcela2->boletoPago = true; 60 | 61 | $carneBancario->adicionarParcela($parcela1); 62 | $carneBancario->adicionarParcela($parcela1); 63 | $carneBancario->adicionarParcela($parcela2); 64 | 65 | /* 66 | 67 | OS DADOS PODEM SER PREENCHIDOS MANUALMENTE COMO NO EXEMPLO ACIMA OU USANDO O CONVERSOR DE DADOS. 68 | 69 | //$retornoBanco : Dados retornados pela API do banco 70 | //$codigoBanco : 001=Banco do Brasil 077=Banco Inter 71 | 72 | 73 | //Recebe os dados da API e converte para o padrão do carnê 74 | $parcelaConvertida = $conversor->getObjetoCarneBancario($retornoBanco, $codigoBanco); 75 | $carneBancario->adicionarParcela($parcelaConvertida); 76 | 77 | */ 78 | 79 | 80 | $pdf = $carneBancario->getPDF(); 81 | 82 | 83 | 84 | header("Content-type:application/pdf"); 85 | echo $pdf; -------------------------------------------------------------------------------- /docs/API COBRANCA/Boleto em PDF/visualizaBoleto.php: -------------------------------------------------------------------------------- 1 | 9) { 64 | // vamos converter o valor númerico em string 65 | $res = strval($res); 66 | $res = ((int)($res[0]) + (int)($res[1])); 67 | } 68 | 69 | $soma = $soma + $res; 70 | } 71 | 72 | // obtemos o resto da divisão da soma por 10 73 | $resto = $soma % 10; 74 | 75 | // Se o resto da divisão for 0 (zero), o DV 76 | // será 0 (zero). 77 | if ($resto == 0) { 78 | $digito = 0; 79 | } 80 | // Se o Total da Soma for inferior a 10, o DV corresponde 81 | // à diferença entre 10 e o Total da Soma 82 | else if ($soma < 10) { 83 | $digito = 10 - $soma; 84 | } else { 85 | // subtraímos onze pelo resto da divisão 86 | $digito = 10 - $resto; 87 | } 88 | 89 | return $digito; 90 | } 91 | 92 | function Mask($mask, $str) 93 | { 94 | 95 | $str = str_replace(" ", "", $str); 96 | 97 | for ($i = 0; $i < strlen($str); $i++) { 98 | $mask[strpos($mask, "#")] = $str[$i]; 99 | } 100 | 101 | return $mask; 102 | } 103 | 104 | function codigoBarra($linhaDigitavel) 105 | { 106 | $codigo = $linhaDigitavel; 107 | $barcodes = array('00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010'); 108 | $barraStart = '
'; 109 | $barraStop = '
'; 110 | $retorno = ""; 111 | 112 | for ($a = 9; $a >= 0; $a--) { 113 | for ($b = 9; $b >= 0; $b--) { 114 | $ind = ($a * 10) + $b; 115 | $texto = ""; 116 | 117 | for ($c = 1; $c < 6; $c++) { 118 | $texto .= substr($barcodes[$a], ($c - 1), 1) . substr($barcodes[$b], ($c - 1), 1); 119 | } 120 | $barcodes[$ind] = $texto; 121 | } 122 | } 123 | 124 | while (strlen($codigo) > 0) { 125 | $codEsq = round(substr($codigo, 0, 2)); 126 | $codigo = substr($codigo, strlen($codigo) - (strlen($codigo) - 2), strlen($codigo) - 2); 127 | $binario = $barcodes[$codEsq]; 128 | 129 | for ($i = 1; $i < 11; $i += 2) { 130 | $retorno .= "
"; 131 | $retorno .= "
"; 132 | } 133 | } 134 | 135 | return $barraStart . $retorno . $barraStop; 136 | } 137 | 138 | 139 | require_once 'inter/vendor/autoload.php'; 140 | 141 | use Divulgueregional\ApiInterV2\InterBanking; 142 | 143 | 144 | 145 | $config = [ 146 | 'certificate' => __DIR__ . '/inter/cert/' . $caminhocert . '.crt', //local do certificado crt 147 | 'certificateKey' => __DIR__ . '/inter/cert/' . $caminhocert . '.key', //local do certificado key 148 | 'verify' => false 149 | ]; 150 | 151 | $bankingInter = new InterBanking($config); 152 | 153 | 154 | function geraToken($bankingInter, $client_id, $client_secret) 155 | { 156 | $token = $bankingInter->getToken($client_id, $client_secret); 157 | return $token; 158 | } 159 | 160 | 161 | 162 | 163 | $bankingInter->setToken($token); 164 | 165 | function consultaBoletoDetalhado($bankingInter, $numero) 166 | { 167 | $boletoDetalhado = $bankingInter->boletoDetalhado($numero); 168 | return ($boletoDetalhado); 169 | } 170 | $retornoBoletoDetalhado = consultaBoletoDetalhado($bankingInter, $nossonumero); 171 | 172 | $descBoletoDesconto = ''; 173 | $descBoletoMulta = ''; 174 | $descBoletoMora = ''; 175 | 176 | if ($retornoBoletoDetalhado['response']->desconto1->codigo == 'PERCENTUALDATAINFORMADA') { 177 | $descBoletoDesconto = 'DESCONTO: ' . $retornoBoletoDetalhado['response']->desconto1->taxa . '% ATÉ: ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->desconto1->data)) . '.'; 178 | } 179 | 180 | if ($retornoBoletoDetalhado['response']->desconto1->codigo == 'VALORFIXODATAINFORMADA') { 181 | $descBoletoDesconto = 'DESCONTO: R$' . $retornoBoletoDetalhado['response']->desconto1->valor . ' ATÉ: ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->desconto1->data)) . '.'; 182 | } 183 | 184 | if ($retornoBoletoDetalhado['response']->multa->codigo == 'PERCENTUAL') { 185 | $descBoletoMulta = ' MULTA DE ' . $retornoBoletoDetalhado['response']->multa->taxa . '% EM ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->multa->data)) . '.'; 186 | } 187 | if ($retornoBoletoDetalhado['response']->multa->codigo == 'VALORFIXO') { 188 | $descBoletoMulta = ' MULTA DE R$' . $retornoBoletoDetalhado['response']->multa->valor . ' EM ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->multa->data)) . '.'; 189 | } 190 | if ($retornoBoletoDetalhado['response']->mora->codigo == 'TAXAMENSAL') { 191 | $descBoletoMora = ' MORA DE ' . $retornoBoletoDetalhado['response']->mora->taxa . '% A PARTIR DE ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->mora->data)) . '.'; 192 | } 193 | if ($retornoBoletoDetalhado['response']->mora->codigo == 'VALORDIA') { 194 | $descBoletoMora = ' MORA DE R$' . $retornoBoletoDetalhado['response']->mora->valor . ' A PARTIR DE ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->mora->data)) . '.'; 195 | } 196 | 197 | require_once 'plugins/dompdf/vendor/autoload.php'; 198 | 199 | // reference the Dompdf namespace 200 | use Dompdf\Dompdf; 201 | 202 | // instantiate and use the dompdf class 203 | $tmp = sys_get_temp_dir(); 204 | 205 | $dompdf = new Dompdf([ 206 | 'logOutputFile' => '', 207 | // authorize DomPdf to download fonts and other Internet assets 208 | 'isRemoteEnabled' => true, 209 | // all directories must exist and not end with / 210 | 'fontDir' => $tmp, 211 | 'fontCache' => $tmp, 212 | 'tempDir' => $tmp, 213 | 'chroot' => $tmp, 214 | ]); 215 | $path = 'img/logobol2.png'; 216 | $type = pathinfo($path, PATHINFO_EXTENSION); 217 | $data = file_get_contents($path); 218 | $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data); 219 | 220 | $path2 = 'img/inter.png'; 221 | $type2 = pathinfo($path2, PATHINFO_EXTENSION); 222 | $data2 = file_get_contents($path2); 223 | $base642 = 'data:image/' . $type2 . ';base64,' . base64_encode($data2); 224 | 225 | $path3 = 'img/inter2.jpg'; 226 | $type3 = pathinfo($path3, PATHINFO_EXTENSION); 227 | $data3 = file_get_contents($path3); 228 | $base643 = 'data:image/' . $type3 . ';base64,' . base64_encode($data3); 229 | 230 | 231 | $html = ' 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | Inter - Boleto 240 | 241 | 242 | 243 | 250 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 |
NOME EMPRESA
CNPJ: CNPJ
EMAIL
ENDEREÇO
CEP
293 |
294 | 295 | 296 | 297 | 301 | 302 | 303 | 304 | 305 | 309 | 310 |
298 | Condomínio:NOME
299 | CNPJ:CNPJ
300 | Endereço:ENDEREÇO

306 | Responsável:NOME
307 | CPF/CNPJ:CPF
308 | Endereço:ENDEREÇO
311 |
312 | 313 | 314 | 322 | 326 | 327 |
315 | 316 | 317 | 318 | 319 | 320 |
DetalhamentoValor
321 |
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, ',', '.') . '
328 |
Autenticação Mecânica 329 |
330 |
331 | 332 | 333 | 336 | 337 | 338 | 339 |
334 | 335 |  077-9 ' . montarLinhaDigitavel($retornoBoletoDetalhado['response']->codigoBarras) . '
340 | 341 | 342 | 347 | 352 | 353 | 354 | 359 | 364 | 365 | 366 | 371 | 376 | 377 | 378 | 383 | 388 | 393 | 398 | 403 | 408 | 409 | 410 | 415 | 420 | 425 | 430 | 435 | 440 | 441 | 442 | 447 | 452 | 453 | 454 | 459 | 460 | 461 | 466 | 467 | 472 | 473 |
343 | Local de Pagamento 344 |
345 | PAGÁVEL EM QUALQUER BANCO 346 |
348 | Vencimento 349 |
350 | ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataVencimento)) . ' 351 |
355 | Beneficiário 356 |
357 | ' . formatCnpjCpf($retornoBoletoDetalhado['response']->cnpjCpfBeneficiario) . ' - ' . $retornoBoletoDetalhado['response']->nomeBeneficiario . ' 358 |
360 | Agência / Conta 361 |
362 | 00019/' . $retornoBoletoDetalhado['response']->contaCorrente . ' 363 |
367 | Endereço do Beneficiário 368 |
369 | ' . mb_strtoupper($montaendereco) . '
370 |
372 | Nosso Número / Cód. do Documento 373 |
374 | 00019/112/' . substr_replace($retornoBoletoDetalhado['response']->nossoNumero, '-', -1, 0) . ' 375 |
379 | Data do Documento 380 |
381 | ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataEmissao)) . ' 382 |
384 | Nº do Documento 385 |
386 | ' . $retornoBoletoDetalhado['response']->seuNumero . '
387 |
389 | Espécia Documento 390 |
391 | DM
392 |
394 | Aceite 395 |
396 | NAO
397 |
399 | Data de Processamento 400 |
401 | ' . date('d/m/Y', strtotime($retornoBoletoDetalhado['response']->dataEmissao)) . '
402 |
404 | (=) Valor do Documento 405 |
406 | ' . number_format($retornoBoletoDetalhado['response']->valorNominal, 2, ',', '.') . ' 407 |
411 | Uso do Banco 412 |
413 |   414 |
416 | Carteira 417 |
418 | 112
419 |
421 | Espécia Moeda 422 |
423 | REAL
424 |
426 | Quantidade Moeda 427 |
428 |   429 |
431 | Valor Moeda 432 |
433 |   434 |
436 | (-) Desconto / Abatimento 437 |
438 | 439 |
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 |
448 | (-) Outras Deduções 449 |

450 |   451 |
455 | (+) Mora / Multa 456 |

457 |   458 |
462 | (+) Outros Acréscimos 463 |

464 |   465 |
468 | (=) Valor Cobrado 469 |

470 |   471 |
474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 |
 
Pagador' . $retornoBoletoDetalhado['response']->pagador->nome . 'CNPJ/CPF: ' . formatCnpjCpf($retornoBoletoDetalhado['response']->pagador->cpfCnpj) . '
' . mb_strtoupper($retornoBoletoDetalhado['response']->pagador->endereco . ' ' . $retornoBoletoDetalhado['response']->pagador->numero . ' ' . $retornoBoletoDetalhado['response']->pagador->complemento) . '
' . mb_strtoupper($retornoBoletoDetalhado['response']->pagador->bairro . ' ' . Mask("#####-###", $retornoBoletoDetalhado['response']->pagador->cep) . ' ' . $retornoBoletoDetalhado['response']->pagador->cidade . '/' . $retornoBoletoDetalhado['response']->pagador->uf) . '
Beneficiário Final' . $retornoBoletoDetalhado['response']->nomeBeneficiario . 'CNPJ/CPF: ' . formatCnpjCpf($retornoBoletoDetalhado['response']->cnpjCpfBeneficiario) . '
 
506 |
Autenticação Mecânica
Ficha de Compensação' . codigoBarra($retornoBoletoDetalhado['response']->codigoBarras) . ' 507 | 508 | 509 | 510 | 511 | 512 | '; 513 | 514 | 515 | 516 | 517 | 518 | $dompdf->loadHtml($html); 519 | 520 | // (Optional) Setup the paper size and orientation 521 | $dompdf->setPaper('A4', 'portrait'); 522 | 523 | // Render the HTML as PDF 524 | $dompdf->render(); 525 | 526 | // Output the generated PDF to Browser 527 | $dompdf->stream($retornoBoletoDetalhado['response']->seuNumero, array("Attachment" => false)); 528 | -------------------------------------------------------------------------------- /docs/API COBRANCA/Cancelar boleto.md: -------------------------------------------------------------------------------- 1 | # CANCELAR BOLETO-INTER 2 | 3 | ## Cancelar Boleto 4 | Necessita informar o nossoNumero. 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 | $nossoNumero = ''; 18 | $motivo = 'ACERTOS';//ACERTOS - APEDIDODOCLIENTE - DEVOLUCAO - PAGODIRETOAOCLIENTE - SUBSTITUICAO 19 | try { 20 | $bankingInter = new InterBanking($config); 21 | $bankingInter->setToken($token); 22 | 23 | $cancelarBoleto = $bankingInter->cancelarBoleto($nossoNumero, $motivo); 24 | print_r($cancelarBoleto); 25 | } catch (\Exception $e) { 26 | echo $e->getMessage(); 27 | } 28 | ``` 29 | Status: 204 - Sucesso, boleto cancelado -------------------------------------------------------------------------------- /docs/API COBRANCA/Incluir boleto de cobrança.md: -------------------------------------------------------------------------------- 1 | # INCLUIR BOLETO COBRANÇA-INTER 2 | 3 | ## Incluir Boleto de Cobrança 4 | O boleto incluído estará disponível para consulta e pagamento, após um tempo apróximado de 5 minutos da sua inclusão. Esse tempo é necessário para o registro do boleto na CIP. 5 | 6 | ## Problemas identificado 7 | Existe uma limitação de requisição por segundos/minuto de 10 requisições, isto é um problema se tiver mais de 60 boletos para ser emitido em um unico lote, não consiguirá efetuar todas as emissões 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 | $dadosBoleto = [ 20 | "seuNumero" => "85401",//obrigatório 21 | "valorNominal" => 50,//obrigatório 22 | "valorAbatimento" => 0, 23 | "dataEmissao" => "2022-04-28", 24 | "dataVencimento" => "2022-07-15",//obrigatório 25 | "numDiasAgenda" => 30,//obrigatório 26 | "cnpjCPFBeneficiario" => '99999999999999',//CNPJ de quem está emitindo o boleto 27 | "pagador" => [ 28 | "cpfCnpj" => "99999999999",//obrigatório 29 | "nome" => "Nome do Pagador",//obrigatório 30 | "email" => "", 31 | "telefone" => "", 32 | "cep" => "95097000",//obrigatório 33 | "numero" => "000", 34 | "complemento" => "", 35 | "bairro" => "Rio Branco", 36 | "cidade" => "Caxias do Sul",//obrigatório 37 | "uf" => "RS",//obrigatório 38 | "endereco" => "Endereço do pagador",//obrigatório 39 | "ddd" => "", 40 | "tipoPessoa" => "FISICA"//obrigatório 41 | ], 42 | "mensagem" => [ 43 | "linha1" => "Teste de evio 1", 44 | "linha2" => "Teste de evio 2", 45 | "linha3" => "", 46 | "linha4" => "", 47 | "linha5" => "" 48 | ], 49 | "desconto1" => [ 50 | "codigoDesconto" => "NAOTEMDESCONTO", 51 | "taxa" => 0, 52 | "valor" => 0, 53 | "data" => "" 54 | ], 55 | "desconto2" => [ 56 | "codigoDesconto" => "NAOTEMDESCONTO", 57 | "taxa" => 0, 58 | "valor" => 0, 59 | "data" => "" 60 | ], 61 | "desconto3" => [ 62 | "codigoDesconto" => "NAOTEMDESCONTO", 63 | "taxa" => 0, 64 | "valor" => 0, 65 | "data" => "" 66 | ], 67 | "multa" => [ 68 | "codigoMulta" => "NAOTEMMULTA", 69 | "data" => "", 70 | "taxa" => 0, 71 | "valor" => 0 72 | ], 73 | "mora" => [ 74 | "codigoMora" => "ISENTO", 75 | "data" => "", 76 | "taxa" => 0, 77 | "valor" => 0 78 | ] 79 | ]; 80 | 81 | $token = '';//seu token 82 | try { 83 | $bankingInter = new InterBanking($config); 84 | $bankingInter->setToken($token); 85 | 86 | echo "
";
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 | 


--------------------------------------------------------------------------------