{"_id":"57851e622eca4e0e002b4c33","parentDoc":null,"__v":10,"githubsync":"","project":"575aeffae12cf20e002f306c","user":"57601a13af3e090e00108059","version":{"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","__v":31,"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","58c29df1258e5a1900b60478","5a7c4127490e52002a7f643c"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"category":{"_id":"5783f8755cbce30e0074e2b8","version":"575aeffae12cf20e002f306f","__v":0,"project":"575aeffae12cf20e002f306c","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-07-11T19:50:13.133Z","from_sync":false,"order":6,"slug":"carnês","title":"Carnês"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-07-12T16:44:18.735Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"Saiba como gerar um carnê para seus clientes. O 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 - é ideal para quem realiza vendas parceladas e também para quem trabalha com mensalidades.\n\nAs 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\nPara criar o carnê, você deve enviar uma requisição <code>POST</code> para a rota <code>/v1/carnet</code>.\n\nO restante desta página apresenta os procedimentos detalhados para criação do 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](https://dev.gerencianet.com.br/docs#section-2-bibliotecas).\n\nA seguir, um código de exemplo de criação de um 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[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n \\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK\\n \\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse 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 = 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      \"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_do_cliente@servidor.com.br\\\",'+\\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\": \"json\",\n      \"name\": \"Delphi\"\n    },\n    {\n      \"code\": \"// No código de exemplo de uso da SDK de Go, definimos as credenciais de acesso à API (Client_Id e Client_Secret) e o ambiente a ser usado (sandbox como 'true' ou 'false') dentro de um arquivo específico (configs.go), que está localizado no diretório \\\"_examples/configs\\\". Essas credenciais são exportadas através da variável 'Credentials'.\\n\\npackage 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\\\": \\\"2020-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    }\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    \"1-0\": \"<code>customer</code>\",\n    \"2-0\": \"<code>expire_at</code>\",\n    \"3-0\": \"<code>repeats</code>\",\n    \"4-0\": \"<code>split_items</code>\",\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<code>Mínimo de 2 parcelas e máximo de 12 parcelas</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<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\": \"<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 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    \"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[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Pagamento 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 carnê 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 um carnê e parcelas\",\n  \"body\": \"Todas os carnês possuem status, que representam a \\\"situação\\\" desse carnê. Portanto, é importante conhecer os possíveis status 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 dos carnês e parcelas de carnês.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Callbacks (notificações) das parcelas e carnês da API para seu sistema\",\n  \"body\": \"As notificações permitem que você seja informado quando uma parcela ou carnê tiverem seu status alterado. Dessa forma, você poderá identificar quando uma parcela for paga, 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# 2. Outros endpoints e métodos\n\nExistem outros endpoints e métodos relacionados a carnês que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa:\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<br>\n<hr>\n\n# 3. Vídeos: Carnês\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## 3.1. 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<br>\n\n## 3.2. 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]\n<br>\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Curso Completo de Integração com a API Gerencianet\",\n  \"body\": \"Para acesso as demais aulas, de outros assuntos, acesse a página <a href=\\\"https://dev.gerencianet.com.br/docs/curso-online-gerencianet\\\" title=\\\"Link Interno\\\">Curso Online de Integrações</a>.\"\n}\n[/block]\n<br>\n<hr>\n\n# 4. Próximos Passos\n\nCom os carnês criados, vamos verificar [como eles funcionam](https://dev.gerencianet.com.br/docs/carnes-como-funcionam)? Não deixe de ver também todos os [endpoints relacionados a carnês](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints).","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"*

Saiba como gerar um carnê para seus clientes. O 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 - é ideal para quem realiza vendas parceladas e também para quem trabalha com mensalidades. 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: - Itens (ou serviço) oferecido; - Data de vencimento da 1ª parcela; - Número de parcelas (repetições). Para criar o carnê, você deve enviar uma requisição <code>POST</code> para a rota <code>/v1/carnet</code>. O restante desta página apresenta os procedimentos detalhados para criação do 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](https://dev.gerencianet.com.br/docs#section-2-bibliotecas). A seguir, um código de exemplo de criação de um 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): [block:code] { "codes": [ { "code": "<?php\n \nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK\n \nuse Gerencianet\\Exception\\GerencianetException;\nuse 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 = 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" }, { "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_do_cliente@servidor.com.br\",'+\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;", "language": "json", "name": "Delphi" }, { "code": "// No código de exemplo de uso da SDK de Go, definimos as credenciais de acesso à API (Client_Id e Client_Secret) e o ambiente a ser usado (sandbox como 'true' ou 'false') dentro de um arquivo específico (configs.go), que está localizado no diretório \"_examples/configs\". Essas credenciais são exportadas através da variável 'Credentials'.\n\npackage 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\": \"2020-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}", "language": "go" } ] } [/block] <br> ## a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados: <pre>"id": "/Carnet" "items" "name" "value" "amount" "customer" "name" "cpf" "email" "phone_number" "birth" "address" "street" "number" "neighborhood" "zipcode" "city" "complement" "state" "juridical_person" "corporate_name" "cnpj" "expire_at" "repeats" "split_items" "metadata" "custom_id" "notification_url" "configurations" "fine" "interest" "message" "discount" "type" "percentage", "currency" "value" "conditional_discount" "type" "percentage", "currency" "value" "until_date"</pre> Para verificar mais detalhes, <a href="https://dev.gerencianet.com.br/docs/playground-carnes#carnet" target="_blank">acesse aqui</a> e explore em nosso Playground. <br> ## 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": "<code>items</code>", "1-0": "<code>customer</code>", "2-0": "<code>expire_at</code>", "3-0": "<code>repeats</code>", "4-0": "<code>split_items</code>", "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ê.\n<code>Mínimo de 2 parcelas e máximo de 12 parcelas</code>", "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": "<code>metadata</code>", "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": "<code>configurations</code>", "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 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>", "6-2": "Não", "6-3": "Object", "7-0": "<code>message</code>", "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>", "7-2": "Não", "7-3": "String", "8-0": "<code>discount</code>", "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>", "8-2": "Não", "8-3": "Object", "9-0": "<code>conditional_discount</code>", "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>", "9-2": "Não", "9-3": "Object" }, "cols": 4, "rows": 10 } [/block] <strong class="atributo-obrigatorio-texto">* valor obrigatório</strong> [block:callout] { "type": "info", "title": "Pagamento realizado como Pessoa Jurídica (PJ)", "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 carnê para um cliente que seja Pessoa Jurídica (PJ)." } [/block] [block:callout] { "type": "info", "title": "Relação de todos os possíveis status de um carnê e parcelas", "body": "Todas os carnês possuem status, que representam a \"situação\" desse carnê. Portanto, é importante conhecer os possíveis status 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 dos carnês e parcelas de carnês." } [/block] [block:callout] { "type": "warning", "title": "Callbacks (notificações) das parcelas e carnês da API para seu sistema", "body": "As notificações permitem que você seja informado quando uma parcela ou carnê tiverem seu status alterado. Dessa forma, você poderá identificar quando uma parcela for paga, 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." } [/block] <br> <hr> # 2. Outros endpoints e métodos Existem outros endpoints e métodos relacionados a carnês que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa: - [Retornar informações sobre um carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-1-retornar-informa-es-sobre-um-carn-) - [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) - [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-) - [Cancelar um carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-4-cancelar-um-carn-) - [Cancelar parcela específica de carnê](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-5-cancelar-parcela-espec-fica-de-carn-) - [Reenviar carnê por e-mail](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints#section-6-reenviar-carn-por-e-mail) - [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) - [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-) <br> <hr> # 3. Vídeos: Carnês 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. ## 3.1. 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] <br> ## 3.2. 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] <br> [block:callout] { "type": "info", "title": "Curso Completo de Integração com a API Gerencianet", "body": "Para acesso as demais aulas, de outros assuntos, acesse a página <a href=\"https://dev.gerencianet.com.br/docs/curso-online-gerencianet\" title=\"Link Interno\">Curso Online de Integrações</a>." } [/block] <br> <hr> # 4. Próximos Passos Com os carnês criados, vamos verificar [como eles funcionam](https://dev.gerencianet.com.br/docs/carnes-como-funcionam)? Não deixe de ver também todos os [endpoints relacionados a carnês](https://dev.gerencianet.com.br/docs/carnes-outros-endpoints).