{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","settings":"","results":{"codes":[]},"params":[]},"next":{"description":"","pages":[]},"title":"Gerar Bolix","type":"basic","slug":"bolix-boleto-carne","excerpt":"Passo a passo para gerar <a href=\"https://gerencianet.com.br/bolix/\" target=\"_blank\" title=\"página Bolix\">Bolix</a> na API Gerencianet, o Bolix permite gerar cobranças com o pix no boleto, possibilitando mais de uma forma de pagamento aos clientes","body":"O <a href=\"https://gerencianet.com.br/bolix/\" target=\"_blank\" title=\"página Bolix\">Bolix</a>, pix no boleto, permite gerar transações do tipo boleto e carnê para seu cliente com o acréscimo do Pix como forma de pagamento. \nO Bolix quando emitido na forma de boleto pode ser gerado via API em um passo, também conhecido como *One Step* ou em dois passos, o *Two Steps*. \nTambém é disponibilizado a emissão do Bolix como carnê, que consiste em um conjunto de transações (parcelas) geradas em lote e com forma de pagamento já definida com vencimento mensal.\n\nTodos os fluxos e informações para emissões do Bolix tanto como boleto bancário quanto carnê estão detalhados a seguir:\n1. [Criando Bolix com o método de pagamento boleto bancário, transação em *One Step* (Um passo)](#section-1-cria-o-do-bolix-boleto-com-pix-em-one-step-um-passo-).\n\n2. [Criando Bolix com o método de pagamento boleto bancário, transação em *Two Steps* (Dois passos)](#section-2-cria-o-do-bolix-boleto-com-pix-em-two-steps-dois-passos-).\n\n3. [Criando Bolix com o método de pagamento carnê](#section-3-gerando-um-bolix-com-o-m-todo-de-pagamento-carn-).\n[block:callout]\n{\n \"type\": \"danger\",\n \"title\": \"Ativação do Bolix\",\n \"body\": \"Para que você consiga emitir cobranças Bolix, boleto com pix, primeiramente deve-se ativar o Bolix em sua conta Gerencianet, siga estes passos:\\n\\n1- Acesse sua Conta Digital na <a href=\\\"https://sistema.gerencianet.com.br/\\\" target=\\\"_blank\\\" title=\\\"Acessar a conta Gerencianet\\\">plataforma web</a>.\\n2- Clique no menu Cobranças > Configurações > Boletos Bancários e Carnês.\\n3- Por fim, habilite a função “**Bolix**” como nesta <a href=\\\"https://s3.amazonaws.com/gerencianet-pub-prod-1/printscreen/2021/07/12/matheus.rodrigues/c4c98a-4bdd27a8-c0f2-4580-ab12-feccde184c96.png\\\" target=\\\"_blank\\\" title=\\\"Passo a passo para habilitar o Bolix\\\">imagem</a>.\"\n}\n[/block]\n\n[block:callout]\n{\n \"type\": \"warning\",\n \"body\": \"O restante desta página apresenta os procedimentos detalhados para criação do Bolix com os métodos de pagamento boleto bancário e carnê, 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.\",\n \"title\": \"SDK's\"\n}\n[/block]\n# 1. Criação do Bolix, boleto com pix, em *One Step* (Um passo)\n\nNesta opção é necessário que o *body* da requisição contenha todos os atributos mínimos obrigatórios para a emissão do titulo.\nAbaixo temos os exemplos de implementação utilizando as SDK's disponíveis:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\n require __DIR__ . '/../../vendor/autoload.php'; // caminho relacionado a SDK\\n\\n use Gerencianet\\\\Exception\\\\GerencianetException;\\n use Gerencianet\\\\Gerencianet;\\n\\n $clientId = 'informe_seu_client_id';// insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n $clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n\\n $options = [\\n 'client_id' => $clientId,\\n 'client_secret' => $clientSecret,\\n 'sandbox' => true // altere conforme o ambiente (true = homologação e false = producao)\\n ];\\n \\n $item_1 = [\\n 'name' => 'Item 1', // nome do item, produto ou serviço\\n 'amount' => 1, // quantidade\\n 'value' => 1000 // valor (1000 = R$ 10,00) (Obs: É possível a criação de itens com valores negativos. Porém, o valor total da fatura deve ser superior ao valor mínimo para geração de transações.)\\n ];\\n $items = [\\n $item_1\\n ];\\n $metadata = array('notification_url'=>'sua_url_de_notificacao_.com.br'); //Url de notificações onde vamos notificá-lo, independente se for pago pelo código de barras do boleto quanto pelo QR Code.\\n $customer = [\\n 'name' => 'Gorbadoc Oldbuck', // nome do cliente\\n 'cpf' => '94271564656', // cpf válido do cliente\\n 'phone_number' => '5144916523', // telefone do cliente\\n ];\\n $discount = [ // configuração de descontos\\n 'type' => 'currency', // tipo de desconto a ser aplicado\\n 'value' => 599 // valor de desconto \\n ];\\n $configurations = [ // configurações de juros e mora\\n 'fine' => 200, // porcentagem de multa\\n 'interest' => 33 // porcentagem de juros\\n ];\\n $conditional_discount = [ // configurações de desconto condicional\\n 'type' => 'percentage', // seleção do tipo de desconto \\n 'value' => 500, // porcentagem de desconto\\n 'until_date' => '2019-08-30' // data máxima para aplicação do desconto\\n ];\\n $bankingBillet = [\\n 'expire_at' => '2022-09-01', // data de vencimento do titulo\\n 'message' => 'Pague pelo código de barras ou pelo QR Code', // mensagem a ser exibida no boleto\\n 'customer' => $customer,\\n 'discount' =>$discount,\\n 'conditional_discount' => $conditional_discount\\n ];\\n $payment = [\\n 'banking_billet' => $bankingBillet // forma de pagamento (banking_billet = Bolix)\\n ];\\n $body = [\\n 'items' => $items,\\n 'metadata' =>$metadata,\\n 'payment' => $payment\\n ];\\n try {\\n $api = new Gerencianet($options);\\n $pay_charge = $api->oneStep([],$body);\\n echo '<pre>';\\n print_r($pay_charge);\\n echo '<pre>';\\n \\n } catch (GerencianetException $e) {\\n print_r($e->code);\\n print_r($e->error);\\n print_r($e->errorDescription);\\n } catch (Exception $e) {\\n print_r($e->getMessage());\\n }\",\n \"language\": \"php\",\n \"name\": \"PHP\"\n },\n {\n \"code\": \"oneStep Node.JS\\n'use strict';\\n\\nvar Gerencianet = require('gn-api-sdk-node');\\nvar options = require('../../credentials');\\n\\nvar body = {\\n\\n payment: {\\n banking_billet: {\\n expire_at: '2020-06-12', \\n customer: {\\n name: 'Gorbadoc Oldbuck',\\n email: 'oldbuck:::at:::gerencianet.com.br',\\n cpf: '94271564656', \\n phone_number: '5144916523'\\n }\\n }\\n },\\n\\n items: [{\\n name: 'Product 1',\\n value: 1000,\\n amount: 2\\n }],\\n shippings: [{\\n name: 'Default Shipping Cost',\\n value: 100\\n }]\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n .oneStep([], body)\\n .then(console.log)\\n .catch(console.log)\\n .done();\",\n \"language\": \"javascript\",\n \"name\": \"NodeJS\"\n },\n {\n \"code\": \"# encoding: utf-8\\nfrom gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\ngn = Gerencianet(CREDENTIALS)\\n\\nbody = {\\n 'items': [{\\n 'name': \\\"Product 1\\\",\\n 'value': 1000,\\n 'amount': 1\\n }],\\n 'shippings': [{\\n 'name': \\\"Default Shipping Cost\\\",\\n 'value': 100\\n }],\\n 'payment': {\\n 'banking_billet': {\\n 'expire_at': '2022-12-12',\\n 'customer': {\\n 'name': \\\"Gorbadoc Oldbuck\\\",\\n 'email': \\\"[email protected]\\\",\\n 'cpf': \\\"94271564656\\\",\\n 'birth': \\\"1977-01-15\\\",\\n 'phone_number': \\\"62986070247\\\"\\n \\n },\\n 'configurations': {\\n 'fine': 200,\\n 'interest': 33, \\n },\\n 'message': \\\"Pague pelo código de barras ou pelo QR Code\\\"\\n } \\n }\\n}\\n\\nresponse = gn.create_charge_onestep(params=None, body=body)\\nprint(response)\",\n \"language\": \"python\",\n \"name\": \"Python\"\n },\n {\n \"code\": \"oneStep JAVA\\npackage br.com.gerencianet.charge.json;\\nimport java.util.HashMap;\\nimport org.json.JSONArray;\\nimport org.json.JSONObject;\\nimport br.com.gerencianet.Credentials;\\nimport br.com.gerencianet.gnsdk.Gerencianet;\\nimport br.com.gerencianet.gnsdk.exceptions.GerencianetException;\\npublic class oneStep {\\n public static void main(String[] args) {\\n /* ********* Set credentials parameters ******** */\\n Credentials credentials = new Credentials();\\n JSONObject options = new JSONObject();\\n options.put(\\\"client_id\\\", credentials.getClientId());\\n options.put(\\\"client_secret\\\", credentials.getClientSecret());\\n options.put(\\\"partner_token\\\", credentials.getPartnerToken());\\n options.put(\\\"sandbox\\\", credentials.isSandbox());\\n /* ************************************************* */ \\n \\n // items\\n JSONArray items = new JSONArray();\\n JSONObject item1 = new JSONObject();\\n item1.put(\\\"name\\\", \\\"Item 1\\\");\\n item1.put(\\\"amount\\\", 1);\\n item1.put(\\\"value\\\", 600);\\n JSONObject item2 = new JSONObject(\\\"{\\\\\\\"name\\\\\\\":\\\\\\\"Item 2\\\\\\\", \\\\\\\"amount\\\\\\\":1, \\\\\\\"value\\\\\\\":1000}\\\");\\n items.put(item1);\\n items.put(item2);\\n \\n //JSONObject body = new JSONObject();\\n //body.put(\\\"items\\\", items);\\n \\n //customer\\n JSONObject customer = new JSONObject();\\n customer.put(\\\"name\\\", \\\"Gorbadoc Oldbuck\\\");\\n customer.put(\\\"cpf\\\", \\\"94271564656\\\");\\n customer.put(\\\"phone_number\\\", \\\"5144916523\\\");\\n \\n //URL de notificações\\n JSONObject metadata = new JSONObject();\\n metadata.put(\\\"notification_url\\\", \\\"https://requestb.in/16rpx6y1\\\");\\n metadata.put(\\\"custom_id\\\", \\\"0007\\\");\\n \\n //desconto \\n JSONObject discount = new JSONObject();\\n discount.put(\\\"type\\\",\\\"currency\\\");\\n discount.put(\\\"value\\\",599);\\n \\n //juros e multa\\n JSONObject configurations = new JSONObject();\\n configurations.put(\\\"fine\\\", 200);\\n configurations.put(\\\"interest\\\", 33);\\n \\n //disconto condicional\\n JSONObject conditional_discount = new JSONObject();\\n conditional_discount.put(\\\"type\\\",\\\"percentage\\\");\\n conditional_discount.put(\\\"value\\\", 500);\\n conditional_discount.put(\\\"until_date\\\", \\\"2022-08-30\\\");\\n \\n \\n JSONObject bankingBillet = new JSONObject();\\n bankingBillet.put(\\\"expire_at\\\", \\\"2022-09-15\\\");\\n bankingBillet.put(\\\"customer\\\", customer);\\n bankingBillet.put(\\\"discount\\\", discount);\\n bankingBillet.put(\\\"configurations\\\", configurations);\\n bankingBillet.put(\\\"conditional_discount\\\", conditional_discount);\\n \\n JSONObject payment = new JSONObject();\\n payment.put(\\\"banking_billet\\\", bankingBillet);\\n JSONObject body = new JSONObject();\\n body.put(\\\"payment\\\", payment);\\n body.put(\\\"items\\\", items);\\n body.put(\\\"metadata\\\", metadata);\\n \\n try {\\n Gerencianet gn = new Gerencianet(options);\\n JSONObject response = gn.call(\\\"oneStep\\\", new HashMap<String,String>(), body);\\n System.out.println(response);\\n }catch (GerencianetException e){\\n System.out.println(e.getCode());\\n System.out.println(e.getError());\\n System.out.println(e.getErrorDescription());\\n }\\n catch (Exception e) {\\n System.out.println(e.getMessage());\\n }\\n }\\n}\",\n \"language\": \"java\",\n \"name\": \"Java\"\n },\n {\n \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n class OneStep\\n {\\n public static void Execute()\\n {\\n dynamic endpoints = new Endpoints(Credentials.Default.ClientId, Credentials.Default.ClientSecret,\\nCredentials.Default.Sandbox);\\n\\n var body = new\\n {\\n items = new[]\\n {\\n new\\n {\\n name = \\\"Product 1\\\",\\n value = 1000,\\n amount = 2\\n }\\n },\\n shippings = new[]\\n {\\n new\\n {\\n name = \\\"Default Shipping Cost\\\",\\n value = 100\\n }\\n },\\n payment = new\\n {\\n banking_billet = new\\n {\\n expire_at = DateTime.Now.AddDays(1).ToString(\\\"yyyy-MM-dd\\\"),\\n customer = new\\n {\\n name = \\\"Gorbadoc Oldbuck\\\",\\n email = \\\"[email protected]\\\",\\n cpf = \\\"94271564656\\\",\\n birth = \\\"1977-01-15\\\",\\n phone_number = \\\"5144916523\\\"\\n }\\n }\\n }\\n };\\n\\n try\\n {\\n var response = endpoints.OneStep(null, body);\\n Console.WriteLine(response);\\n }\\n catch (GnException e)\\n {\\n Console.WriteLine(e.ErrorType);\\n Console.WriteLine(e.Message);\\n }\\n }\\n }\\n}\",\n \"language\": \"csharp\",\n \"name\": \".NET\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/dmalberto/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"../configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tcustomer := map[string]interface{}{\\n\\t\\t\\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n\\t\\t\\\"cpf\\\": \\\"94271564656\\\",\\n\\t\\t\\\"phone_number\\\": \\\"51944916523\\\",\\n\\t\\t\\\"email\\\": \\\"[email protected]\\\",\\n\\t}\\n\\n\\tbody := map[string]interface{} {\\n\\t\\t\\\"payment\\\": map[string]interface{} {\\n\\t\\t\\t\\\"banking_billet\\\": map[string]interface{} {\\n\\t\\t\\t\\t\\\"expire_at\\\": \\\"2022-12-12\\\",\\n\\t\\t\\t\\t\\\"customer\\\": customer,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t\\t\\\"items\\\": []map[string]interface{}{\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"name\\\": \\\"Product 1\\\",\\n\\t\\t\\t\\t\\\"value\\\": 1000,\\n\\t\\t\\t\\t\\\"amount\\\": 2,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t\\t\\\"shippings\\\": []map[string]interface{} {\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"name\\\": \\\"Default Shipping Cost\\\",\\n\\t\\t\\t\\t\\\"value\\\": 100,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t}\\n\\n\\tres, err := gn.CreateChargeOneStep(body) // no lugar do 1 coloque o charge_id certo\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\",\n \"name\": \"Go\"\n },\n {\n \"code\": \"require \\\"gerencianet\\\"\\nrequire_relative \\\"./credentials\\\"\\n\\noptions = {\\n client_id: CREDENTIALS::CLIENT_ID,\\n client_secret: CREDENTIALS::CLIENT_SECRET,\\n sandbox: CREDENTIALS::SANDBOX\\n}\\n\\nbody = {\\n items: [{\\n name: \\\"Product 1\\\",\\n value: 1000,\\n amount: 2\\n }],\\n shippings: [{\\n name: \\\"Default Shipping Cost\\\",\\n value: 100\\n }],\\n payment: {\\n banking_billet: {\\n expire_at: tomorrow.strftime,\\n customer: {\\n name: \\\"Gorbadoc Oldbuck\\\",\\n email: \\\"[email protected]\\\",\\n cpf: \\\"94271564656\\\",\\n birth: \\\"1977-01-15\\\",\\n phone_number: \\\"5144916523\\\"\\n }\\n }\\n }\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.create_charge_onestep(body: body)\",\n \"language\": \"ruby\",\n \"name\": \"Ruby\"\n },\n {\n \"code\": \"interface\\n\\nfunction PayOneStepWithBillet: String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nvar\\n Body: String;\\nbegin\\n Body :=\\n '{'+\\n '\\\"metadata\\\": {'+\\n '\\\"custom_id\\\": \\\"id_0007\\\",'+\\n '\\\"notification_url\\\": \\\"https://url-do-cliente.com.br/\\\"'+\\n '},'+\\n '\\\"payment\\\": {'+\\n '\\\"banking_billet\\\": {'+\\n '\\\"configurations\\\": {'+\\n '\\\"fine\\\": 200,'+\\n '\\\"interest\\\": 33'+\\n '},'+\\n '\\\"conditional_discount\\\": {'+\\n '\\\"until_date\\\": \\\"2019-08-30\\\",'+\\n '\\\"type\\\": \\\"percentage\\\",'+\\n '\\\"value\\\": 500'+\\n '},'+\\n '\\\"discount\\\": {'+\\n '\\\"type\\\": \\\"currency\\\",'+\\n '\\\"value\\\": 599'+\\n '},'+\\n '\\\"expire_at\\\": \\\"2022-09-15\\\",'+\\n '\\\"customer\\\": {'+\\n '\\\"name\\\": \\\"Gorbadoc Oldbuck\\\",'+\\n '\\\"cpf\\\": \\\"94271564656\\\",'+\\n '\\\"phone_number\\\": \\\"5144916523\\\"'+\\n '}'+\\n '}'+\\n '},'+\\n '\\\"items\\\": ['+\\n '{'+\\n '\\\"amount\\\": 1,'+\\n '\\\"name\\\": \\\"Item 1\\\",'+\\n '\\\"value\\\": 600'+\\n '},'+\\n '{'+\\n '\\\"amount\\\": 1,'+\\n '\\\"name\\\": \\\"Item 2\\\",'+\\n '\\\"value\\\": 1000'+\\n '}'+\\n ']'+\\n '}';\\n Result := ExecuteGerenciaNetRequest( 'payOneStep','','',Body );\\nend;\",\n \"language\": \"d\",\n \"name\": \"Delphi\"\n }\n ]\n}\n[/block]\n<br>\n\n### Dados de entrada e saída do Bolix em *One Step*:\n\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"{\\n \\\"items\\\": [\\n {\\n \\\"name\\\": \\\"Meu Produto\\\",\\n \\\"value\\\": 5990,\\n \\\"amount\\\": 1\\n }\\n ],\\n \\\"payment\\\": {\\n \\\"banking_billet\\\": {\\n \\\"customer\\\": {\\n \\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n \\\"cpf\\\": \\\"94271564656\\\",\\n \\\"email\\\": \\\"[email protected]\\\",\\n \\\"phone_number\\\": \\\"5144916523\\\",\\n \\\"address\\\": {\\n \\\"street\\\": \\\"Avenida Juscelino Kubitschek\\\",\\n \\\"number\\\": \\\"909\\\",\\n \\\"neighborhood\\\": \\\"Bauxita\\\",\\n \\\"zipcode\\\": \\\"35400000\\\",\\n \\\"city\\\": \\\"Ouro Preto\\\",\\n \\\"complement\\\": \\\"\\\",\\n \\\"state\\\": \\\"MG\\\"\\n }\\n },\\n \\\"expire_at\\\": \\\"2022-12-15\\\",\\n \\\"configurations\\\": {\\n \\\"fine\\\": 200,\\n \\\"interest\\\": 33\\n },\\n \\\"message\\\": \\\"Pague pelo código de barras ou pelo QR Code\\\"\\n }\\n }\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de entrada\"\n },\n {\n \"code\": \"{\\n \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n \\\"data\\\": {\\n \\\"barcode\\\": \\\"00000.00000 00000.000000 00000.000000 0 00000000000000\\\", // linha digitável do boleto\\n \\\"pix\\\":{\\n \\\"qrcode\\\":\\\"00020101021226990014BR.GOV.BCB.PIX2577qrcodes-pix.gerencianet.com.br/bolix/v2/cobv/0000000000000000000000000000GERENCIANET SA6010OURO PRETO62070503***63047CB1\\\", // BRCode ou copia e cola\\n \\\"qrcode_image\\\":\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmc vMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NSA0NSIgc2hhcGUtcmVuZGVyaW5nPSJjcmlzcEVkZ2VzIj48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNMCAwaDQ1djQ1SD...\\\" // QR Code imagem\\n },\\n \\\"link\\\": \\\"link_https_para_acesso_o_bolix\\\", // link do Bolix gerado\\n \\\"pdf\\\": {\\n \\\"charge\\\": \\\"link_https_do_pdf_da_cobranca\\\" // link do PDF do Bolix\\n },\\n \\\"expire_at\\\": \\\"2022-12-15\\\", // data de vencimento do boleto no seguinte formato: 2022-12-15 (ou seja, equivale a 15/12/2022)\\n \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n \\\"status\\\": \\\"waiting\\\", // forma de pagamento selecionada, aguardando a confirmação do pagamento (\\\"waiting\\\" equivale a \\\"aguardando\\\")\\n \\\"total\\\": 5990, // valor, em centavos. Por exemplo: 5990 (equivale a R$ 59,90)\\n \\\"payment\\\": \\\"banking_billet\\\" // forma de pagamento associada à esta transação (\\\"banking_billet\\\" equivale a \\\"boleto bancário\\\")\\n }\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de saída\"\n }\n ]\n}\n[/block]\n<br>\n\n## a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<pre>\"OneStep\": \"/Charge/one-step\"\n \"items\"\n \"name\"\n \"value\"\n \"amount\"\n \"marketplace\"\n \"payee_code\"\n \"percentage\"\n \"shippings\"\n \"name\"\n \"value\"\n \"payee_code\"\n \"metadata\"\n \"custom_id\"\n \"notification_url\"\n \"payment\"\n \"banking_billet\"\n \"customer\"\n \"name\"\n \"cpf\"\n \"email\"\n \"phone_number\"\n \"birth\"\n \"address\"\n \"street\"\n \"number\"\n \"neighborhood\"\n \"zipcode\"\n \"city\"\n \"complement\"\n \"state\"\n \"juridical_person\"\n \"corporate_name\"\n \"cnpj\"\n \"expire_at\"\n \"discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"conditional_discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"until_date\"\n \"configurations\"\n \"fine\"\n \"interest\"\n \"message\"</pre>\n\n## b) Atributos que podem ser utilizados para criar um título:\n<br>\n\n*Objeto **items***\n\n[block:parameters]\n{\n \"data\": {\n \"0-0\": \"<code>items</code>\",\n \"0-1\": \"Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de items</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome do item, produto ou serviço. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255 caracteres (String).</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor, em centavos. Ex: R$ 10,00 = 1000. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>amount</code> // Quantidade. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer (padrão: 1)</span></strong></div>\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Array\",\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"1-0\": \"<code>shippings</code>\",\n \"1-1\": \"Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de shippings</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Rótulo do frete. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor do frete, em centavos (1990 equivale a R$19,90). <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\",\n \"1-2\": \"Não\",\n \"1-3\": \"Array\",\n \"2-0\": \"<code>metadata</code>\",\n \"2-1\": \"Define dados específicos da transação.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de metadata</em></span>\\n\\n<div class=\\\"tab2\\\"><code>custom_id</code> // 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. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>notification_url</code> // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\",\n \"2-2\": \"Não\",\n \"2-3\": \"Object\"\n },\n \"cols\": 4,\n \"rows\": 3\n}\n[/block]\n<br>\n\n*Objeto **Payment***\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>banking_billet</code>\",\n \"0-1\": \"Forma de pagamento através de \\\"boleto bancário\\\"\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Objeto **Banking_Billet**\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br>\n\n*Objeto **Banking_Billet***\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"1-0\": \"<code>cpf</code>\",\n \"1-1\": \"CPF válido do cliente (sem pontos, vírgulas ou hífen).\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Tamanho: 11 caracteres.</span></strong>\",\n \"1-2\": \"Sim\\n\\n*Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.*\",\n \"1-3\": \"String\",\n \"2-0\": \"<code>email</code>\",\n \"2-1\": \"Email do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. Ex.: [email protected]</span></strong>\",\n \"2-2\": \"Não\",\n \"2-3\": \"String\",\n \"3-0\": \"<code>phone_number</code>\",\n \"3-1\": \"Telefone do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777</span></strong>\",\n \"4-0\": \"<code>birth</code>\",\n \"4-1\": \"Data de nascimento do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong>\",\n \"5-0\": \"<code>address</code>\",\n \"5-1\": \"Endereço do cliente.\\n\\n<span class=\\\"tab1\\\">*Atributos de address*</span>\\n\\n<div class=\\\"tab2\\\"><code>street<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // nome da rua <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>number<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // número <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String/Integer)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>neighborhood<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Bairro <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>zipcode<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // CEP (sem pontos ou hífen) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>city<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // cidade <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>complement</code> // complemento <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String/null)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>state<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // estado (2 caracteres) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object)</strong></span></div>\",\n \"6-0\": \"<code>juridical_person</code>\",\n \"6-1\": \"Dados de pessoa jurídica\\n\\n<span class=\\\"tab1\\\">*Atributos de juridical_person*</span>\\n\\n<div class=\\\"tab2\\\">\\n<code>corporate_name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome da razão social. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255. String.</strong></span></div>\\n\\n<div class=\\\"tab2\\\">\\n<code>cnpj<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // CNPJ da empresa. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Tamanho: 14 caracteres. String.</strong></span>\\n</div>\",\n \"7-0\": \"<code>expire_at</code>\",\n \"7-1\": \"Data de vencimento do boleto.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong>\",\n \"8-0\": \"<code>discount</code>\",\n \"8-1\": \"Define dados de desconto sobre a cobrança.\\n\\n<span class=\\\"tab1\\\">*Atributos de discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, 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 <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.\\n</strong>\\n</div>\",\n \"9-0\": \"<code>conditional_discount</code>\",\n \"9-1\": \"Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.\\n\\n<span class=\\\"tab1\\\">*Atributos de conditional_discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, 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 <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.</strong></div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">until_date<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Data máxima que o desconto será concedido. (String). </strong><strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong></div>\",\n \"10-0\": \"<code>configurations</code>\",\n \"10-1\": \"Permite incluir no boleto multa e juros caso seja pago após o vencimento.\\n\\n<span class=\\\"tab1\\\">*Atributos de configurations*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">fine</span>, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar <code>200</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 1000. Integer. \\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize <code>0</code> como valor do atributo <code>fine</code></strong></span></div>\\n</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">interest</span>, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar <code>33</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 330. Integer.\\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize <code>0</code> como valor do atributo <code>interest</code></strong></span></div>\\n</strong>\\n</div>\",\n \"3-2\": \"Não\",\n \"4-2\": \"Não\",\n \"5-2\": \"Não\",\n \"6-2\": \"Não\",\n \"7-2\": \"Sim\",\n \"8-2\": \"Não\",\n \"9-2\": \"Não\",\n \"10-2\": \"Não\",\n \"3-3\": \"String\",\n \"4-3\": \"String\",\n \"5-3\": \"Object\",\n \"6-3\": \"Object\",\n \"7-3\": \"String\",\n \"8-3\": \"Object\",\n \"9-3\": \"Object\",\n \"10-3\": \"Object\",\n \"0-0\": \"<code>name</code>\",\n \"0-1\": \"Nome do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255.</span></strong>\",\n \"0-2\": \"Sim\\n\\n*Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.*\",\n \"0-3\": \"String\"\n },\n \"cols\": 4,\n \"rows\": 11\n}\n[/block]\n<strong style=\"font-size:10px;color:#ea6e1c\">* valor obrigatório</strong>\n\n# 2. Criação do Bolix, boleto com pix, em *Two Steps* (Dois passos)\n\n1. [Crie a transação](#section-2-1-criar-transa-o), informando o item/produto/serviço, valor, quantidade, etc;\n\n2. [Associe à forma de pagamento via boleto](#section-2-2-associar-forma-de-pagamento-via-boleto), informando o <code>charge_id</code> da transação e os dados do cliente.\n\nO 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](https://dev.gerencianet.com.br/docs/instalacao-da-api).\n\n<hr>\n\n## 2.1. Criar transação\n\nPrimeiramente, 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.\n\nApós criá-la, será retornado o <code>charge_id</code>, que é o identificador único da transação e que será utilizado para associar à forma de pagamento.\n\nAssim que essa transação é criada, ela recebe o status <code>new</code>, 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.\n\nPara gerar uma transação, você deve enviar uma requisição <code>POST</code> para a rota <code>/v1/charge</code>.\n\nO exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\n \\nrequire __DIR__ . '/../../vendor/autoload.php';\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__ . '/../config.json');\\n$options = json_decode($file, true);\\nunset($options['pix_cert']);\\n \\n$item_1 = [\\n 'name' => 'Item 1', // nome do item, produto ou serviço\\n 'amount' => 1, // quantidade\\n 'value' => 1000 // valor (1000 = R$ 10,00) (Obs: É possível a criação de itens com valores negativos. Porém, o valor total da fatura deve ser superior ao valor mínimo para geração de transações.)\\n];\\n \\n$item_2 = [\\n 'name' => 'Item 2', // nome do item, produto ou serviço\\n 'amount' => 2, // quantidade\\n 'value' => 2000 // valor (2000 = R$ 20,00)\\n];\\n \\n$items = [\\n $item_1,\\n $item_2\\n];\\n\\n// Exemplo para receber notificações da alteração do status da transação:\\n// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']\\n// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes\\n\\n// Como enviar seu $body com o $metadata\\n// $body = [\\n// 'items' => $items,a\\n//\\t\\t'metadata' => $metadata\\n// ];\\n\\n$body = [\\n 'items' => $items\\n];\\n\\ntry {\\n $api = new Gerencianet($options);\\n $charge = $api->createCharge([], $body);\\n \\n print_r($charge);\\n} catch (GerencianetException $e) {\\n print_r($e->code);\\n print_r($e->error);\\n print_r($e->errorDescription);\\n} catch (Exception $e) {\\n print_r($e->getMessage());\\n}\",\n \"language\": \"php\",\n \"name\": \"PHP\"\n },\n {\n \"code\": \"'use strict';\\n\\nvar Gerencianet = require('gn-api-sdk-node');\\nvar options = require('../../credentials');\\n\\n\\nvar body = {\\n items: [{\\n name: 'Product 1',\\n value: 1000,\\n amount: 2\\n }],\\n shippings: [{\\n name: 'Default Shipping Cost',\\n value: 100\\n }]\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n .createCharge({}, body)\\n .then(console.log)\\n .catch(console.log)\\n .done();\",\n \"language\": \"javascript\",\n \"name\": \"NodeJS\"\n },\n {\n \"code\": \"# encoding: utf-8\\n\\nfrom gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\n\\ngn = Gerencianet(CREDENTIALS)\\n\\nbody = {\\n 'items': [{\\n 'name': \\\"Product 1\\\",\\n 'value': 1100,\\n 'amount': 2\\n }],\\n 'shippings': [{\\n 'name': \\\"Default Shipping Cost\\\",\\n 'value': 100\\n }]\\n}\\n\\nresponse = gn.create_charge(body=body)\\nprint(response)\",\n \"language\": \"python\",\n \"name\": \"Python\"\n },\n {\n \"code\": \"/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\\n\\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \\\"body\\\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \\\"body\\\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\\n\\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \\\"body\\\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\\n\\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\\ne Map<String, Object>\\n\\n\\nJSONObject\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/defaults/charge/json/CreateCharge.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/defaults/charge/map/CreateCharge.java\\n\\n*/\",\n \"language\": \"java\",\n \"name\": \"Java\"\n },\n {\n \"code\": \"dynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar body = new\\n{\\n items = new[] {\\n new {\\n name = \\\"Product 1\\\",\\n value = 1000,\\n amount = 2\\n }\\n },\\n shippings = new[] {\\n new {\\n name = \\\"Default Shipping Cost\\\",\\n value = 100\\n }\\n }\\n};\\n \\nvar response = endpoints.CreateCharge(null, body);\\nConsole.WriteLine(response);\",\n \"language\": \"csharp\",\n \"name\": \".NET\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tbody := map[string]interface{} {\\n\\t\\t\\\"items\\\": []map[string]interface{}{\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"name\\\": \\\"Product 1\\\",\\n\\t\\t\\t\\t\\\"value\\\": 1000,\\n\\t\\t\\t\\t\\\"amount\\\": 2,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t\\t\\\"shippings\\\": []map[string]interface{} {\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"name\\\": \\\"Default Shipping Cost\\\",\\n\\t\\t\\t\\t\\\"value\\\": 100,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t}\\n\\n\\tres, err := gn.CreateCharge(body)\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\",\n \"name\": \"Go\"\n },\n {\n \"code\": \"require \\\"gerencianet\\\"\\nrequire_relative \\\"./credentials\\\"\\n\\noptions = {\\n client_id: CREDENTIALS::CLIENT_ID,\\n client_secret: CREDENTIALS::CLIENT_SECRET,\\n sandbox: true\\n}\\n\\nbody = {\\n items: [{\\n name: \\\"Product 1\\\",\\n value: 1000,\\n amount: 2\\n }],\\n shippings: [{\\n name: \\\"Default Shipping Cost\\\",\\n value: 100\\n }]\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.create_charge(body: body\",\n \"language\": \"ruby\",\n \"name\": \"Ruby\"\n },\n {\n \"code\": \"interface\\nfunction CreateCharge: String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction CreateCharge: String;\\nvar \\nBody : String;\\n\\nbegin \\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize(); \\n\\n Body := \\n '{'+\\n '\\\"items\\\":'+\\n '['+\\n '{'+\\n '\\\"name\\\":\\\"test article\\\",'+\\n '\\\"value\\\":1900,'+\\n '\\\"amount\\\":2'+\\n '},'+\\n '{'+\\n '\\\"name\\\":\\\"test article 2\\\",'+\\n '\\\"value\\\":3000,'+\\n '\\\"amount\\\":1'+\\n '}'+\\n ']'+\\n '}';\\n\\n Result := ExecuteGerenciaNetRequest( 'createCharge','','',Body );\\nend;\",\n \"language\": \"d\",\n \"name\": \"Delphi\"\n }\n ]\n}\n[/block]\n### Dados de entrada e saída na criação da transação:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"{\\n \\\"items\\\": [\\n {\\n \\\"name\\\": \\\"Meu Produto\\\",\\n \\\"value\\\": 8900,\\n \\\"amount\\\": 1\\n }\\n ]\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de entrada\"\n },\n {\n \"code\": \"{\\n \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n \\\"data\\\": {\\n \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n \\\"status\\\": \\\"new\\\", // cobrança gerada, aguardando definição da forma de pagamento\\n \\\"total\\\": 8900, // valor total da transação (em centavos, sendo 8900 = R$89,00)\\n \\\"custom_id\\\": null, // identificador próprio opcional\\n \\\"created_at\\\": \\\"2021-06-01 14:58:46\\\" // data e hora da criação da transação\\n }\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de saída\"\n }\n ]\n}\n[/block]\n<br>\n\n## a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<pre>\"id\": \"/Charge\"\n \"items\"\n \"name\"\n \"value\"\n \"amount\"\n \"marketplace\"\n \"payee_code\"\n \"percentage\"\n \"shippings\"\n \"name\"\n \"value\"\n \"payee_code\"\n \"metadata\"\n \"custom_id\"\n \"notification_url\"</pre>\n\nPara verificar mais detalhes, <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge\" target=\"_blank\">acesse aqui</a> e explore em nosso Playground.\n\n<br>\n\n## b) Atributos que podem ser utilizados para criar uma transação:\n\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>items</code>\",\n \"0-1\": \"Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de items</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome do item, produto ou serviço. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255 caracteres (String).</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor, em centavos. Ex: R$ 10,00 = 1000. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>amount</code> // Quantidade. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer (padrão: 1)</span></strong></div>\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Array\",\n \"1-0\": \"<code>shippings</code>\",\n \"1-1\": \"Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de shippings</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Rótulo do frete. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor do frete, em centavos (1990 equivale a R$19,90). <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>payeeCode</code>, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao \\\"identificador da conta\\\" Gerencianet (<a href=\\\"https://cdn.discordapp.com/attachments/652136190006525955/809138574549188618/identificador-conta.jpg\\\" target=\\\"_blank\\\">onde localizar meu identificador?</a>) <span class=\\\"atributo\\\">(String)</span></strong>\\n<strong class=\\\"descricao-atributo\\\"></div>\",\n \"1-2\": \"Não\",\n \"1-3\": \"Array\",\n \"2-0\": \"<code>metadata</code>\",\n \"2-1\": \"Define dados específicos da transação.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de metadata</em></span>\\n\\n<div class=\\\"tab2\\\"><code>custom_id</code> // 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. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>notification_url</code> // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\",\n \"2-2\": \"Não\",\n \"2-3\": \"Object\"\n },\n \"cols\": 4,\n \"rows\": 3\n}\n[/block]\n<strong class=\"atributo-obrigatorio-texto\">* valor obrigatório</strong>\n\n<br>\n\n<hr>\n\n## 2.2. Associar à forma de pagamento via boleto\n\nCom a transação gerada com sucesso, agora vamos associar com a forma de pagamento <code>banking_billet</code> (boleto bancário) e assim gerar o Bolix. Para tal, deverá ser informado o <code>charge_id</code> obtido ao criar a transação.\n\nNeste momento, ao definir boleto bancário como forma de pagamento da transação, seu status será alterado de <code>new</code> para <code>waiting</code>. Isso significa que a forma de pagamento foi selecionada e está aguardando a confirmação do pagamento.\n\nPara associar à forma de pagamento, você deve enviar uma requisição <code>POST</code> para a rota <code>/v1/charge/:id/pay</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada.\n\nO boleto bancário que será gerado já vem com a forma de pagamento Pix inclusa.\n\nO exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\n \\nrequire __DIR__ . '/../../vendor/autoload.php';\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__ . '/../config.json');\\n$options = json_decode($file, true);\\nunset($options['pix_cert']);\\n \\n// $charge_id refere-se ao ID da transação gerada anteriormente\\n$params = [\\n 'id' => $charge_id\\n];\\n \\n$customer = [\\n 'name' => 'Gorbadoc Oldbuck', // nome do cliente\\n 'cpf' => '94271564656' , // cpf válido do cliente\\n 'phone_number' => '5144916523' // telefone do cliente\\n];\\n \\n$bankingBillet = [\\n 'expire_at' => '2022-12-12', // data de vencimento do boleto (formato: YYYY-MM-DD)\\n 'customer' => $customer\\n];\\n \\n$payment = [\\n 'banking_billet' => $bankingBillet // forma de pagamento (banking_billet = boleto)\\n];\\n \\n$body = [\\n 'payment' => $payment\\n];\\n \\ntry {\\n $api = new Gerencianet($options);\\n $charge = $api->payCharge($params, $body);\\n \\n print_r($charge);\\n} catch (GerencianetException $e) {\\n print_r($e->code);\\n print_r($e->error);\\n print_r($e->errorDescription);\\n} catch (Exception $e) {\\n print_r($e->getMessage());\\n}\",\n \"language\": \"php\",\n \"name\": \"PHP\"\n },\n {\n \"code\": \"'use strict';\\n\\nvar moment = require('moment');\\nvar Gerencianet = require('gn-api-sdk-node');\\nvar options = require('../../credentials');\\n\\n\\nvar tomorrow = moment()\\n .add(1, 'days')\\n .format('YYYY-MM-DD');\\n\\nvar params = {\\n id: 0\\n}\\n\\nvar body = {\\n payment: {\\n banking_billet: {\\n expire_at: tomorrow,\\n customer: {\\n name: 'Gorbadoc Oldbuck',\\n email: '[email protected]',\\n cpf: '94271564656',\\n birth: '1977-01-15',\\n phone_number: '5144916523'\\n }\\n }\\n }\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n .payCharge(params, body)\\n .then(console.log)\\n .catch(console.log)\\n .done();\",\n \"language\": \"javascript\",\n \"name\": \"NodeJs\"\n },\n {\n \"code\": \"from gerencianet import Gerencianet\\n \\noptions = {\\n 'client_id': 'client_id',\\n 'client_secret': 'client_secret',\\n 'sandbox': True\\n}\\n \\ngn = Gerencianet(options)\\n \\nparams = {\\n 'id': 1000\\n}\\n \\nbody = {\\n 'payment': {\\n 'banking_billet': {\\n 'expire_at': '2016-12-12',\\n 'customer': {\\n 'name': \\\"Gorbadoc Oldbuck\\\",\\n 'email': \\\"[email protected]\\\",\\n 'cpf': \\\"94271564656\\\",\\n 'birth': \\\"1977-01-15\\\",\\n 'phone_number': \\\"5144916523\\\"\\n }\\n }\\n }\\n}\\n \\ngn.pay_charge(params=params, body=body)\",\n \"language\": \"python\",\n \"name\": \"Python\"\n },\n {\n \"code\": \"/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\\n\\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \\\"body\\\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \\\"body\\\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\\n\\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \\\"body\\\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\\n\\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\\ne Map<String, Object>\\n\\n\\nJSONObject\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/defaults/charge/json/Billet.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/defaults/charge/map/Billet.java\\n\\n*/s\",\n \"language\": \"java\",\n \"name\": \"Java\"\n },\n {\n \"code\": \"dynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar param = new {\\n id = 1000\\n};\\n \\nvar body = new {\\n payment = new {\\n banking_billet = new {\\n expire_at = \\\"2016-12-12\\\",\\n customer = new {\\n name = \\\"Gorbadoc Oldbuck\\\",\\n email = \\\"[email protected]\\\",\\n cpf = \\\"94271564656\\\",\\n birth = \\\"1977-01-15\\\",\\n phone_number = \\\"5144916523\\\"\\n }\\n }\\n }\\n};\\n \\nvar response = endpoints.PayCharge(param, body);\",\n \"language\": \"csharp\",\n \"name\": \".NET\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tcustomer := map[string]interface{}{\\n\\t\\t\\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n\\t\\t\\\"cpf\\\": \\\"94271564656\\\",\\n\\t\\t\\\"phone_number\\\": \\\"5144916523\\\",\\n\\t}\\n\\n\\tbody := map[string]interface{} {\\n\\t\\t\\\"payment\\\": map[string]interface{} {\\n\\t\\t\\t\\\"banking_billet\\\": map[string]interface{} {\\n\\t\\t\\t\\t\\\"expire_at\\\": \\\"2022-12-12\\\",\\n\\t\\t\\t\\t\\\"customer\\\": customer,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t}\\n\\n\\tres, err := gn.PayCharge(1, body) // no lugar do 1 coloque o charge_id da transação\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\",\n \"name\": \"Go\"\n },\n {\n \"code\": \"require \\\"gerencianet\\\"\\nrequire \\\"date\\\"\\n \\noptions = {\\n client_id: \\\"client_id\\\",\\n client_secret: \\\"client_secret\\\",\\n sandbox: true\\n}\\n \\ntomorrow = Date.today + 1\\n \\nparams = {\\n id: 1000\\n}\\n \\nbody = {\\n payment: {\\n banking_billet: {\\n expire_at: tomorrow.strftime,\\n customer: {\\n name: \\\"Gorbadoc Oldbuck\\\",\\n email: \\\"[email protected]\\\",\\n cpf: \\\"94271564656\\\",\\n birth: \\\"1977-01-15\\\",\\n phone_number: \\\"5144916523\\\"\\n }\\n }\\n }\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.pay_charge(params: params, body: body)\",\n \"language\": \"ruby\",\n \"name\": \"Ruby\"\n },\n {\n \"code\": \"\",\n \"language\": \"d\",\n \"name\": \"Delphi\"\n }\n ]\n}\n[/block]\n### Dados de entrada e saída na criação da transação:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"{\\n \\\"payment\\\": {\\n \\\"banking_billet\\\": {\\n \\\"customer\\\": {\\n \\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n \\\"cpf\\\": \\\"94271564656\\\",\\n \\\"email\\\": \\\"[email protected]\\\",\\n \\\"phone_number\\\": \\\"5144916523\\\",\\n \\\"address\\\": {\\n \\\"street\\\": \\\"Avenida Juscelino Kubitschek\\\",\\n \\\"number\\\": \\\"909\\\",\\n \\\"neighborhood\\\": \\\"Bauxita\\\",\\n \\\"zipcode\\\": \\\"35400000\\\",\\n \\\"city\\\": \\\"Ouro Preto\\\",\\n \\\"complement\\\": \\\"\\\",\\n \\\"state\\\": \\\"MG\\\"\\n }\\n },\\n \\\"expire_at\\\": \\\"2022-12-30\\\",\\n \\\"configurations\\\": {\\n \\\"fine\\\": 200,\\n \\\"interest\\\": 33\\n },\\n \\\"message\\\": \\\"Pague pelo código de barras ou pelo QR Code\\\"\\n }\\n }\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de entrada\"\n },\n {\n \"code\": \"{\\n \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n \\\"data\\\": {\\n \\\"barcode\\\": \\\"00000.00000 00000.000000 00000.000000 0 00000000000000\\\", // linha digitável do boleto\\n \\\"pix\\\":{\\n \\\"qrcode\\\":\\\"00020101021226990014BR.GOV.BCB.PIX2577qrcodes-pix.gerencianet.com.br/bolix/v2/cobv/0000000000000000000000000000GERENCIANET SA6010OURO PRETO62070503***63047CB1\\\", // BRCode ou copia e cola\\n \\\"qrcode_image\\\":\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcm cvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NSA0NSIgc2hhcGUtcmVuZGVyaW5nPSJjcmlzcEVkZ2VzIj48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNMCAwaDQ1djQ1SD...\\\" // QRCode imagem\\n },\\n \\\"link\\\": \\\"link_https_para_acesso_o_bolix\\\", // link do Bolix gerado\\n \\\"pdf\\\": {\\n \\\"charge\\\": \\\"link_https_do_pdf_da_cobranca\\\" // link do PDF do Bolix\\n },\\n \\\"expire_at\\\": \\\"2022-12-30\\\", // data de vencimento do boleto no seguinte formato: 2022-12-15 (ou seja, equivale a 15/12/2022)\\n \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n \\\"status\\\": \\\"waiting\\\", // forma de pagamento selecionada, aguardando a confirmação do pagamento (\\\"waiting\\\" equivale a \\\"aguardando\\\")\\n \\\"total\\\": 8900, // valor, em centavos. Por exemplo: 5990 (equivale a R$ 59,90)\\n \\\"payment\\\": \\\"banking_billet\\\" // forma de pagamento associada à esta transação (\\\"banking_billet\\\" equivale a \\\"boleto bancário\\\")\\n }\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de saída\"\n }\n ]\n}\n[/block]\n<br>\n\n## a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<pre>\"id\": \"/Pay\",\n \"payment\"\n \"banking_billet\"\n \"customer\"\n \"name\"\n \"cpf\"\n \"email\"\n \"phone_number\"\n \"birth\"\n \"address\"\n \"street\"\n \"number\"\n \"neighborhood\"\n \"zipcode\"\n \"city\"\n \"complement\"\n \"state\"\n \"juridical_person\"\n \"corporate_name\"\n \"cnpj\"\n \"expire_at\"\n \"discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"conditional_discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"until_date\"\n \"configurations\"\n \"fine\"\n \"interest\"\n \"message\"</pre>\n\nPara verificar mais detalhes, <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_pay\" target=\"_blank\">acesse aqui</a> e explore em nosso Playground.\n\n<br>\n\n## b) Atributos que podem ser utilizados para gerar um Bolix, pix no boleto bancário:\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-3\": \"Objeto **Payment**\",\n \"0-2\": \"Sim\",\n \"0-1\": \"Tag raiz\",\n \"0-0\": \"<code>payment</code>\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br>\n\n*Objeto **Payment***\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>banking_billet</code>\",\n \"0-1\": \"Forma de pagamento através de \\\"boleto bancário\\\"\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Objeto **Banking_Billet**\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br>\n\n*Objeto **Banking_Billet***\n\n\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>name</code>\",\n \"0-1\": \"Nome do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255.</span></strong>\",\n \"0-2\": \"Sim\\n\\n*Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.*\",\n \"0-3\": \"String\",\n \"1-0\": \"<code>cpf</code>\",\n \"1-1\": \"CPF válido do cliente (sem pontos, vírgulas ou hífen).\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Tamanho: 11 caracteres.</span></strong>\",\n \"1-2\": \"Sim\\n\\n*Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.*\",\n \"1-3\": \"String\",\n \"2-0\": \"<code>email</code>\",\n \"2-1\": \"Email do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. Ex.: [email protected]</span></strong>\",\n \"2-2\": \"Não\",\n \"2-3\": \"String\",\n \"3-0\": \"<code>phone_number</code>\",\n \"3-1\": \"Telefone do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777</span></strong>\",\n \"3-2\": \"Não\",\n \"3-3\": \"String\",\n \"4-0\": \"<code>birth</code>\",\n \"4-1\": \"Data de nascimento do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong>\",\n \"4-2\": \"Não\",\n \"4-3\": \"String\",\n \"5-0\": \"<code>address</code>\",\n \"5-1\": \"Endereço do cliente.\\n\\n<span class=\\\"tab1\\\">*Atributos de address*</span>\\n\\n<div class=\\\"tab2\\\"><code>street<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // nome da rua <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>number<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // número <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String/Integer)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>neighborhood<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Bairro <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>zipcode<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // CEP (sem pontos ou hífen) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>city<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // cidade <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>complement</code> // complemento <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String/null)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>state<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // estado (2 caracteres) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object)</strong></span></div>\",\n \"5-2\": \"Não\",\n \"5-3\": \"Object\",\n \"6-0\": \"<code>juridical_person</code>\",\n \"6-1\": \"Dados de pessoa jurídica\\n\\n<span class=\\\"tab1\\\">*Atributos de juridical_person*</span>\\n\\n<div class=\\\"tab2\\\">\\n<code>corporate_name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome da razão social. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255. String.</strong></span></div>\\n\\n<div class=\\\"tab2\\\">\\n<code>cnpj<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // CNPJ da empresa. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Tamanho: 14 caracteres. String.</strong></span>\\n</div>\",\n \"6-2\": \"Não\",\n \"6-3\": \"Object\",\n \"7-0\": \"<code>expire_at</code>\",\n \"7-1\": \"Data de vencimento do boleto.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong>\",\n \"7-2\": \"Sim\",\n \"7-3\": \"String\",\n \"8-0\": \"<code>discount</code>\",\n \"8-1\": \"Define dados de desconto sobre a cobrança.\\n\\n<span class=\\\"tab1\\\">*Atributos de discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, 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 <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.\\n</strong>\\n</div>\",\n \"8-2\": \"Não\",\n \"8-3\": \"Object\",\n \"9-0\": \"<code>conditional_discount</code>\",\n \"9-1\": \"Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.\\n\\n<span class=\\\"tab1\\\">*Atributos de conditional_discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, 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 <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.</strong></div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">until_date<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Data máxima que o desconto será concedido. (String). </strong><strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong></div>\",\n \"9-2\": \"Não\",\n \"9-3\": \"Object\",\n \"10-0\": \"<code>configurations</code>\",\n \"10-1\": \"Permite incluir no boleto multa e juros caso seja pago após o vencimento.\\n\\n<span class=\\\"tab1\\\">*Atributos de configurations*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">fine</span>, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar <code>200</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 1000. Integer. \\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize <code>0</code> como valor do atributo <code>fine</code></strong></span></div>\\n</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">interest</span>, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar <code>33</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 330. Integer.\\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize <code>0</code> como valor do atributo <code>interest</code></strong></span></div>\\n</strong>\\n</div>\",\n \"10-2\": \"Não\",\n \"10-3\": \"Object\",\n \"11-0\": \"<code>message</code>\",\n \"11-1\": \"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ê.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Até 4 linhas contendo 100 caracteres em cada linha. String.</span></strong>\\n\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">O operador <code>\\\\n</code> é utilizado para efetuar a quebra de linha.</span></strong>\",\n \"11-2\": \"Não\",\n \"11-3\": \"String\"\n },\n \"cols\": 4,\n \"rows\": 12\n}\n[/block]\n<strong style=\"font-size:10px;color:#ea6e1c\">* valor obrigatório</strong>\n\n# 3. Gerando um Bolix com o método de pagamento carnê\n\nO carnê é um método de pagamento que gera um conjunto de transações (parcelas) com as mesmas informações de pagamento e do cliente em todas elas, as parcelas de um carnê vencem mensalmente, de acordo com a data definida pelo integrador. Para gerar um carnê, você precisa informar os seguintes dados:\n\n- Itens (ou serviço) oferecido;\n- Data de vencimento da 1ª parcela;\n- Número de parcelas (repetições).\n\n\nA seguir, um código de exemplo de criação de um Bolix com o método de pagamento carnê utilizando as SDK's disponíveis. Note que já estamos definindo os itens, os dados do cliente, data de vencimento da primeira parcela do carnê e a quantidade de repetições (em meses):\n\n\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\n\\nrequire __DIR__ . '/../../vendor/autoload.php';\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__ . '/../config.json');\\n$options = json_decode($file, true);\\nunset($options['pix_cert']);\\n\\n$item_1 = [\\n 'name' => 'Item 1', // nome do item, produto ou serviço\\n 'amount' => 1, // quantidade\\n 'value' => 1000 // valor (1000 = R$ 10,00) (Obs: É possível a criação de itens com valores negativos. Porém, o valor total da fatura deve ser superior ao valor mínimo para geração de transações.)\\n];\\n \\n$item_2 = [\\n 'name' => 'Item 2', // nome do item, produto ou serviço\\n 'amount' => 2, // quantidade\\n 'value' => 2000 // valor (2000 = R$ 20,00)\\n];\\n \\n$items = [\\n $item_1,\\n $item_2\\n];\\n \\n$customer = [\\n 'name' => 'Gorbadoc Oldbuck', // nome do cliente\\n 'cpf' => '94271564656' , // cpf do cliente\\n 'phone_number' => '5144916523' // telefone do cliente\\n];\\n\\n// Exemplo para receber notificações da alteração do status do carne.\\n// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']\\n// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes\\n\\n// Como enviar seu $body com o $metadata\\n// $body = [\\n// 'items' => $items,\\n// 'customer' => $customer,\\n// 'expire_at' => '2022-12-02',\\n// 'repeats' => 5,\\n// 'split_items' => false,\\n// 'metadata' => $metadata\\n// ];\\n\\n$body = [\\n 'items' => $items,\\n 'customer' => $customer,\\n 'expire_at' => '2022-12-02', // data de vencimento da primeira parcela do carnê\\n 'repeats' => 5, // número de parcelas do carnê\\n 'split_items' => false // Define se os itens do carnê serão divididos entre as parcelas (true), ou se o valor de cada parcela será o valor total dos itens (false)\\n];\\n\\ntry {\\n $api = new Gerencianet($options);\\n $carnet = $api->createCarnet([], $body);\\n \\n print_r($carnet);\\n} catch (GerencianetException $e) {\\n print_r($e->code);\\n print_r($e->error);\\n print_r($e->errorDescription);\\n} catch (Exception $e) {\\n print_r($e->getMessage());\\n}\\n\",\n \"language\": \"php\",\n \"name\": \"PHP\"\n },\n {\n \"code\": \"'use strict';\\n \\nvar Gerencianet = require('gn-api-sdk-node');\\nvar options = require('../../credentials');\\n \\nvar body = {\\n items: [{\\n name: 'Carnet Item 1',\\n value: 1000,\\n amount: 2\\n }],\\n customer: {\\n name: 'Gorbadoc Oldbuck',\\n email: '[email protected]',\\n cpf: '94271564656',\\n birth: '1977-01-15',\\n phone_number: '5144916523'\\n },\\n expire_at: '2022-12-12',\\n repeats: 12,\\n split_items: false\\n}\\n \\nvar gerencianet = new Gerencianet(options);\\n \\ngerencianet\\n .createCarnet({}, body)\\n .then(console.log)\\n .catch(console.log)\\n .done();\",\n \"language\": \"javascript\",\n \"name\": \"NodeJS\"\n },\n {\n \"code\": \"from gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\ngn = Gerencianet(CREDENTIALS)\\n \\nbody = {\\n 'items': [{\\n 'name': 'Carnet Item 1',\\n 'value': 1000,\\n 'amount': 2\\n }],\\n 'customer': {\\n 'name': 'Gorbadoc Oldbuck',\\n 'email': '[email protected]',\\n 'cpf': '94271564656',\\n 'birth': '1977-01-15',\\n 'phone_number': '5144916523'\\n },\\n 'repeats': 4,\\n 'expire_at': '2020-12-12'\\n}\\n \\ngn.create_carnet(body=body)\",\n \"language\": \"python\",\n \"name\": \"Python\"\n },\n {\n \"code\": \"/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\\n\\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \\\"body\\\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \\\"body\\\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\\n\\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \\\"body\\\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\\n\\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\\ne Map<String, Object>\\n\\n\\nJSONObject\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/defaults/carnet/json/Create.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/defaults/carnet/map/Create.java\\n\\n*/\",\n \"language\": \"java\",\n \"name\": \"Java\"\n },\n {\n \"code\": \"dynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar body = new {\\n items = new [] {\\n new {\\n name = \\\"Carnet Item 1\\\",\\n value = 1000,\\n amount = 2\\n }\\n },\\n customer = new {\\n name = \\\"Gorbadoc Oldbuck\\\",\\n email = \\\"[email protected]\\\",\\n cpf = \\\"94271564656\\\",\\n birth = \\\"1977-01-15\\\",\\n phone_number = \\\"5144916523\\\"\\n },\\n repeats = 4,\\n expire_at = \\\"2022-12-12\\\",\\n metadata = new {\\n custom_id = \\\"my_id\\\",\\n notification_url = \\\"http://yourdomain.com\\\"\\n }\\n};\\n \\nvar response = endpoints.CreateCarnet(null, body);\",\n \"language\": \"csharp\",\n \"name\": \".NET\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tcustomer := map[string]interface{}{\\n\\t\\t\\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n\\t\\t\\\"cpf\\\": \\\"04267484171\\\",\\n\\t\\t\\\"phone_number\\\": \\\"5144916523\\\",\\n\\t}\\n\\n\\titems := []map[string]interface{}{\\n\\t\\t{\\n\\t\\t\\t\\\"name\\\": \\\"Item 1\\\",\\n\\t\\t\\t\\\"value\\\": 1000,\\n\\t\\t\\t\\\"amount\\\": 1,\\n\\t\\t},\\n\\t\\t{\\n\\t\\t\\t\\\"name\\\": \\\"Item 2\\\",\\n\\t\\t\\t\\\"value\\\": 2000,\\n\\t\\t\\t\\\"amount\\\": 2,\\n\\t\\t},\\n\\t}\\n\\n\\tbody := map[string]interface{} {\\n\\t\\t\\\"items\\\": items,\\n\\t\\t\\\"customer\\\": customer,\\n\\t\\t\\\"expire_at\\\": \\\"2022-12-02\\\",\\n\\t\\t\\\"repeats\\\": 5,\\n\\t\\t\\\"split_items\\\": false,\\n\\t}\\n\\n\\tres, err := gn.CreateCarnet(body)\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\",\n \"name\": \"Go\"\n },\n {\n \"code\": \"require \\\"gerencianet\\\"\\nrequire \\\"date\\\"\\n \\noptions = {\\n client_id: \\\"client_id\\\",\\n client_secret: \\\"client_secret\\\",\\n sandbox: true\\n}\\n \\ntomorrow = Date.today + 1\\n \\nbody = {\\n expire_at: tomorrow.strftime,\\n items: [{\\n name: \\\"Carnet Item 1\\\",\\n value: 1000,\\n amount: 2\\n }],\\n customer: {\\n name: \\\"Gorbadoc Oldbuck\\\",\\n email: \\\"[email protected]\\\",\\n cpf: \\\"94271564656\\\",\\n birth: \\\"1977-01-15\\\",\\n phone_number: \\\"5144916523\\\"\\n },\\n repeats: 12,\\n split_items: false\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.create_carnet(body: body)\",\n \"language\": \"ruby\",\n \"name\": \"Ruby\"\n },\n {\n \"code\": \"interface\\nfunction CarnetCreate: String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction CarnetCreate: String;\\nconst\\n Body_Customer_Address = \\n '\\\"street\\\": \\\"Via Monte di Dio\\\",'+\\n '\\\"number\\\": 66,'+\\n '\\\"neighborhood\\\": \\\"Sao Paulo\\\",'+\\n '\\\"complement\\\": \\\"\\\",'+\\n '\\\"city\\\": \\\"Naples\\\",'+\\n '\\\"state\\\": \\\"SP\\\",'+\\n '\\\"zipcode\\\": \\\"35400000\\\"';\\n\\n Body_Customer_Before_Address = \\n '\\\"email\\\": \\\"[email protected]\\\",'+\\n '\\\"phone_number\\\": \\\"94271564656\\\",'+\\n '\\\"birth\\\": \\\"1977-07-17\\\",';\\n\\n Body_Customer_After_Address = \\n '\\\"name\\\": \\\"Gorbadoc Oldbuck\\\", \\\"cpf\\\": \\\"94271564656\\\"';\\n\\n Body_Customer = \\n '\\\"customer\\\": { '+Body_Customer_Before_Address + \\n '\\\"address\\\": { '+ Body_Customer_Address + ' }, '\\n +Body_Customer_After_Address + ' }, ';\\n\\n Body_After_Customer_Line1 = \\n '\\\"expire_at\\\": \\\"2017-07-10\\\",'+\\n '\\\"repeats\\\": 4, \\\"split_items\\\": false,';\\n\\n Body_Items = \\n '\\\"items\\\": ['+ \\n '{'+ \\n '\\\"name\\\": \\\"Item 1\\\",'+\\n '\\\"value\\\": 1900,'+\\n '\\\"amount\\\": 2'+\\n '},'+\\n '{'+\\n '\\\"name\\\": \\\"Item 2\\\",'+\\n '\\\"value\\\": 3000,'+\\n '\\\"amount\\\": 1'+ \\n '}'+\\n ']';\\n\\n Body = '{ '+Body_Customer + Body_After_Customer_Line1 + Body_Instructions + Body_Items + ' }';\\n\\nbegin\\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize(); \\n\\n Result := ExecuteGerenciaNetRequest( 'createCarnet','','',Body );\\nend;\",\n \"language\": \"d\",\n \"name\": \"Delphi\"\n }\n ]\n}\n[/block]\n### Dados de entrada e saída na criação do Bolix com o método de pagamento carnê:\n\n\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"{\\n \\\"items\\\": [\\n {\\n \\\"name\\\": \\\"Meu Produto\\\",\\n \\\"value\\\": 7500,\\n \\\"amount\\\": 1\\n }\\n ],\\n \\\"customer\\\": {\\n \\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n \\\"cpf\\\": \\\"94271564656\\\",\\n \\\"phone_number\\\": \\\"5144916523\\\"\\n },\\n \\\"expire_at\\\": \\\"2022-12-20\\\",\\n \\\"configurations\\\": {\\n \\\"fine\\\": 200,\\n \\\"interest\\\": 33\\n },\\n \\\"message\\\": \\\"Este carnê aceita o pagamento por QR Code Pix e por código de barras\\\",\\n \\\"repeats\\\": 3,\\n \\\"split_items\\\": false\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de entrada\"\n },\n {\n \"code\": \"{\\n \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n \\\"data\\\": {\\n \\\"carnet_id\\\": 12345, // identificador único do carnê\\n \\\"status\\\": \\\"up_to_date\\\", // carnê encontra-se em dia, não há nenhuma parcela inadimplente. Assim que o carnê é criado, ele também recebe este status up_to_date. O termo \\\"up_to_date\\\" equivale a \\\"em dia\\\"\\n \\\"cover\\\": \\\"link_https_capa_do_carne\\\", // link da capa do carnê\\n \\\"link\\\": \\\"link_https_do_carne\\\", // link do carnê, de acordo com as repetições\\n \\\"pdf\\\": {\\n \\\"carnet\\\": \\\"link_https_do_pdf_do_carne\\\", // link do PDF do Bolix (carnê), de acordo com as repetições\\n \\\"cover\\\": \\\"link_https_do_pdf_da_capa_do_carne\\\" // link do PDF da capa do carnê\\n },\\n \\\"charges\\\": [\\n {\\n \\\"charge_id\\\": 511813, // número identificador da primeira parcela do carnê\\n \\\"parcel\\\": \\\"1\\\", // número da parcela do carnê\\n \\\"status\\\": \\\"waiting\\\", // forma de pagamento selecionada, aguardando a confirmação do pagamento\\n \\\"value\\\": 7500, // valor, em centavos, da primeira parcela do carnê (7500 equivale a R$ 75,00)\\n \\\"expire_at\\\": \\\"2022-12-20\\\", // data de vencimento da parcela do carnê no seguinte formato: 2022-12-20 (equivale a 20/12/2022)\\n \\\"url\\\": \\\"link_https_da_primeira_lamina\\\", // link da primeira parcela (lâmina) do Bolix (carnê)\\n \\\"pdf\\\": {\\n \\\"charge\\\": \\\"link_https_da_primeira_lamina\\\" // link do PDF da primeira parcela (lâmina) Bolix (carnê)\\n },\\n \\\"barcode\\\": \\\"00000.00000 00000.000000 00000.000000 0 00000000000000\\\", // linha digitável da primeira parcela (lâmina) Bolix (carnê)\\n \\\"pix\\\":{\\n \\\"qrcode\\\":\\\"00020101021226990014BR.GOV.BCB.PIX2577qrcodes-pix.gerencianet.com.br/bolix/v2/cobv/0000000000000000000000000000GERENCIANET SA6010OURO PRETO62070503***63047\\\", // BRCode ou copia e cola\\n \\\"qrcode_image\\\":\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy 53My5vcmcv MjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NSA0NS...\\n }\\n },\\n {\\n \\\"charge_id\\\": 511814, // número identificador da segunda parcela do carnê\\n \\\"parcel\\\": \\\"2\\\", // número da parcela do carnê\\n \\\"status\\\": \\\"waiting\\\", // forma de pagamento selecionada, aguardando a confirmação do pagamento\\n \\\"value\\\": 7500, // valor, em centavos, da segunda parcela do carnê (7500 equivale a R$ 75,00)\\n \\\"expire_at\\\": \\\"2023-01-20\\\", // data de vencimento da parcela do carnê no seguinte formato: 2023-01-20 (equivale a 20/01/2023)\\n \\\"url\\\": \\\"link_https_da_segunda_lamina\\\", // link da segunda parcela (lâmina) do carnê\\n \\\"pdf\\\": {\\n \\\"charge\\\": \\\"link_https_da_segunda_lamina\\\" // link do PDF da segunda parcela (lâmina) do Bolix (carnê)\\n },\\n \\\"barcode\\\": \\\"00000.00000 00000.000000 00000.000000 0 00000000000000\\\", // linha digitável da segunda parcela (lâmina) do Bolix (carnê)\\n \\\"pix\\\":{\\n \\\"qrcode\\\":\\\"00020101021226990014BR.GOV.BCB.PIX2577qrcodes-pix.gerencianet.com.br/bolix/v2/cobv/0000000000000000000000000000GERENCIANET SA6010OURO PRETO62070503***63047\\\", // BRCode ou copia e cola\\n \\\"qrcode_image\\\":\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy 53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NSA0NS...\\n }\\n },\\n {\\n \\\"charge_id\\\": 511815, // número identificador da terceira parcela do carnê\\n \\\"parcel\\\": \\\"3\\\", // número da parcela do carnê\\n \\\"status\\\": \\\"waiting\\\", // forma de pagamento selecionada, aguardando a confirmação do pagamento\\n \\\"value\\\": 7500, // valor, em centavos, da terceira parcela do carnê (7500 equivale a R$ 75,00)\\n \\\"expire_at\\\": \\\"2023-02-20\\\", // data de vencimento da parcela do carnê no seguinte formato: 2023-02-20 (equivale a 20/02/2023)\\n \\\"url\\\": \\\"link_https_da_terceira_lamina\\\", // link da terceira parcela (lâmina) do carnê\\n \\\"pdf\\\": {\\n \\\"charge\\\": \\\"link_https_da_terceira_lamina\\\" // link do PDF da terceira parcela (lâmina) Bolix (carnê)\\n },\\n \\\"barcode\\\": \\\"00000.00000 00000.000000 00000.000000 0 00000000000000\\\", // linha digitável da terceira parcela (lâmina) Bolix (carnê)\\n \\\"pix\\\":{\\n \\\"qrcode\\\":\\\"00020101021226990014BR.GOV.BCB.PIX2577qrcodes-pix.gerencianet.com.br/bolix/v2/cobv/0000000000000000000000000000GERENCIANET SA6010OURO PRETO62070503***63047\\\", // BRCode ou copia e cola\\n \\\"qrcode_image\\\":\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy 53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NSA0NS...\\n }\\n }\\n ]\\n }\\n}\",\n \"language\": \"json\",\n \"name\": \"Dados de saída\"\n }\n ]\n}\n[/block]\n<br>\n\n## a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<pre>\"id\": \"/Carnet\"\n \"items\"\n \"name\"\n \"value\"\n \"amount\"\n \"customer\"\n \"name\"\n \"cpf\"\n \"email\"\n \"phone_number\"\n \"birth\"\n \"address\"\n \"street\"\n \"number\"\n \"neighborhood\"\n \"zipcode\"\n \"city\"\n \"complement\"\n \"state\"\n \"juridical_person\"\n \"corporate_name\"\n \"cnpj\"\n \"expire_at\"\n \"repeats\"\n \"split_items\"\n \"metadata\"\n \"custom_id\"\n \"notification_url\"\n \"configurations\"\n \"fine\"\n \"interest\"\n \"message\"\n \"discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"conditional_discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"until_date\"</pre> \n\nPara verificar mais detalhes, <a href=\"https://dev.gerencianet.com.br/docs/playground-carnes#carnet\" target=\"_blank\">acesse aqui</a> e explore em nosso Playground.\n\n<br>\n\n## b) Atributos que podem ser usados para criar um carnê:\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>items</code>\",\n \"0-1\": \"Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de items</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome do item, produto ou serviço. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255 caracteres (String).</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor, em centavos. Ex: R$ 10,00 = 1000. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>amount</code> // Quantidade. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer (padrão: 1)</span></strong></div>\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Object\",\n \"1-0\": \"<code>customer</code>\",\n \"1-1\": \"Dados pessoais do pagador.\\n\\n<span class=\\\"tab1\\\">*Atributos de customer*</span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // nome <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>cpf<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // CPF do cliente (sem pontos, vírgulas ou hífen) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>email</code> // Endereço de email válido do cliente <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>phone_number</code> // Telefone válido do cliente, sem caracteres especiais <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>birth</code> // Data de Nascimento (data válida em formato YYYY-MM-DD) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>address</code> // Endereço do Cliente <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object)</strong></span> (<a href=\\\"https://dev.gerencianet.com.br/docs/definir-enderecos\\\" target=\\\"_blank\\\">mais informações</a>)</div>\\n\\n<div class=\\\"tab2\\\"><code>juridical_person</code> // Dados de pessoa jurídica <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object) (<a href=\\\"https://dev.gerencianet.com.br/docs/pagar-com-pessoa-juridica\\\" target=\\\"_blank\\\">mais informações</a>)</strong></span></div>\",\n \"1-2\": \"Sim\",\n \"1-3\": \"Object\",\n \"2-0\": \"<code>expire_at</code>\",\n \"2-1\": \"Data de vencimento do carnê. O intervalo das parcelas de um carnê é sempre de 1 (um) mês entre elas.\\n<code>Formato: YYYY-MM-DD</code>\",\n \"2-2\": \"Sim\",\n \"2-3\": \"String\",\n \"3-0\": \"<code>repeats</code>\",\n \"3-1\": \"Número de parcelas do carnê.\\n<code>Mínimo de 2 parcelas e máximo de 12 parcelas</code>\",\n \"3-2\": \"Sim\",\n \"3-3\": \"Integer\",\n \"4-0\": \"<code>split_items</code>\",\n \"4-1\": \"Dividir itens entre as parcelas. Define se os itens do carnê serão divididos entre as parcelas (true), ou se o valor de cada parcela será o valor total dos itens (false).\",\n \"4-2\": \"Não\",\n \"4-3\": \"Boolean\",\n \"5-0\": \"<code>metadata</code>\",\n \"5-1\": \"Define dados específicos da transação.\\n\\n<div class=\\\"tab2\\\"><code>custom_id</code> // 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. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>notification_url</code> // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\",\n \"5-2\": \"Não\",\n \"5-3\": \"Object\",\n \"6-0\": \"<code>configurations</code>\",\n \"6-1\": \"Permite incluir no carnê multa e juros caso seja pago após o vencimento.\\n\\n<span class=\\\"tab1\\\">*Atributos de configurations*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">fine</span>, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar <code>200</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 1000. Integer. \\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize <code>0</code> como valor do atributo <code>fine</code></strong></span></div>\\n</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">interest</span>, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,33%, você deve informar <code>33</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 330. Integer.\\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize <code>0</code> como valor do atributo <code>interest</code></strong></span></div>\\n</strong>\\n</div>\",\n \"6-2\": \"Não\",\n \"6-3\": \"Object\",\n \"7-0\": \"<code>message</code>\",\n \"7-1\": \"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ê.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 80 caracteres. String.</span></strong>\",\n \"7-2\": \"Não\",\n \"7-3\": \"String\",\n \"8-0\": \"<code>discount</code>\",\n \"8-1\": \"Define dados de desconto sobre a cobrança.\\n\\n<span class=\\\"tab1\\\">*Atributos de discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, 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 <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.\\n</strong>\\n</div>\",\n \"8-2\": \"Não\",\n \"8-3\": \"Object\",\n \"9-0\": \"<code>conditional_discount</code>\",\n \"9-1\": \"Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.\\n\\n<span class=\\\"tab1\\\">*Atributos de conditional_discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, 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 <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.</strong></div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">until_date<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Data máxima que o desconto será concedido. (String). </strong><strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong></div>\",\n \"9-2\": \"Não\",\n \"9-3\": \"Object\"\n },\n \"cols\": 4,\n \"rows\": 10\n}\n[/block]\n<strong class=\"atributo-obrigatorio-texto\">* valor obrigatório</strong>\n<br>\n[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"Pagamento do Bolix realizado como Pessoa Jurídica (PJ)\",\n \"body\": \"O cliente associado à transação pode ser uma Pessoa Jurídica. Nesse caso, devem ser informados a Razão Social e o CNPJ da empresa pagadora dentro do atributo <code>juridical_person</code>.\\n\\n<a href=\\\"https://dev.gerencianet.com.br/docs/pagar-com-pessoa-juridica\\\" target=\\\"_blank\\\" title=\\\"Link Interno\\\">Veja detalhes neste link</a> sobre como gerar um pagamento para um cliente que seja Pessoa Jurídica (PJ).\"\n}\n[/block]\n\n[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"Relação de todos os possíveis status de uma transação\",\n \"body\": \"Todas as transações possuem status, que representa a \\\"situação\\\" dessa transação. Portanto, é importante conhecer os possíveis status de uma transação na API para fornecer as devidas tratativas em seu sistema.\\n\\nConfira <a href=\\\"https://dev.gerencianet.com.br/docs/transacoes\\\" target=\\\"_blank\\\" title=\\\"Link Interno\\\">neste link</a> todos os detalhes dos possíveis status das transações.\"\n}\n[/block]\n\n[block:callout]\n{\n \"type\": \"warning\",\n \"title\": \"Callbacks (notificações) das transações Bolix da API para seu sistema\",\n \"body\": \"As notificações permitem que você seja informado quando uma transação tiver seu status alterado. Dessa forma, você poderá identificar quando um boleto for pago, por exemplo.\\n\\nConfira <a href=\\\"https://dev.gerencianet.com.br/docs/notificacoes-recebendo\\\" target=\\\"_blank\\\" title=\\\"Link Interno\\\">neste link</a> todos os detalhes sobre como implementar a sua URL de notificação.\"\n}\n[/block]\n<br>\n<hr>\n\n# 4. Outros endpoints Bolix\n\nExistem outros endpoints e métodos relacionados a pagamento via boleto bancário e carnê que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa:\n\n- [Alterar data de vencimento de boleto bancário](https://dev.gerencianet.com.br/docs/pagar-boleto-outros-endpoints#section-1-alterar-data-de-vencimento-de-boleto-banc-rio)\n\n- [Cancelar determinada transação](https://dev.gerencianet.com.br/docs/pagar-boleto-outros-endpoints#section-2-cancelar-determinada-transa-o)\n\n- [Alterar URL de notificação (notification_url) e/ou custom_id de transação](https://dev.gerencianet.com.br/docs/pagar-boleto-outros-endpoints#section-3-alterar-url-de-notifica-o-notification_url-e-ou-custom_id-de-transa-o)\n\n- [Reenviar boleto bancário por e-mail](https://dev.gerencianet.com.br/docs/pagar-boleto-outros-endpoints#section-4-reenviar-boleto-banc-rio-por-e-mail)\n\n- [Acrescentar informações ao histórico da transação](https://dev.gerencianet.com.br/docs/pagar-boleto-outros-endpoints#section-5-acrescentar-informa-es-ao-hist-rico-da-transa-o)\n\n- [Retornar informações sobre transação](https://dev.gerencianet.com.br/docs/pagar-boleto-outros-endpoints#section-6-retornar-informa-es-sobre-transa-o)\n\n- [Retornar informações sobre um carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-1-retornar-informa-es-sobre-um-carn-)\n\n- [Alterar URL de notificação (notification_url) e/ou custom_id de carnês](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-2-alterar-url-de-notifica-o-notification_url-e-ou-custom_id-de-carn-s)\n\n- [Alterar data de vencimento de parcela do carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-3-alterar-data-de-vencimento-de-parcela-do-carn-)\n\n- [Cancelar um carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-4-cancelar-um-carn-)\n\n- [Cancelar parcela específica de carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-5-cancelar-parcela-espec-fica-de-carn-)\n\n- [Reenviar carnê por e-mail](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-6-reenviar-carn-por-e-mail)\n\n- [Reenviar parcela específica de carnê por e-mail](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-7-reenviar-parcela-espec-fica-de-carn-por-e-mail)\n\n- [Acrescentar informações ao histórico do carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-8-acrescentar-informa-es-ao-hist-rico-do-carn-)\n\n# 5. Próximos Passos\n\nExistem outras soluções da API que permitem a utilização do Bolix com o método de pagamento por **boleto bancário**, quer conhecê-las?\n\n- <a href=\"https://dev.gerencianet.com.br/docs/criando-assinaturas\" title=\"Link Interno\">Assinaturas (cobrança recorrente)</a>\n- <a href=\"https://dev.gerencianet.com.br/v1.1.0/docs/dividindo-recebimentos\" title=\"Link Interno\">Marketplace (split)</a>\n- <a href=\"https://dev.gerencianet.com.br/docs/link-pagamento-criando\" title=\"Link Interno\">Link de Pagamento</a>\n- <a href=\"https://gerencianet.com.br/artigo/sistemas-integrados/\" title=\"Link Interno\">Módulos e Plugins Gerencianet</a>","updates":[],"order":0,"isReference":false,"hidden":true,"sync_unique":"","link_url":"","link_external":false,"_id":"60ec386b3dc8b50016294797","createdAt":"2021-07-12T12:41:15.238Z","user":"5e8b36bc27ee9b00181b36bf","category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Pagar com Bolix","slug":"pagar-com-bolix","order":9,"from_sync":false,"reference":false,"_id":"60ec37c637005f015e54174e","createdAt":"2021-07-12T12:38:30.266Z","version":"606f2ca7c5ba9100787834c6","project":"575aeffae12cf20e002f306c","__v":0},"version":{"version":"1.1.0","version_clean":"1.1.0","codename":"2021","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["606f2ca6c5ba91007878342b","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","606f2ca6c5ba91007878342c","606f2ca6c5ba91007878342d","606f2ca6c5ba91007878342e","606f2ca6c5ba91007878342f","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","606f2ca6c5ba910078783430","606f2ca6c5ba910078783431","5783f78c5cbce30e0074e2b7","606f2ca6c5ba910078783432","606f2ca6c5ba910078783433","606f2ca6c5ba910078783434","606f2ca6c5ba910078783435","606f2ca6c5ba910078783436","606f2ca6c5ba910078783437","578529f887c9280e0090394b","606f2ca6c5ba910078783438","606f2ca6c5ba910078783439","606f2ca6c5ba91007878343a","606f2ca6c5ba91007878343b","606f2ca6c5ba91007878343c","606f2ca6c5ba91007878343d","606f2ca6c5ba91007878343e","606f2ca6c5ba91007878343f","606f2ca6c5ba910078783440","606f2ca6c5ba910078783441","60d61f026ddc3901a32ee5f1","60ec37c637005f015e54174e","61473375119247002a9c14d7","6283a3819575c60045513ea2"],"_id":"606f2ca7c5ba9100787834c6","project":"575aeffae12cf20e002f306c","createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","__v":4,"forked_from":"575aeffae12cf20e002f306f"},"project":"575aeffae12cf20e002f306c","__v":0,"parentDoc":null}
Gerar Bolix
Passo a passo para gerar <a href="https://gerencianet.com.br/bolix/" target="_blank" title="página Bolix">Bolix</a> na API Gerencianet, o Bolix permite gerar cobranças com o pix no boleto, possibilitando mais de uma forma de pagamento aos clientes