Boleto com Balancete
Este modelo de boleto é muito utilizado por condomínios e contabilidades e tem como objetivo proporcionar a demonstração prévia das movimentações financeiras do mês para condôminos e clientes. São disponibilizados dados como receitas, despesas e contas a receber. Veja aqui como é um boleto balancete.
Para gerar um boleto bancário do tipo balancete é bem simples e requer apenas três passos:
- Crie a transação
- Defina a transação gerada como do tipo boleto balancete
- Por fim, associe à forma de pagamento via boleto, informando o
charge_id
da transação.
O restante desta página apresenta os procedimentos detalhados, mas você precisa instalar uma de nossas bibliotecas em seu servidor para executar os códigos de exemplo. Certifique-se de que a SDK da Gerencianet foi instalada.
1. Criar transação
Primeiramente, precisamos gerar a transação (também chamada de "cobrança"). É neste momento que será informado o nome do item/produto/serviço, valor da transação, quantidade, dentre outras informações possíveis.
Após criá-la, será retornado o charge_id
, que é o identificador único da transação e que será utilizado para associar à forma de pagamento.
Assim que essa transação é criada, ela recebe o status new
, que significa que a cobrança foi gerada e está aguardando definição da forma de pagamento. Essa cobrança somente terá seu status alterado quando o integrador definir sua forma de pagamento.
Para gerar uma transação, você deve enviar uma requisição POST
para a rota /v1/charge
.
Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground.
O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:
- PHP
- Python
- NodeJS
- .NET
- Java
- GO
- Ruby
- Delphi
a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:
Para verificar mais detalhes, acesse aqui e explore em nosso Playground.
b) Atributos que podem ser utilizados:
Atributo | Descrição | Obrigatório | Tipo |
---|---|---|---|
items | item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens. Atributos de items: name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integeramount // Quantidade. Integer | Sim | Array |
shippings | Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete. Atributos de shippings: name* // Rótulo do frete. Máximo de 255 caracteres. String.value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer | Não | Array |
metadata | Define dados específicos da transação Atributos de metadata: custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null. | Não | Object |
Os campos com * representam valores obrigatórios
2. Defina a transação gerada como do tipo boleto balancete
pós a criação da transação, será o momento de definirmos que o boleto a ser gerado será do tipo balancete.
Para isso, você deve enviar uma requisição POST
para a rota /v1/charge/:id/balance-sheet
, onde :id
é o charge_id
da transação desejada.
Caso queira, você pode explorar e conhecer mais sobre este recurso usando nosso Playground e utilizar como base o JSON abaixo:
NOTA
Cabe frisar que não há um padrão nos itens que serão exibidos, no sentido que o próprio integrador irá definir, através dos atributos devidos, a quantidade de colunas (até 4), linhas, textos e valores a serem exibidos no boleto do tipo balancete.
Em suma, é como se o integrador estivesse trabalhando com uma tabela construída em HTML, mas em formato JSON.
A seguir, um JSON de exemplo que pode ser utilizado para criar um boleto do tipo balancete:
A seguir um exemplo de utilização, de acordo com as SDKs que disponibilizamos:
- PHP
- Python
- NodeJS
- .NET
- Java
- GO
- Ruby
- Delphi
Como resultado do consumo do código do boleto balancete, é possível visualizar um exemplo de layout do boleto do tipo balancete, conforme demonstrado na imagem:
IMPORTANTE
As informações contidas no balancete não serão utilizadas pela Gerencianet. Recebemos o conteúdo da requisição de seu sistema/aplicação e apenas montamos a cobrança da forma que o integrador espera receber, conforme layout de exemplo acima.
Ou seja, a Gerencianet não valida as informações presentes no balancete e nem efetua cálculos de seu balancete, apenas processa e monta os dados dentro do layout conforme a estrutura do código contido em sua requisição à rota POST /charge/:id/balance-sheet
.
IMPORTANTE
As requisições para o endpoint de balancete não devem exceder 300 KB (body da requisição).
a) Estrutura hierárquica dos atributos que podem ser utilizados:
b) Atributos que podem ser utilizados:
Atributo | Descrição | Obrigatório | Tipo |
---|---|---|---|
title | Define o título no topo do boleto balancete. Tamanho: mínimo de 3 caracteres e máximo de 255. | Sim | String |
body | Define o corpo do boleto balancete contendo todas as informações a serem montadas. | Sim | Array |
header | Exibe um texto (título) no cabeçalho. Refere-se ao 1º quadrante do boleto. Tamanho: mínimo de 3 caracteres e máximo de 255. (String). | Sim | String |
rows | Relacionado às linhas utilizadas. Refere-se ao 1º quadrante do boleto. Atributos de rows: align* // alinhamento do texto. Valores possíveis: left , center ou right . (String)number* // Número (String/Integer)neighborhood* // Bairro (String)zipcode* // CEP (sem pontos ou hífen) (String)city* // Cidade (String)complement // Complemento (String/null)state* // Estado (2 caracteres) (Object) | Sim | Array |
header | Dxibe um texto (título) no cabeçalho. Refere-se ao 2º quadrante do boleto. Tamanho: mínimo de 3 caracteres e máximo de 255. (String). | Sim | String |
tables | Propriedade que define a criação da tabela. Refere-se ao 2º quadrante do boleto. | Sim | Array |
rows | Relacionado às linhas utilizadas. Refere-se ao 2º quadrante do boleto. Atributos de rows: align* // alinhamento do texto. Valores possíveis: left , center ou right . (String)number* // Número (String/Integer)neighborhood* // Bairro (String)zipcode* // CEP (sem pontos ou hífen) (String)city* // Cidade (String)complement // Complemento (String/null)state* // Estado (2 caracteres) (Object) | Sim | Array |
Os campos com * representam valores obrigatórios
3. Associar à forma de pagamento via boleto
Com a transação gerada com sucesso, agora vamos associar com a forma de pagamento desejada - neste caso, será banking_billet
(boleto bancário). Para tal, deverá ser informado o charge_id
obtido ao criar a transação.
Neste momento, ao definir boleto bancário como forma de pagamento da transação, seu status será alterado de new
para waiting
. Isso significa que a forma de pagamento foi selecionada e está aguardando a confirmação do pagamento.
Para associar à forma de pagamento, você deve enviar uma requisição POST
para a rota /v1/charge/:id/pay
, onde :id
é o charge_id
da transação desejada.
Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground
O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:
- PHP
- Python
- NodeJS
- .NET
- Java
- GO
- Ruby
- Delphi
a) Estrutura hierárquica dos atributos que podem ser utilizados:
Para verificar mais detalhes, acesse aqui
b) Atributos que podem ser utilizados:
Atributo | Descrição | Obrigatório | Tipo |
---|---|---|---|
payment | Tag raiz | Sim | Objeto Payment |
Objeto Payment
Atributo | Descrição | Obrigatório | Tipo |
---|---|---|---|
banking_billet | Forma de pagamento através de "boleto bancário" | Sim | Objeto Banking_Billet |
Objeto Banking_Billet
Atributo | Descrição | Obrigatório | Tipo |
---|---|---|---|
name | Nome do cliente. Mínimo de 1 caractere e máximo de 255 caracteres (String). | Sim Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente. | String |
cpf | CPF válido do cliente (sem pontos, vírgulas ou hífen). Tamanho: 11 caracteres. | Sim Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente. | String |
email | Email do cliente. Máximo de 255 caracteres. Ex.: email@email.com | Não | String |
phone_number | Telefone do cliente. Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777 | Sim | String |
birth | Data de nascimento do cliente. Formato: YYYY-MM-DD | Não | String |
address | Endereço do cliente. Atributos de address: street* // Nome da rua (Object)number* // Número (String/Integer)neighborhood* // Bairro (String)zipcode* // CEP (sem pontos ou hífen) (String)city* // Cidade (String)complement // Complemento (String/null)state* // Estado (2 caracteres) (Object) | Não | Object |
juridical_person | Dados de pessoa jurídica. Atributos de juridical_person: corporate_name* // Nome da razão social. Mínimo de 1 caractere e máximo de 255. String.cnpj* // CNPJ da empresa. Tamanho: 14 caracteres. String. | Não | Object |
expire_at | Data de vencimento do boleto. Formato: YYYY-MM-DD | Sim | String |
discount | Define dados de desconto sobre a cobrança. Atributos de discount: type*// Tipo do desconto (String). Valores permitidos: currency : o desconto será informado em centavos. percentage : o desconto será informado em porcentagem.cnpj* // CNPJ da empresa. Tamanho: 14 caracteres. String.value*// Valor do desconto (Integer). Se o tipo do desconto for currency , o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage , o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos: 1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599 ;2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500 . | Não | Object |
conditional_discount | Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado. Atributos de conditional_discount: type*// Tipo do desconto (String). Valores permitidos: currency : o desconto será informado em centavos. percentage : o desconto será informado em porcentagem.cnpj* // CNPJ da empresa. Tamanho: 14 caracteres. String.value*// Valor do desconto (Integer). Se o tipo do desconto for currency , o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage , o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos: 1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599 ;2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500 . | Não | Object |
configurations | Permite incluir no boleto multa e juros caso seja pago após o vencimento. Atributos de configurations: fine// Valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar 200 .Mínimo de 0 e máximo de 1000. Integer.Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize 0 como valor do atributo fine interest// Valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar 33 .Mínimo de 0 e máximo de 330. Integer.Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize 0 como valor do atributo interest | Não | Object |
message | Permite incluir no boleto uma "observação", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê. Até 4 linhas contendo 100 caracteres em cada linha. String. O operador \n é utilizado para efetuar a quebra de linha. | Não | String |
Os campos com * representam valores obrigatórios
4. Outros endpoints e métodos
Existem outros endpoints e métodos relacionados a pagamento via boleto bancário do tipo balancete que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa: