{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","settings":"","results":{"codes":[]},"params":[]},"next":{"description":"","pages":[]},"title":"Pagamento com cartão","type":"basic","slug":"pagamento-cartao","excerpt":"Você está em: *\"Pagar com Cartão > Pagamento com cartão\"*","body":"Saiba como permitir o pagamento de uma cobrança através de cartão de crédito. Para gerar, é bem simples e requer apenas dois passos:\n\n1. [Crie a transação](https://dev.gerencianet.com.br/docs/pagamento-cartao#section-1-criar-transa-o), informando o item/produto/serviço, valor, quantidade, etc;\n\n2. [Associe à forma de pagamento via cartão](https://dev.gerencianet.com.br/docs/pagamento-cartao#section-2-associe-forma-de-pagamento-via-cart-o), informando o <code>charge_id</code> da transação criada e os dados do cliente;\n\n 2.1. [Obtenção do payment_token](https://dev.gerencianet.com.br/docs/pagamento-cartao#section-2-1-obten-o-do-payment_token) (via JavaScript, único por transação);\n\n 2.2. [Pagando com cartão](https://dev.gerencianet.com.br/docs/pagamento-cartao#section-2-2-pagando-com-cart-o) (informando o <code>payment_token</code> obtido anteriormente).\n\nPor se tratar de pagamento via cartão e envolver dados sensíveis, como dados do cartão de crédito, os procedimentos descritos nos itens 2.1 e 2.2, ou seja, obtenção do <code>payment_token</code> e pagando com cartão, respectivamente, **são necessários**.\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#section-2-bibliotecas).\n\n<hr>\n\n# 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\nCaso queira, pode explorar e conhecer mais sobre este recurso <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge\" target=\"_blank\">usando nosso Playground</a>.\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'; // 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) (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,\\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 },\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: '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\": \"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 },\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': \\\"Product 1\\\",\\n 'value': 1000,\\n 'amount': 2\\n }],\\n 'shippings': [{\\n 'name': \\\"Default Shipping Cost\\\",\\n 'value': 100\\n }]\\n}\\n \\ngn.create_charge(body=body)\",\n \"language\": \"python\"\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\": \"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/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/charge/map/CreateCharge.java\\n\\n*/\",\n \"language\": \"java\"\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\": \"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\\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 }\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[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>shippings</code>\",\n \"2-0\": \"<code>metadata</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\\n<div class=\\\"tab2\\\"><code>marketplace</code> // Referente às configurações de repasses. <span class=\\\"atributo\\\">Atributos:</span></div> <div class=\\\"tab2\\\">\\n<code>*payee_code*</code> (código identificador da conta Gerencianet, único por conta - veja <a href=\\\"https://s3-sa-east-1.amazonaws.com/pe85007/portal/wp-content/uploads/2017/10/payee_code_p.png\\\" target=\\\"_blank\\\">onde localizá-lo</a>). String.\\n<code>*percentage*</code> (porcentagem de repasse, sendo que 9000 equivale a 90% - Integer).</span></div>\",\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>payee_code</code> // código identificador da conta Gerencianet, único por conta - confira onde localizá-lo, de acordo com o layout de sua plataforma - <a href=\\\"https://gerencianet.com.br/wp-content/uploads/2017/10/payee_code_n.png\\\" target=\\\"_blank\\\">opção 1</a> ou <a href=\\\"https://gerencianet.com.br/wp-content/uploads/2017/10/payee_code_p.png\\\" target=\\\"_blank\\\">opção 2</a>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Padrão: Identificador da sua própria conta. String.</span></strong></div>\",\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 \"0-2\": \"Sim\",\n \"1-2\": \"Não\",\n \"2-2\": \"Não\",\n \"0-3\": \"Array\",\n \"1-3\": \"Array\",\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. Associe à forma de pagamento via cartão\n\nCom a transação criada, vamos associá-la à forma de pagamento desejada, que neste caso, será cartão de crédito. Para tal, deverá ser informado a <code>charge_id</code> obtido no consumo anterior em que foi gerada a transação.\n\nNo caso de transações com cartão de crédito, será realizado em duas etapas, sendo a primeira a transmissão (**via JavaScript**, no browser), de forma segura, os dados do cartão e retornando um <code>payment_token</code>, e na segunda etapa seu *backend* envia o restante das informações da transação e o <code>payment_token</code> obtido na primeira etapa.\n[block:callout]\n{\n \"type\": \"warning\",\n \"title\": \"IMPORTANTE - SOBRE O PAYMENT_TOKEN\",\n \"body\": \"É importante frisar que **não é possível efetuar pagamento com cartão de crédito sem obter o** <code>payment_token</code> da transação, por isso, é imprescindível a realização dos procedimentos do **item 2.1** deste documento (obter o <code>payment_token</code>), e **só depois** passar para o item 2.2 (que é de fato o pagamento com cartão).\"\n}\n[/block]\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\nCaso queira, pode explorar e conhecer mais sobre este recurso <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_pay\" target=\"_blank\">usando nosso Playground</a>.\n\n\n## 2.1. Obtenção do payment_token\n\n\n[block:html]\n{\n \"html\": \"<p>Com a transação criada, vamos associá-la à forma de pagamento desejada, que neste caso, será cartão de crédito.</p>\\n\\n<p>Inicialmente, vamos realizar a primeira etapa, que é a obtenção do <code>payment_token</code>. Para tal, você necessitará de um código JavaScript específico de sua conta Gerencianet. Para gerá-lo, siga os passos:</p>\\n \\n<ul>\\n <li><a href=\\\"https://usuario.gerencianet.com.br/login\\\" target=\\\"_blank\\\">Efetue login</a> em sua conta Gerencianet e acesse <code>Minha Conta</code> (canto superior direito)</li>\\n <li>Copie seu <code>Identificador de Conta</code> (<a href=\\\"https://s3-sa-east-1.amazonaws.com/pe85007/portal/wp-content/uploads/2017/10/payee_code_p.png\\\" target=\\\"_blank\\\">veja onde</a>)</li>\\n <li>Cole no campo abaixo e clique no botão <code>Gerar</code></li>\\n</ul> \\n\\n<input id=\\\"input_code\\\" type=\\\"text\\\" > <button id=\\\"get_code\\\">Gerar</button> \\n<div id=\\\"resultado_code_js\\\"></div>\\n<br>\\n<p>É importante frisar que é obtido via <strong>JavaScript</strong>, no browser, de forma segura, os dados do cartão e retorna um <code>payment_token</code>, que é a representação dos dados enviados.</p>\"\n}\n[/block]\n\n[block:callout]\n{\n \"type\": \"warning\",\n \"title\": \"IMPORTANTE\",\n \"body\": \"Lembre-se que, após informar seu identificador de conta, serão gerados 2 (dois) códigos JavaScript distintos.\\n\\nCopie e utilize o código referente ao ambiente desejado, atentando-se às diferenças do ambiente de *\\\"Desenvolvimento\\\"* e *\\\"Produção\\\"*.\"\n}\n[/block]\nPara aplicações web, você deve copiar o script acima, específico da sua conta, e utilizar a nossa biblioteca Javascript, conforme o *snippet* abaixo. Se você possui um app mobile, confira como proceder acessando nossa página no GitHub para <a href=\"https://github.com/gerencianet/gn-api-sdk-android\" target=\"_blank\">Android</a> e/ou <a href=\"https://github.com/gerencianet/gn-api-sdk-ios\" target=\"_blank\">iOS</a>.\n\nAdicionalmente, esclarecemos que uma conta Gerencianet não possui um <code>payment_token</code> - ele é diferente e criado para cada cobrança gerada por cartão de crédito. Ele representa os dados do cartão do pagador e é obtido pela função <code>getPaymentToken</code>. Além disso, cabe frisar que o <code>payment_token</code> pode ser utilizado uma única vez, portanto, não é possível utilizá-lo para cobrar de forma recorrente.\n\n<br />\n## a) Obtendo um \"payment_token\" ( getPaymentToken )\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"$gn.ready(function(checkout) {\\n \\n var callback = function(error, response) {\\n if(error) {\\n // Trata o erro ocorrido\\n console.error(error);\\n } else {\\n // Trata a resposta\\n console.log(response);\\n }\\n };\\n \\n checkout.getPaymentToken({\\n brand: 'visa', // bandeira do cartão\\n number: '4012001038443335', // número do cartão\\n cvv: '123', // código de segurança\\n expiration_month: '05', // mês de vencimento\\n expiration_year: '2018' // ano de vencimento\\n }, callback);\\n \\n});\",\n \"language\": \"json\",\n \"name\": \"Código\"\n }\n ]\n}\n[/block]\n<br />\n## b) Obtendo informações sobre parcelamentos ( getInstallments )\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"$gn.ready(function(checkout){\\n \\n checkout.getInstallments(50000,'visa', function(error, response){\\n if(error) {\\n // Trata o erro ocorrido\\n console.log(error);\\n } else {\\n // Insere o parcelamento no site\\n }\\n });\\n \\n});\",\n \"language\": \"json\",\n \"name\": \"Código\"\n }\n ]\n}\n[/block]\n<br />\n## c) Atributos relacionados ao envio de dados do cartão:\n\n*$gn.ready ( callback )*\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Parâmetro\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Tipo\",\n \"0-0\": \"<code>callback</code>\",\n \"0-2\": \"Function\",\n \"0-1\": \"Função de inicialização que possibilita a chamada das funções *getPaymentToken* e *getInstallments*.\\n\\n<span class=\\\"tab1\\\"><em>Parâmetro(s) de callback</em></span>\\n\\n<div class=\\\"tab2\\\"><code>object</code> // Objeto que recebe as instâncias das outras funções.</div>\"\n },\n \"cols\": 3,\n \"rows\": 1\n}\n[/block]\n<br />\n\n*getPaymentToken ( card_data, callback )*\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Parâmetro\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Tipo\",\n \"0-0\": \"<code>card_data</code>\",\n \"1-0\": \"<code>callback</code>\",\n \"0-1\": \"Objeto que contém os dados do cartão.\\n\\n<span class=\\\"tab1\\\"><em>As propriedades desse objeto são:</em></span>\\n\\n<div class=\\\"tab2\\\"><code>brand</code> // Bandeira do cartão</div>\\n<div class=\\\"tab2\\\"><code>number</code> // Número do cartão sem formatação</div>\\n<div class=\\\"tab2\\\"><code>cvv</code> // Código de segurança do cartão</div>\\n<div class=\\\"tab2\\\"><code>expiration_month</code> // Mês de expiração do cartão no formato \\\"MM\\\"</div>\\n<div class=\\\"tab2\\\"><code>expiration_year</code> // Ano de expiração do cartão no formato \\\"YYYY\\\"</div>\",\n \"0-2\": \"Object\",\n \"1-2\": \"Function\",\n \"1-1\": \"Função que recebe a resposta da Gerencianet.\\n\\n<span class=\\\"tab1\\\"><em>Parâmetro(s) de callback:</em></span>\\n\\n<div class=\\\"tab2\\\"><code>error</code> // Se não foi possível gerar o payment_token, os erros serão retornados neste parâmetro.</div>\\n\\n<div class=\\\"tab2\\\"><code>response</code> // Recebe os dados que representam o cartão de crédito: payment_token e card_mask</div>\"\n },\n \"cols\": 3,\n \"rows\": 2\n}\n[/block]\n<br />\n\n*getInstallments ( total, brand, callback )*\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Parâmetro\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Tipo\",\n \"0-0\": \"<code>total</code>\",\n \"1-0\": \"<code>brand</code>\",\n \"2-0\": \"<code>callback</code>\",\n \"0-2\": \"Integer\",\n \"1-2\": \"String\",\n \"2-2\": \"Function\",\n \"0-1\": \"Valor total da cobrança, incluindo fretes, em centavos.\\n\\n<div class=\\\"tab2\\\"><strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Por exemplo: R$ 230,90 equivale a 23090.</span></strong></div>\",\n \"1-1\": \"Bandeira do cartão que deseja-se obter os valores de parcelas.\\n\\n<span class=\\\"tab1\\\"><em>Possíveis valores:</em></span>\\n\\n<div class=\\\"tab2\\\"><code>visa</code> // Bandeira Visa</div>\\n\\n<div class=\\\"tab2\\\"><code>mastercard</code> // Bandeira MasterCard</div>\\n\\n<div class=\\\"tab2\\\"><code>diners</code> // Bandeira Dinners</div>\\n\\n<div class=\\\"tab2\\\"><code>amex</code> // Bandeira AmericanExpress</div>\\n\\n<div class=\\\"tab2\\\"><code>elo</code> // Bandeira Elo</div>\\n\\n<div class=\\\"tab2\\\"><code>hipercard</code> // Bandeira Hipercard</div>\",\n \"2-1\": \"Função que recebe a resposta da Gerencianet.\\n\\n<span class=\\\"tab1\\\"><em>Parâmetro(s) de callback:</em></span>\\n\\n<div class=\\\"tab2\\\"><code>error</code> // Se não foi possível obter dados sobre o pagamento, os erros serão retornados neste parâmetro.</div>\\n\\n<div class=\\\"tab2\\\"><code>response</code> // Recebe os dados relacionados ao tipo de pagamento consultado.</div>\"\n },\n \"cols\": 3,\n \"rows\": 3\n}\n[/block]\n<br>\n\n## 2.2. Pagando com cartão\n\nAgora que a transação já foi criada e o <code>payment_token</code> já foi obtido através do código Javascript da primeira etapa, vamos prosseguir com o pagamento com cartão de crédito.\n\nNesta etapa, seu *backend* envia o restante das informações da transação e o <code>payment_token</code> obtido na primeira etapa.\n\nAo pagar uma transação por cartão de crédito, o status é alterado de <code>new</code> para <code>waiting</code>. Isso significa que a transação está associada a uma forma de pagamento e que está aguardando a confirmação do pagamento.\n\nAssim que o pagamento for confirmado, a transação terá o status alterado de <code>waiting</code> para <code>paid</code>. Mas, se por alguma razão não for possível confirmar o pagamento, o status será alterado para <code>unpaid</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'; // 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// $charge_id refere-se ao ID da transação gerada anteriormente\\n$params = [\\n 'id' => $charge_id\\n];\\n \\n$paymentToken = '6426f3abd8688639c6772963669bbb8e0eb3c319'; // payment_token obtido na 1ª etapa (através do Javascript único por conta Gerencianet)\\n \\n$customer = [\\n 'name' => 'Gorbadoc Oldbuck', // nome do cliente\\n 'cpf' => '94271564656' , // cpf do cliente\\n 'email' => 'email_do_cliente:::at:::servidor.com.br' , // endereço de email do cliente\\n 'phone_number' => '5144916523' // telefone do cliente\\n 'birth' => '1990-05-20' // data de nascimento do cliente\\n];\\n \\n$billingAddress = [\\n 'street' => 'Street 3',\\n 'number' => 10,\\n 'neighborhood' => 'Bauxita',\\n 'zipcode' => '35400000',\\n 'city' => 'Ouro Preto',\\n 'state' => 'MG',\\n];\\n \\n$creditCard = [\\n 'installments' => 1, // número de parcelas em que o pagamento deve ser dividido\\n 'billing_address' => $billingAddress,\\n 'payment_token' => $paymentToken,\\n 'customer' => $customer\\n];\\n \\n$body = [\\n 'payment' => $payment\\n];\\n \\n$payment = [\\n 'credit_card' => $creditCard // forma de pagamento (credit_card = cartão)\\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 },\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 params = {\\n id: 1000\\n}\\n \\nvar body = {\\n payment: {\\n credit_card: {\\n installments: 1,\\n payment_token: '6426f3abd8688639c6772963669bbb8e0eb3c319',\\n billing_address: {\\n street: 'Street 3',\\n number: 10,\\n neighborhood: 'Bauxita',\\n zipcode: '35400000',\\n city: 'Ouro Preto',\\n state: 'MG'\\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 }\\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\": \"require \\\"gerencianet\\\"\\n \\noptions = {\\n client_id: \\\"client_id\\\",\\n client_secret: \\\"client_secret\\\",\\n sandbox: true\\n}\\n \\nparams = {\\n id: 1000\\n}\\n \\nbody = {\\n payment: {\\n credit_card: {\\n installments: 1,\\n payment_token: \\\"6426f3abd8688639c6772963669bbb8e0eb3c319\\\",\\n billing_address: {\\n street: \\\"Av. JK\\\",\\n number: 909,\\n neighborhood: \\\"Bauxita\\\",\\n zipcode: \\\"35400000\\\",\\n city: \\\"Ouro Preto\\\",\\n state: \\\"MG\\\"\\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 }\\n }\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.pay_charge(params: params, body: body)\",\n \"language\": \"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 \\nparams = {\\n 'id': 1000\\n}\\n \\nbody = {\\n 'payment': {\\n 'credit_card': {\\n 'installments': 1,\\n 'payment_token': \\\"6426f3abd8688639c6772963669bbb8e0eb3c319\\\",\\n 'billing_address': {\\n 'street': \\\"Av. JK\\\",\\n 'number': 909,\\n 'neighborhood': \\\"Bauxita\\\",\\n 'zipcode': \\\"35400000\\\",\\n 'city': \\\"Ouro Preto\\\",\\n 'state': \\\"MG\\\"\\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 }\\n }\\n}\\n \\ngn.pay_charge(params=params, body=body)\",\n \"language\": \"python\"\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 credit_card = new {\\n installments = 1,\\n payment_token = \\\"6426f3abd8688639c6772963669bbb8e0eb3c319\\\",\\n billing_address = new {\\n street = \\\"Av. JK\\\",\\n number = 909,\\n neighborhood = \\\"Bauxita\\\",\\n zipcode = \\\"35400000\\\",\\n city = \\\"Ouro Preto\\\",\\n state = \\\"MG\\\"\\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 }\\n }\\n};\\n \\nvar response = endpoints.PayCharge(param, body);\\nConsole.WriteLine(response);\",\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/charge/json/Card.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/charge/map/Card.java\\n\\n*/\",\n \"language\": \"java\"\n },\n {\n \"code\": \"interface\\nfunction PayChargeWithCard(Id, Token: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction PayChargeWithCard(Id, Token: String): String;\\nvar\\n Body: String;\\n PaymentParams: String;\\n\\nbegin\\n Body :=\\n '{'+\\n '\\\"payment\\\": {'+\\n '\\\"credit_card\\\": {'+\\n '\\\"customer\\\": {'+\\n '\\\"name\\\": \\\"Gorbadoc Oldbuck\\\",'+\\n '\\\"cpf\\\": \\\"94271564656\\\",'+\\n '\\\"phone_number\\\": \\\"5144916523\\\",'+\\n '\\\"email\\\": \\\"[email protected]\\\",'+\\n '\\\"birth\\\": \\\"1977-01-15\\\"'+\\n '},'+\\n '\\\"installments\\\": 1,'+\\n '\\\"payment_token\\\": \\\"'+Token+'\\\",'+\\n '\\\"billing_address\\\": {'+\\n '\\\"street\\\": \\\"Av. JK\\\",'+\\n '\\\"number\\\": \\\"909\\\",'+\\n '\\\"neighborhood\\\": \\\"Bauxita\\\",'+\\n '\\\"zipcode\\\": \\\"35400000\\\",'+\\n '\\\"city\\\": \\\"Ouro Preto\\\",'+\\n '\\\"state\\\": \\\"MG\\\"'+\\n '}'+\\n '}'+\\n '}'+\\n '}';\\n\\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize();\\n \\n PaymentParams := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'payCharge',PaymentParams,'',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\\tpaymentToken := \\\"payment_token\\\";\\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\\t\\\"email\\\": \\\"[email protected]\\\",\\n\\t\\t\\\"birth\\\": \\\"1977-01-15\\\",\\n\\t}\\n\\n\\tbillingAddress := map[string]interface{} {\\n\\t\\t\\\"street\\\": \\\"Av JK\\\",\\n\\t\\t\\\"number\\\": 909,\\n\\t\\t\\\"neighborhood\\\": \\\"Bauxita\\\",\\n\\t\\t\\\"zipcode\\\": \\\"35400000\\\",\\n\\t\\t\\\"city\\\": \\\"Ouro Preto\\\",\\n\\t\\t\\\"state\\\": \\\"MG\\\",\\n\\t}\\n\\n\\tbody := map[string]interface{} {\\n\\t\\t\\\"payment\\\": map[string]interface{} {\\n\\t\\t\\t\\\"credit_card\\\": map[string]interface{} {\\n\\t\\t\\t\\t\\\"installments\\\": 1,\\n\\t\\t\\t\\t\\\"billing_address\\\": billingAddress,\\n\\t\\t\\t\\t\\\"payment_token\\\": paymentToken,\\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 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 }\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 \"credit_card\"\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 \"installments\"\n \"discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"billing_address\"\n \"street\"\n \"number\"\n \"neighborhood\"\n \"zipcode\"\n \"city\"\n \"complement\"\n \"state\"\n \"payment_token\"\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 relacionados ao pagamento com cartão de crédito:\n\n*Parâmetros da url*\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>id</code>\",\n \"0-1\": \"Identificador da transação (<code>charge_id</code>)\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Objeto **ID**\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br />\n\n*Objeto **ID***\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>payment</code>\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Objeto **Payment**\",\n \"0-1\": \"Tag raiz\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br />\n\n*Objeto **Payment***\n[block:parameters]\n{\n \"data\": {\n \"0-0\": \"<code>credit_card</code>\",\n \"0-1\": \"Objeto contendo as informações necessárias para o pagamento via cartão de crédito, como por exemplo, o número de parcelas e os dados do cliente.\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Objeto **Credit_Card**\",\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br />\n\n*Objeto **Credit_Card***\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>customer</code>\",\n \"0-2\": \"Sim\",\n \"1-0\": \"<code>installments</code>\",\n \"2-0\": \"<code>discount</code>\",\n \"3-0\": \"<code>billing_address</code>\",\n \"4-0\": \"<code>payment_token</code>\",\n \"0-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<strong class=\\\"atributo-obrigatorio\\\">*</strong></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<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Data de Nascimento do cliente (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 de Entrega <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\": \"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 \"4-1\": \"Token único de pagamento obtido na primeira etapa da geração da transação.\",\n \"3-1\": \"Endereço de cobrança (<a href=\\\"https://dev.gerencianet.com.br/docs/definir-enderecos\\\" target=\\\"_blank\\\">mais informações</a>)\\n\\n<span class=\\\"tab1\\\">*Atributos de billing_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 \"1-1\": \"Número de parcelas em que o pagamento deve ser dividido.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo 1 e máximo 12. Integer.</span></strong>\",\n \"3-2\": \"Sim\",\n \"4-2\": \"Sim\",\n \"1-2\": \"Não\",\n \"2-2\": \"Não\",\n \"0-3\": \"Object\",\n \"1-3\": \"Integer\",\n \"2-3\": \"Object\",\n \"3-3\": \"Object\",\n \"4-3\": \"String\",\n \"5-0\": \"<code>message</code>\",\n \"5-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.\\n\\nO operador <code>\\\\n</code> é utilizado para efetuar a quebra de linha.</span></strong>\",\n \"5-2\": \"Não\",\n \"5-3\": \"String\"\n },\n \"cols\": 4,\n \"rows\": 6\n}\n[/block]\n<strong class=\"atributo-obrigatorio-texto\">* valor obrigatório</strong>\n\n<br>\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 pagamento cuja forma de pagamento seja \\\"cartão de crédito\\\" 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 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 \"body\": \"As notificações permitem que você seja informado quando uma transação tiver seu status alterado. Dessa forma, você poderá identificar quando uma cobrança 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 \"title\": \"Callbacks (notificações) das transações da API para seu sistema\"\n}\n[/block]\n<br>\n<hr>\n\n# 3. Outros endpoints\n\nExistem outros endpoints e métodos relacionados a pagamento via cartão de crédito que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa:\n\n- [Cancelar determinada transação](https://dev.gerencianet.com.br/docs/pagar-cartao-outros-endpoints#section-1-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-cartao-outros-endpoints#section-2-alterar-url-de-notifica-o-notification_url-e-ou-custom_id-de-transa-o)\n\n- [Acrescentar informações ao histórico da transação](https://dev.gerencianet.com.br/docs/pagar-cartao-outros-endpoints#section-3-acrescentar-informa-es-ao-hist-rico-da-transa-o)\n\n- [Retornar informações sobre transação](https://dev.gerencianet.com.br/docs/pagar-cartao-outros-endpoints#section-4-retornar-informa-es-sobre-transa-o)\n\n- [Listar parcelas, de acordo com a bandeira do cartão de crédito](https://dev.gerencianet.com.br/docs/pagar-cartao-outros-endpoints#section-5-listar-parcelas-de-acordo-com-a-bandeira-do-cart-o-de-cr-dito)\n\n<br>\n\n<hr>\n\n# 4. Vídeos: Criando transação e pagando via cartão de crédito\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 uma transação via integração e associá-la à forma de pagamento por \"cartão de crédito\".\n\n## 4.1. Criando transação via Playground (ambiente de testes/sandbox)\n[block:html]\n{\n \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/ylqJUpHqwfY\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n<br>\n\n## 4.2. Definindo método de pagamento por Cartão de Crédito (via Playground)\n[block:html]\n{\n \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/vxhkSXV_aX8\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n<br>\n\n## 4.3. Criando uma transação por integração - Pagamento por Cartão de Crédito\n[block:html]\n{\n \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/ucEr_sjp9wQ\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n<br>\n[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"DICA\",\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\n<hr>\n\n# 5. Próximos Passos\n\nExistem outras soluções da API que permitem a utilização de pagamento por cartão de crédito, 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/docs/marketplace-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":2,"isReference":false,"hidden":true,"sync_unique":"","link_url":"","link_external":false,"_id":"585034132272620f002835d3","__v":0,"createdAt":"2016-12-13T17:46:59.535Z","category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Pagar com Cartão","slug":"pagar-com-cartão","order":7,"from_sync":false,"reference":false,"_id":"5783f86dbfbba719003f0d8b","project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","createdAt":"2016-07-11T19:50:05.606Z","__v":0},"githubsync":"","parentDoc":null,"user":"57601a13af3e090e00108059","project":"575aeffae12cf20e002f306c","version":{"version":"1","version_clean":"1.0.0","codename":"2016","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"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","5ce43ecb9e6a78002aae5c66","5ce7de70923530005cbe627a","5f9c614b7352f400665cd7f6"],"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","__v":34}}
Pagamento com cartão
Você está em: *"Pagar com Cartão > Pagamento com cartão"*