{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","settings":"","results":{"codes":[]},"params":[]},"next":{"description":"","pages":[]},"title":"Outros endpoints","type":"basic","slug":"pagar-cartao-outros-endpoints","excerpt":"Você está em: *\"Pagar com Cartão > Outros endpoints\"*","body":"Existem outros endpoints (serviços) disponíveis na API e que podem ser utilizados em transações de cartão de crédito:\n\n1. [Cancelar determinada transação](https://dev.gerencianet.com.br/docs/pagar-cartao-outros-endpoints#section-1-cancelar-determinada-transa-o)\n\n2. [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\n3. [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\n4. [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\n5. [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[block:callout]\n{\n \"type\": \"warning\",\n \"title\": \"Antes de prosseguir, certifique-se de que a SDK da Gerencianet foi instalada\",\n \"body\": \"O restante desta página apresenta os procedimentos detalhados, mas você precisa [instalar uma de nossas bibliotecas](https://dev.gerencianet.com.br/docs#section-2-bibliotecas) em seu servidor para executar os códigos de exemplo.\"\n}\n[/block]\n# 1. Cancelar determinada transação\n\nUma transação pode ser cancelada apenas se ela possuir o status <code>new</code>, <code>waiting</code>, <code>unpaid</code> ou <code>link</code>.\n\nA partir do momento que uma transação é cancelada, existe apenas uma condição para que esse status seja alterado novamente: se o cliente imprimir o boleto antes do integrador cancelar a transação, ele poderá realizar o pagamento normalmente em uma agência bancária. Neste caso, o integrador e o pagador recebem a confirmação do pagamento como já acontece normalmente e o status da cobrança é alterado de <code>canceled</code> para <code>paid</code>.\n\nPara cancelar uma transação, você deve enviar uma requisição <code>PUT</code> para a rota <code>/v1/charge/:id/cancel</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada.\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 = Homologação 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 \\ntry {\\n $api = new Gerencianet($options);\\n $charge = $api->cancelCharge($params, []);\\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');\\nvar credentials = require('./credentials');\\n\\nvar options = {\\n\\tclient_id: credentials.client_id,\\n\\tclient_secret: credentials.client_secret,\\n\\tsandbox: true\\n}\\n\\nvar params = {\\n\\tid: 0\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n\\t.cancelCharge(params)\\n\\t.then(console.log)\\n\\t.catch(console.log)\\n\\t.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\\nparams = {\\n id: 2363\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.cancel_charge(params: params)\",\n \"language\": \"ruby\"\n },\n {\n \"code\": \"# encoding: utf-8\\n\\nfrom gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\ngn = Gerencianet(CREDENTIALS)\\n\\nparams = {\\n 'id': 1\\n}\\n\\nresponse = gn.cancel_charge(params=params)\\nprint(response)\",\n \"language\": \"python\"\n },\n {\n \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n class CancelCharge\\n {\\n public static void Execute()\\n {\\n dynamic endpoints = new Endpoints(Credentials.Default.ClientId, Credentials.Default.ClientSecret, Credentials.Default.Sandbox);\\n\\n var param = new\\n {\\n id = 0\\n };\\n\\n try\\n {\\n var response = endpoints.CancelCharge(param);\\n Console.WriteLine(response);\\n }\\n catch (GnException e)\\n {\\n Console.WriteLine(e.ErrorType);\\n Console.WriteLine(e.Message);\\n }\\n }\\n }\\n}\",\n \"language\": \"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/CancelCharge.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/CancelCharge.java\\n\\n*/\",\n \"language\": \"java\"\n },\n {\n \"code\": \"interface\\nfunction CancelCharge(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction CancelCharge(Id: String): String;\\nvar\\n CancelParams: String;\\nbegin\\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize();\\n\\n CancelParams := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'cancelCharge',CancelParams, '', '' );\\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\\tres, err := gn.CancelCharge(1) // 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<hr>\n\n# 2. Alterar URL de notificação (notification_url) e/ou custom_id de transação\n\nÉ possível definir ou alterar as informações enviadas na propriedade <code>metadata</code> da transação a qualquer momento. Este endpoint é de **extrema importância** para atualizar sua URL de notificação atrelada às transações ou modificar o <code>custom_id</code> previamente associado às suas transações.\n\nPara alterar a <code>notification_url</code> e/ou <code>custom_id</code> de uma transação, você deve enviar uma requisição <code>PUT</code> para a rota <code>/v1/charge/:id/metadata</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada.\n\n**Casos de uso deste endpoint:**\n\n- Integrador alterou o IP do servidor que estava associado na URL de notificação das transações;\n\n- Integrador atualizou a URL de notificação para as novas transações que forem criadas (<code>createCharge</code>), mas precisa atualizar também nas transações anteriores (<code>updateChargeMetadata</code>) que foram geradas e que estão associadas com a URL incorreta/desatualizada;\n\n- Foi instalado SSL (https) no servidor do cliente e mesmo que o cliente defina uma regra de redirecionamento 301 ou 302, será preciso definir a nova URL nas transações que estão com a URL \"antiga\";\n\n- Integrador gerou cobranças e não havia informado a URL de notificação ao enviar a requisição de criação da transação;\n\n- Modificar ou acrescentar uma informação junto ao atributo <code>custom_id</code> associado às transações geradas previamente;\n\n- Dentre outros possíveis cenários.\n\nCaso queira, pode explorar e conhecer mais sobre este recurso <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_metadata\" 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 = Homologação 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$body = [\\n 'custom_id' => 'REF0001', // associar transação Gerencianet com seu identificador próprio\\n 'notification_url' => 'http://your_domain.com/notification' // url de notificação\\n];\\n \\ntry {\\n $api = new Gerencianet($options);\\n $charge = $api->updateChargeMetadata($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 custom_id: 'REF0001'\\n notification_url: 'http://your_domain.com/notification',\\n}\\n \\nvar gerencianet = new Gerencianet(options);\\n \\ngerencianet\\n .updateChargeMetadata(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 notification_url: \\\"http://yourdomain.com\\\",\\n custom_id: \\\"my_new_id\\\"\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.update_charge_metadata(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\\t'id': 1000\\n}\\n \\nbody = {\\n\\t'notification_url': \\\"http://yourdomain.com\\\",\\n\\t'custom_id': \\\"my_new_id\\\"\\n}\\n \\ngn.update_charge_metadata(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 notification_url = \\\"http://yourdomain.com\\\",\\n custom_id = \\\"my_new_id\\\"\\n};\\n \\nvar response = endpoints.UpdateChargeMetadata(param, body);\",\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/UpdateMetadata.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/UpdateMetadata.java\\n\\n*/\",\n \"language\": \"java\"\n },\n {\n \"code\": \"interface\\nfunction UpdateChargeMetadata(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction UpdateChargeMetadata(Id: String): String;\\nvar\\n Body : String;\\n Params : String;\\nbegin\\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize();\\n\\n Params := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Body :=\\n '{\\\"custom_id\\\": \\\"Product10\\\",'+\\n '\\\"notification_url\\\": \\\"http://domain.com/notification\\\" }';\\n Result := ExecuteGerenciaNetRequest( 'updateChargeMetadata', Params, '', 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\\\"custom_id\\\": \\\"Product 0001\\\",\\n\\t\\t\\\"notification_url\\\": \\\"http://domain.com/notification\\\",\\n\\t}\\n\\n\\tres, err := gn.UpdateChargeMetadata(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\": \"/ChargeMetadataUpdate\"\n \"notification_url\"\n \"custom_id\"</pre>\n\nPara verificar mais detalhes, [acesse aqui](https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_metadata) e explore em nosso Playground.\n\n<br>\n\n## b) Atributos que podem ser utilizados para atualizar URL de notificação e/ou custom_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>notification_url</code>\",\n \"0-1\": \"Endereço de sua URL válida que receberá as notificações de mudanças de status das transações.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres.</span></strong></div>\",\n \"0-2\": \"Não\",\n \"0-3\": \"String/null\",\n \"1-0\": \"<code>custom_id</code>\",\n \"1-1\": \"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.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres.</span></strong></div>\",\n \"1-2\": \"Não\",\n \"1-3\": \"String\"\n },\n \"cols\": 4,\n \"rows\": 2\n}\n[/block]\n<br>\n<hr>\n\n# 3. Acrescentar informações ao histórico da transação\n\nO histórico de uma transação representa todas as ações que ocorreram com esta transação até o presente momento. As mensagens personalizadas não influenciam na transação em si, apenas em seu histórico.\n\nEste pode ser visualizado tanto no detalhamento da transação pela interface quanto usando o *endpoint* de detalhes da transação.\n\nPara isso, basta enviar o identificador <code>charge_id</code> e a mensagem a ser adicionada ao histórico da transação.\n\nPara adicionar mensagens personalizadas no histórico de uma transação, você deve enviar uma requisição <code>POST</code> para a rota <code>/v1/charge/:id/history</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada.\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 = Homologação 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$body = [\\n 'description' => 'Custom history' // mensagem que será inserida ao histórico do carnê\\n];\\n \\ntry {\\n $api = new Gerencianet($options);\\n $response = $api->createChargeHistory($params, $body);\\n \\n print_r($response);\\n} catch (GerencianetException $e) {\\n print_r($e->code);\\n print_r($e->error);\\n print_r($e->errorDescription);\\n} catch (Exception $e) {\\n print_r($e->getMessage());\\n}\\n\",\n \"language\": \"php\"\n },\n {\n \"code\": \"\\n'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 description: 'Custom history'\\n}\\n \\nvar gerencianet = new Gerencianet(options);\\n \\ngerencianet\\n .createChargeHistory(params, body)\\n .then(console.log)\\n .catch(console.log)\\n .done();\\n\",\n \"language\": \"javascript\",\n \"name\": \"NodeJS\"\n },\n {\n \"code\": \"\\nrequire \\\"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 description: 'Custom description'\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.create_charge_history(params: params, body: body)\\n\",\n \"language\": \"ruby\"\n },\n {\n \"code\": \"\\nfrom 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 'description': 'Custom description'\\n}\\n \\ngn.create_carnet_history(params=params, body=body)\\n\",\n \"language\": \"python\"\n },\n {\n \"code\": \"\\ndynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar params = new {\\n id = 1000\\n};\\n \\nvar body = new\\n{\\n description = \\\"This charge was not fully paid\\\"\\n};\\n \\nvar response = endpoints.CreateChargeHistory(params, 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/charge/json/CreateChargeHistory.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/CreateChargeHistory.java\\n\\n*/\",\n \"language\": \"java\"\n },\n {\n \"code\": \"interface\\nfunction CreateChargeHistory(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction CreateChargeHistory(Id: String): String;\\nvar\\n Body : String;\\n UpdateParams : String;\\nbegin\\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize();\\n\\n UpdateParams := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Body := '{\\\"description\\\": \\\"This carnet is about a service\\\"}';\\n Result := ExecuteGerenciaNetRequest( 'createChargeHistory',UpdateParams, '', 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\\\"description\\\": \\\"This charge was not fully paid\\\",\\n\\t}\\n\\n\\tres, err := gn.CreateChargeHistory(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\": \"/ChargeHistory\"\n \"description\"</pre>\n\nPara verificar mais detalhes, [acesse aqui](https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_history) e explore em nosso Playground.\n\n<br>\n\n## b) Atributo que pode ser utilizado para acrescentar mensagens ao histórico da 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>description</code>\",\n \"0-1\": \"Permite acrescentar informações ao histórico da transação.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255 caracteres.</span></strong>\",\n \"0-2\": \"Sim\",\n \"0-3\": \"String\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br>\n<hr>\n\n# 4. Retornar informações sobre transação\n\nPara retornar informações de uma transação (como um boleto, por exemplo), você deve enviar uma requisição <code>GET</code> para a rota <code>/charge/:id</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada.\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 = Homologação 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\\ntry {\\n $api = new Gerencianet($options);\\n $charge = $api->detailCharge($params, []);\\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');\\nvar credentials = require('./credentials');\\n\\nvar options = {\\n\\tclient_id: credentials.client_id,\\n\\tclient_secret: credentials.client_secret,\\n\\tsandbox: true\\n}\\n\\nvar params = {\\n\\tid: 0\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n\\t.detailCharge(params)\\n\\t.then(console.log)\\n\\t.catch(console.log)\\n\\t.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\\nparams = {\\n id: 1000\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.detail_charge(params: params)\",\n \"language\": \"ruby\"\n },\n {\n \"code\": \"# encoding: utf-8\\n\\nfrom gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\ngn = Gerencianet(CREDENTIALS)\\n\\nparams = {\\n 'id': 1\\n}\\n\\nresponse = gn.detail_charge(params=params)\\nprint(response)\",\n \"language\": \"python\"\n },\n {\n \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n class DetailCharge\\n {\\n public static void Execute()\\n {\\n dynamic endpoints = new Endpoints(Credentials.Default.ClientId, Credentials.Default.ClientSecret, Credentials.Default.Sandbox);\\n\\n var param = new\\n {\\n id = 1000\\n };\\n\\n try\\n {\\n var response = endpoints.DetailCharge(param);\\n Console.WriteLine(response);\\n }\\n catch (GnException e)\\n {\\n Console.WriteLine(e.ErrorType);\\n Console.WriteLine(e.Message);\\n }\\n }\\n }\\n}\",\n \"language\": \"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/DetailCharge.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/DetailCharge.java\\n\\n*/\",\n \"language\": \"java\"\n },\n {\n \"code\": \"interface\\nfunction DetailCharge(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction DetailCharge(Id: String): String;\\nvar\\n DetailParams: String;\\nbegin\\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize();\\n\\n DetailParams := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'detailCharge',DetailParams, '', '' );\\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\\tres, err := gn.DetailCharge(1) // 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<hr>\n\n# 5. Listar parcelas, de acordo com a bandeira do cartão de crédito\n\nO endpoint <code>installments</code> é utilizado para listar as parcelas de cada bandeira de cartão de crédito, já com os valores de juros e número de parcelas calculados de acordo com a conta integradora. Ou seja, se sua conta possui uma configuração de juros de cartão (opção disponível para clientes que optaram por receber valores de cartão de forma parcelada), não é necessário fazer nenhum cálculo, esse endpoint já informa os valores calculados.\n\nBandeiras disponíveis: <code>visa</code>, <code>mastercard</code>, <code>amex</code>, <code>diners</code>, <code>elo</code> e <code>hipercard</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 = Homologação e false = producao)\\n];\\n\\n$params = [\\n\\t'total' => '20000',\\n\\t'brand' => 'visa'\\n];\\n\\ntry {\\n $api = new Gerencianet($options);\\n $installments = $api->getInstallments($params, []);\\n print_r($installments);\\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');\\nvar credentials = require('./credentials');\\n\\nvar options = {\\n\\tclient_id: credentials.client_id,\\n\\tclient_secret: credentials.client_secret,\\n\\tsandbox: true\\n}\\n\\nvar params = {\\n\\ttype: 'visa',\\n\\ttotal: 5000\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n\\t.getInstallments(params)\\n\\t.then(console.log)\\n\\t.catch(console.log)\\n\\t.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\\nparams = {\\n brand: \\\"visa\\\",\\n total: 5000\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.get_installments(params: params)\",\n \"language\": \"ruby\"\n },\n {\n \"code\": \"# encoding: utf-8\\n\\nfrom gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\ngn = Gerencianet(CREDENTIALS)\\n\\nparams = {\\n 'brand': 'visa',\\n 'total': 5000\\n}\\n\\nresponse = gn.get_installments(params=params)\\nprint(response)\",\n \"language\": \"python\"\n },\n {\n \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n class GetInstallments\\n {\\n public static void Execute()\\n {\\n dynamic endpoints = new Endpoints(Credentials.Default.ClientId, Credentials.Default.ClientSecret, Credentials.Default.Sandbox);\\n\\n var param = new\\n {\\n brand = \\\"visa\\\",\\n total = 2500\\n };\\n\\n try\\n {\\n var response = endpoints.GetInstallments(param);\\n Console.WriteLine(response);\\n }\\n catch (GnException e)\\n {\\n Console.WriteLine(e.ErrorType);\\n Console.WriteLine(e.Message);\\n }\\n }\\n }\\n}\",\n \"language\": \"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/extra/json/GetInstallments.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/extra/map/GetInstallments.java\\n\\n*/\",\n \"language\": \"java\"\n },\n {\n \"code\": \"interface\\nfunction GetInstallments: String;\\n\\nimplementation\\nuses\\n uGerenciaNetClientUtilities, uGerenciaClient;\\n\\nfunction GetInstallments: String;\\nvar\\n Params: String;\\nbegin\\n Params := CreateRequestParams( [ 'total=20000', 'brand=visa' ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'getInstallments','',Params,'' );\\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\\tres, err := gn.GetInstallments(20000, \\\"visa\\\") // total e bandeira\\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]","updates":[],"order":4,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5818bc07beb0c20f000d4432","__v":0,"createdAt":"2016-11-01T16:00:07.127Z","user":"57601a13af3e090e00108059","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},"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},"githubsync":"","parentDoc":null}
Outros endpoints
Você está em: *"Pagar com Cartão > Outros endpoints"*