{"__v":10,"_id":"57851e622eca4e0e002b4c33","category":{"project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","_id":"5783f8755cbce30e0074e2b8","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-07-11T19:50:13.133Z","from_sync":false,"order":5,"slug":"carnês","title":"Carnês"},"parentDoc":null,"project":"575aeffae12cf20e002f306c","user":"57601a13af3e090e00108059","version":{"__v":29,"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","categories":["575aeffae12cf20e002f3070","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","57602fe5b82256240055c657","57602ff6c811102000cef302","576030909b1a9a220067ca40","57604518b82256240055c722","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","577680bf3cee3a0e00a000bc","577ff3b1ff48990e000c6806","5783f78c5cbce30e0074e2b7","5783f86292edb92200e6101c","5783f86dbfbba719003f0d8b","5783f8755cbce30e0074e2b8","5783f8b65cbce30e0074e2b9","5783f8bf5cbce30e0074e2ba","5783f8d8ce802f0e0087d574","578529f887c9280e0090394b","57852aeb87c9280e0090394d","57866e72b2f4060e00fa39ca","57ab6d5c39c2fd1900191879","57f39451ab0ee12000bef915","582499a0d90fa027009b259e"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-07-12T16:44:18.735Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"Inicialmente, será criado o carnê, que é um conjunto de transações (parcelas) geradas em lote e com forma de pagamento já definida.\n\nPara gerar um carnê, você deve enviar uma requisição <code>POST</code> para a rota <code>/carnet</code>.\n\nNo Playground (ambiente de desenvolvimento), o processo de criação de carnê equivale ao endpoint <code>POST /carnet</code>.\n\nNote que, no exemplo de utilização abaixo, 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[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n \\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\\n \\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n \\n$clientId = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'your_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 = desenvolvimento 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)\\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' => '2020-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' => '2020-12-02', // data de vencimento da primeira parcela do carnê\\n  'repeats' => 5, // número de parcelas do carnê\\n  'split_items' => 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      \"language\": \"php\",\n      \"name\": \"PHP\"\n    },\n    {\n      \"code\": \"'use strict';\\n \\nvar Gerencianet = require('gn-api-sdk-node');\\n \\nvar clientId = 'your_client_id';\\nvar clientSecret = 'your_client_secret';\\n \\nvar options = {\\n  client_id: clientId,\\n  client_secret: clientSecret,\\n  sandbox: true\\n}\\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: 'oldbuck:::at:::gerencianet.com.br',\\n    cpf: '94271564656',\\n    birth: '1977-01-15',\\n    phone_number: '5144916523'\\n  },\\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\": \"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: \\\"oldbuck@gerencianet.com.br\\\",\\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\": \"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 \\nbody = {\\n    'items': [{\\n        'name': 'Carnet Item 1',\\n        'value': 1000,\\n        'amount': 2\\n    }],\\n    'customer': {\\n        'name': 'Gorbadoc Oldbuck',\\n        'email': 'oldbuck@gerencianet.com.br',\\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\": \"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 = \\\"oldbuck@gerencianet.com.br\\\",\\n        cpf = \\\"94271564656\\\",\\n        birth = \\\"1977-01-15\\\",\\n        phone_number = \\\"5144916523\\\"\\n    },\\n    repeats = 4,\\n    expire_at = \\\"2020-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\",\n      \"language\": \"asp\",\n      \"name\": \".NET\"\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/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/carnet/map/Create.java\\n\\n*/\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n[block:html]\n{\n  \"html\": \"<p>Por meio da imagem a seguir é possível observar a hierarquia dos atributos presentes na estrutura dos dados do <abbr title=\\\"JSON que descreve a estrutura dos dados, incluindo todas as informações que podem ser enviadas e as especificidades de cada uma.\\\">Schema</abbr> do <em>endpoint</em> <code>POST /carnet</code>, apresentado na tabela a seguir:</p>\\n<br />\\n<img src=\\\"http://content.screencast.com/users/tiagogerencianet/folders/Jing/media/fc39db8a-b92f-4f0d-ab23-91f7ceec6a91/2016-10-04_1121.png\\\" alt=\\\"POST /carnet - Estrutura dos atributos do Schema que podem ser utilizados\\\"><br />\\n<p>Para verificar mais detalhes, <a href=\\\"https://dev.gerencianet.com.br/docs/playground-carnes#carnet\\\" target=\\\"_blank\\\">acesse aqui.</p>\"\n}\n[/block]\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\": \"items\",\n    \"1-0\": \"customer\",\n    \"2-0\": \"expire_at\",\n    \"3-0\": \"repeats\",\n    \"4-0\": \"split_items\",\n    \"0-2\": \"Sim\",\n    \"1-2\": \"Sim\",\n    \"2-2\": \"Sim\",\n    \"3-2\": \"Sim\",\n    \"4-2\": \"Não\",\n    \"0-3\": \"Object\",\n    \"1-3\": \"Object\",\n    \"2-3\": \"String\",\n    \"3-3\": \"Integer\",\n    \"4-3\": \"Boolean\",\n    \"3-1\": \"Número de parcelas do carnê.\",\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<strong class=\\\"atributo-obrigatorio\\\">*</strong></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    \"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    \"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    \"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    \"5-0\": \"metadata\",\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\": \"instructions\",\n    \"6-1\": \"Instruções contidas no carnê.\\n<code>Mínimo de 1 linha e máximo de 4 linhas.</code>\",\n    \"6-2\": \"Não\",\n    \"6-3\": \"String\",\n    \"7-0\": \"configurations\",\n    \"7-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 no Fortunus 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 no Fortunus 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    \"7-2\": \"Não\",\n    \"7-3\": \"Object\",\n    \"8-0\": \"message\",\n    \"8-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    \"8-2\": \"Não\",\n    \"8-3\": \"String\"\n  },\n  \"cols\": 4,\n  \"rows\": 9\n}\n[/block]\n<strong class=\"atributo-obrigatorio-texto\">* valor obrigatório</strong>\n\n\n## Vídeos Explicativos: Carnês\n<hr>\n\nPensando em oferecer novos meios de transmitir informações, a Gerencianet disponibiliza os vídeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como criar um carnê através de integração com nossa API.\n\n\n### Visão geral sobre os Carnês (integração API Gerencianet)\n[block:html]\n{\n  \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/eL-A8sqyqvY\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n### Criando uma transação por emissão de carnês (integração API Gerencianet)\n[block:html]\n{\n  \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/Zy2EgwOotDg\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\nPara acesso às demais aulas, de outros assuntos, acesse a seção \"[Curso Online de Integrações](https://dev.gerencianet.com.br/docs/curso-online-gerencianet)\".\n\n\n## Próximos Passos\n<hr>\n\nCom o carnê criado, recomendamos que leia as [regras de funcionamento](https://dev.gerencianet.com.br/docs/carnes-regras-funcionamento) dos carnês.","excerpt":"Você está em: *\"Carnês > Criando carnês\"*","slug":"carnes-criando","type":"basic","title":"Criando carnês"}

Criando carnês

Você está em: *"Carnês > Criando carnês"*

Inicialmente, será criado o carnê, que é um conjunto de transações (parcelas) geradas em lote e com forma de pagamento já definida. Para gerar um carnê, você deve enviar uma requisição <code>POST</code> para a rota <code>/carnet</code>. No Playground (ambiente de desenvolvimento), o processo de criação de carnê equivale ao endpoint <code>POST /carnet</code>. Note que, no exemplo de utilização abaixo, 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): [block:code] { "codes": [ { "code": "<?php\n \nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\n \nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n \n$clientId = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'your_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 = desenvolvimento 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)\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' => '2020-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' => '2020-12-02', // data de vencimento da primeira parcela do carnê\n 'repeats' => 5, // número de parcelas do carnê\n 'split_items' => 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}", "language": "php", "name": "PHP" }, { "code": "'use strict';\n \nvar Gerencianet = require('gn-api-sdk-node');\n \nvar clientId = 'your_client_id';\nvar clientSecret = 'your_client_secret';\n \nvar options = {\n client_id: clientId,\n client_secret: clientSecret,\n sandbox: true\n}\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: 'oldbuck@gerencianet.com.br',\n cpf: '94271564656',\n birth: '1977-01-15',\n phone_number: '5144916523'\n },\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();", "language": "javascript", "name": "NodeJS" }, { "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: \"oldbuck@gerencianet.com.br\",\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)", "language": "ruby", "name": "Ruby" }, { "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 \nbody = {\n 'items': [{\n 'name': 'Carnet Item 1',\n 'value': 1000,\n 'amount': 2\n }],\n 'customer': {\n 'name': 'Gorbadoc Oldbuck',\n 'email': 'oldbuck@gerencianet.com.br',\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)", "language": "python", "name": "Python" }, { "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 = \"oldbuck@gerencianet.com.br\",\n cpf = \"94271564656\",\n birth = \"1977-01-15\",\n phone_number = \"5144916523\"\n },\n repeats = 4,\n expire_at = \"2020-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": "asp", "name": ".NET" }, { "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/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/carnet/map/Create.java\n\n*/", "language": "java" } ] } [/block] ### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados: [block:html] { "html": "<p>Por meio da imagem a seguir é possível observar a hierarquia dos atributos presentes na estrutura dos dados do <abbr title=\"JSON que descreve a estrutura dos dados, incluindo todas as informações que podem ser enviadas e as especificidades de cada uma.\">Schema</abbr> do <em>endpoint</em> <code>POST /carnet</code>, apresentado na tabela a seguir:</p>\n<br />\n<img src=\"http://content.screencast.com/users/tiagogerencianet/folders/Jing/media/fc39db8a-b92f-4f0d-ab23-91f7ceec6a91/2016-10-04_1121.png\" alt=\"POST /carnet - Estrutura dos atributos do Schema que podem ser utilizados\"><br />\n<p>Para verificar mais detalhes, <a href=\"https://dev.gerencianet.com.br/docs/playground-carnes#carnet\" target=\"_blank\">acesse aqui.</p>" } [/block] ### b) Atributos que podem ser usados para criar um carnê: [block:parameters] { "data": { "h-0": "Atributo", "h-1": "Descrição", "h-2": "Obrigatório", "h-3": "Tipo", "0-0": "items", "1-0": "customer", "2-0": "expire_at", "3-0": "repeats", "4-0": "split_items", "0-2": "Sim", "1-2": "Sim", "2-2": "Sim", "3-2": "Sim", "4-2": "Não", "0-3": "Object", "1-3": "Object", "2-3": "String", "3-3": "Integer", "4-3": "Boolean", "3-1": "Número de parcelas do carnê.", "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<strong class=\"atributo-obrigatorio\">*</strong></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>", "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>", "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>", "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).", "5-0": "metadata", "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>", "5-2": "Não", "5-3": "Object", "6-0": "instructions", "6-1": "Instruções contidas no carnê.\n<code>Mínimo de 1 linha e máximo de 4 linhas.</code>", "6-2": "Não", "6-3": "String", "7-0": "configurations", "7-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 no Fortunus 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 no Fortunus 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>", "7-2": "Não", "7-3": "Object", "8-0": "message", "8-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>", "8-2": "Não", "8-3": "String" }, "cols": 4, "rows": 9 } [/block] <strong class="atributo-obrigatorio-texto">* valor obrigatório</strong> ## Vídeos Explicativos: Carnês <hr> Pensando em oferecer novos meios de transmitir informações, a Gerencianet disponibiliza os vídeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como criar um carnê através de integração com nossa API. ### Visão geral sobre os Carnês (integração API Gerencianet) [block:html] { "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/eL-A8sqyqvY\" frameborder=\"0\" allowfullscreen></iframe>" } [/block] ### Criando uma transação por emissão de carnês (integração API Gerencianet) [block:html] { "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Zy2EgwOotDg\" frameborder=\"0\" allowfullscreen></iframe>" } [/block] Para acesso às demais aulas, de outros assuntos, acesse a seção "[Curso Online de Integrações](https://dev.gerencianet.com.br/docs/curso-online-gerencianet)". ## Próximos Passos <hr> Com o carnê criado, recomendamos que leia as [regras de funcionamento](https://dev.gerencianet.com.br/docs/carnes-regras-funcionamento) dos carnês.