{"_id":"576030589b1a9a220067ca3e","editedParams":true,"__v":80,"parentDoc":null,"category":{"_id":"57602fe5b82256240055c657","version":"575aeffae12cf20e002f306f","__v":0,"project":"575aeffae12cf20e002f306c","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-06-14T16:25:09.214Z","from_sync":false,"order":14,"slug":"opções-avançadas","title":"Outros Recursos da API"},"editedParams2":true,"project":"575aeffae12cf20e002f306c","version":{"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","__v":30,"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"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"user":"57601a13af3e090e00108059","updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-06-14T16:27:04.160Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"language":"json","status":200,"name":"","code":"POr aqui um exemplo de resposta"}]},"settings":"","examples":{"codes":[{"language":"json","code":""}]},"auth":"never","params":[{"_id":"5761a357ab49980e008a56ca","ref":"","in":"path","required":true,"desc":"Identificador da transação (charge_id) (Integer).","default":"","type":"int","name":"id"}],"url":"/charge/:id/metadata"},"isReference":false,"order":0,"body":"É possível definir ou alterar as informações em uma transação, como por exemplo, atualizar URL de notificação e/ou *custom_id* de transações, assinaturas, carnês, além de ser possível alterar a data de vencimento de boleto bancário e parcela específica de um carnê.\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 que a SDK da Gerencianet foi instalada](https://dev.gerencianet.com.br/docs#section-bibliotecas).\n\nVá direto ao ponto ­- utilize o índice abaixo e veja diretamente o que você precisa:\n\n1. [Alterando notification_url e/ou custom_id de uma transação](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-1-alterando-notification_url-e-ou-custom_id-de-uma-transa-o)\n\n2. [Alterando notification_url e/ou custom_id de uma assinatura](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-2-alterando-notification_url-e-ou-custom_id-de-uma-assinatura)\n\n3. [Alterando notification_url e/ou custom_id de um carnê](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-3-alterando-notification_url-e-ou-custom_id-de-um-carn-)\n\n4. [Atualizando vencimento de um boleto bancário](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-4-atualizando-vencimento-de-um-boleto-banc-rio)\n\n5. [Atualizando vencimento de parcela específica de carnê](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-5-atualizando-vencimento-de-parcela-espec-fica-de-carn-)\n\n\n<br />\n## 1. Alterando notification_url e/ou custom_id de uma transação\n\nÉ possível definir ou alterar as informações enviadas na propriedade <code>metadata</code> da transação a qualquer momento.\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>/charge/:id/metadata</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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n$options = [\\n  'client_id' => $clientId,\\n  'client_secret' => $clientSecret,\\n  'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\\n];\\n \\n// $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 detalhes, acesse o documento específico em nosso Github:\\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CHARGE_UPDATE.md\",\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}\n[/block]\n### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<img src=\"http://image.prntscr.com/image/b136fe9e9c3941318c901425f5c7eccd.png\" alt=\"Estrutura hierárquica\">\n\n\n### b) Atributos que podem ser usados para atualizar metadados de uma Transação:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Atributo\",\n    \"h-1\": \"Descrição\",\n    \"h-2\": \"Obrigatório\",\n    \"0-0\": \"id\",\n    \"0-1\": \"Identificador da transação - <code>charge_id</code>\\n\\n<span class=\\\"tab1\\\"><em>Atributos de id</em></span>\\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\\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    \"0-2\": \"Não\",\n    \"h-3\": \"Tipo\",\n    \"0-3\": \"String\"\n  },\n  \"cols\": 4,\n  \"rows\": 1\n}\n[/block]\n<br />\n## 2. Alterando notification_url e/ou custom_id de uma assinatura\n\nÉ possível definir ou alterar as informações enviadas na propriedade <code>metadata</code> de uma assinatura a qualquer momento.\n\nNesse caso, todas as transações pertencentes à assinatura serão atualizadas. Caso queria atualizar apenas uma, veja como fazer no link \"[Alterando notification_url e/ou custom_id de uma transação](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-1-alterando-notification_url-e-ou-custom_id-de-uma-transa-o)\".\n\nPara alterar a <code>notification_url</code> e/ou <code>custom_id</code> de uma assinatura, você deve enviar uma requisição <code>PUT</code> para a rota <code>/subscription/:id/metadata</code>, onde <code>:id</code> é o <code>subscription_id</code> da assinatura 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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n$options = [\\n  'client_id' => $clientId,\\n  'client_secret' => $clientSecret,\\n  'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\\n];\\n \\n// $subscription_id refere-se ao ID da assinatura gerada anteriormente\\n$params = [\\n  'id' => $subscription_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    $subscription = $api->updateSubscriptionMetadata($params, $body);\\n \\n    print_r($subscription);\\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 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  .updateSubscriptionMetadata(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_subscription_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_subscription_metadata(params=params, body=body)\",\n      \"language\": \"python\",\n      \"name\": null\n    },\n    {\n      \"code\": \"dynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar params = 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.UpdateSubscriptionMetadata(params, body);\",\n      \"language\": \"asp\",\n      \"name\": \".NET\"\n    },\n    {\n      \"code\": \"// Para detalhes, acesse o documento específico em nosso Github:\\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/SUBSCRIPTION_UPDATE.md\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"interface\\nfunction UpdateSubscription(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction UpdateSubscription(Id: String): String;\\nvar\\n  Body: String;\\n  Params : String;\\nbegin\\n    Params := CreateRequestParams( [ 'id='+Id ] ).Text;\\n    Body :=\\n    '{\\\"custom_id\\\": \\\"Subscription10\\\",'+\\n     '\\\"notification_url\\\": \\\"http://domain.com/notification\\\" }';\\n\\n    EnableService( 'GerenciaNet.dll' ); \\n  \\tConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n  \\tGerenciaNetAuthorize();\\n\\n    Result := ExecuteGerenciaNetRequest( 'updateSubscriptionMetadata', Params,'', Body );\\nend;\",\n      \"language\": \"json\",\n      \"name\": \"Delphi\"\n    }\n  ]\n}\n[/block]\n### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<img src=\"http://image.prntscr.com/image/60d7d21cca5b4cbfbb595106e241b374.png\" alt=\"Estrutura hierárquica\">\n\n\n### b) Atributos que podem ser usados para atualizar metadados de uma Assinatura:\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\": \"id\",\n    \"0-1\": \"Identificador da assinatura - <code>subscription_id</code>\\n\\n<span class=\\\"tab1\\\"><em>Atributos de id</em></span>\\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 assinaturas. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\\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    \"0-2\": \"Não\",\n    \"0-3\": \"String\"\n  },\n  \"cols\": 4,\n  \"rows\": 1\n}\n[/block]\n<br />\n## 3. Alterando notification_url e/ou custom_id de um carnê\n\nÉ possível definir ou alterar as informações enviadas na propriedade <code>metadata</code> de um carnê a qualquer momento.\n\nNesse caso, todas as transações pertencentes ao carnê serão atualizadas. Caso queria atualizar apenas uma, veja como fazer no link \"[Alterando notification_url e/ou custom_id de uma transação](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-1-alterando-notification_url-e-ou-custom_id-de-uma-transa-o)\".\n\nPara alterar a <code>notification_url</code> e/ou <code>custom_id</code> de um carnê, você deve enviar uma requisição <code>PUT</code> para a rota <code>/carnet/:id/metadata</code>, onde <code>:id</code> é o <code>carnet_id</code> do carnê desejado.\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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n$options = [\\n  'client_id' => $clientId,\\n  'client_secret' => $clientSecret,\\n  'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\\n];\\n \\n// $carnet_id refere-se ao ID do carnê gerado anteriormente\\n$params = [\\n  'id' => $carnet_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    $carnet = $api->updateCarnetMetadata($params, $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    },\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  .updateCarnetMetadata(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_carnet_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_carnet_metadata(params=params, body=body)\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"dynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar params = 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.UpdateCarnetMetadata(params, body);\",\n      \"language\": \"asp\",\n      \"name\": \".NET\"\n    },\n    {\n      \"code\": \"// Para detalhes, acesse o documento específico em nosso Github:\\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CARNET_UPDATE.md\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"interface\\nfunction UpdateCarnetMetadata(CarnetID: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\n\\nfunction UpdateCarnetMetadata(CarnetID: String): String;\\nvar\\n  Body : String;\\n  UpdateParcelParams : String;\\nbegin\\n    EnableService( 'GerenciaNet.dll' ); \\n    ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n    GerenciaNetAuthorize(); \\n\\n    UpdateParcelParams := CreateRequestParams( [ 'id='+CarnetID ] ).Text;\\n    Body := '{\\\"custom_id\\\": \\\"Carnet 0001\\\", \\\"notification_url\\\" : \\\"http://domain.com/notification\\\"}';\\n    Result := ExecuteGerenciaNetRequest( 'updateCarnetMetadata',UpdateParcelParams, '', Body );\\nend;\",\n      \"language\": \"json\",\n      \"name\": \"Delphi\"\n    }\n  ]\n}\n[/block]\n### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<img src=\"http://image.prntscr.com/image/f488af21ab4a4dfd85292c4b49e7f959.png\" alt=\"Estrutura hierárquica\">\n\n\n### b) Atributos que podem ser usados para atualizar metadados de 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-3\": \"String\",\n    \"0-2\": \"Não\",\n    \"0-0\": \"id\",\n    \"0-1\": \"Identificador do carnê - <code>carnet_id</code>\\n\\n<span class=\\\"tab1\\\"><em>Atributos de id</em></span>\\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 dos carnês. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\\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  \"cols\": 4,\n  \"rows\": 1\n}\n[/block]\n<br />\n## 4. Atualizando vencimento de um boleto bancário\n\nUma transação que possui *boleto bancário* como forma de pagamento e que possui o status <code>unpaid</code> ou <code>waiting</code> pode ter a data de vencimento alterada. Para isso, basta enviar seu identificador <code>charge_id</code> e a nova data de vencimento (em formato YYYY-MM-DD).\n\nPara alterar a data de vencimento de um boleto, você deve enviar uma requisição <code>PUT</code> para a rota <code>/charge/:id/billet</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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n$options = [\\n  'client_id' => $clientId,\\n  'client_secret' => $clientSecret,\\n  'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\\n];\\n \\n// $charge_id refere-se ao ID da transação gerada anteriormente\\n$params = [\\n  'id' => $charge_id\\n];\\n \\n$body = [\\n  'expire_at' => '2020-12-12' // data de vencimento do boleto, em formato YYYY-MM-DD\\n];\\n \\ntry {\\n    $api = new Gerencianet($options);\\n    $charge = $api->updateBillet($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  expire_at: '2020-12-12'\\n}\\n \\nvar gerencianet = new Gerencianet(options);\\n \\ngerencianet\\n  .updateBillet(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  expire_at: \\\"2020-12-12\\\"\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.update_billet(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'expire_at': \\\"2020-12-12\\\"\\n}\\n \\ngn.update_billet(params=params, body=body)\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"dynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar params = {\\n  id = 1000\\n};\\n \\nvar body = {\\n  expire_at = '2020-12-12'\\n}\\n \\nvar response = endpoints.UpdateBillet(params, body);\",\n      \"language\": \"asp\",\n      \"name\": \".NET\"\n    },\n    {\n      \"code\": \"// Para detalhes, acesse o documento específico em nosso Github:\\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CHARGE_UPDATE.md\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"interface\\nfunction UpdateBillet(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction UpdateBillet(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 := '{\\\"expire_at\\\": \\\"2020-12-12\\\"}';\\n    Result := ExecuteGerenciaNetRequest( 'updateBillet', Params, '', Body );\\nend;\",\n      \"language\": \"json\",\n      \"name\": \"Delphi\"\n    }\n  ]\n}\n[/block]\n### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<img src=\"http://image.prntscr.com/image/17f7af13df464ca099097c21b3ff0ce3.png\" alt=\"Estrutura hierárquica\">\n\n\n### b) Atributos que podem ser usados para atualizar vencimento de um boleto:\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-2\": \"Sim\",\n    \"0-3\": \"String\",\n    \"0-0\": \"id\",\n    \"0-1\": \"Identificador da transação - <code>charge_id</code>\\n\\n<span class=\\\"tab1\\\"><em>Atributos de id</em></span>\\n\\n<div class=\\\"tab2\\\"><code>expire_at</code> // Nova data de vencimento do boleto, no formato YYYY-MM-DD.\"\n  },\n  \"cols\": 4,\n  \"rows\": 1\n}\n[/block]\n<br />\n## 5. Atualizando vencimento de parcela específica de carnê\n\nUma folha de carnê que ainda não foi paga pode ter sua data de vencimento alterada. Para isso, basta enviar o <code>carnet_id</code> (identificador do carnê), o número da parcela que deseja alterar e a nova data de vencimento no formato YYYY-MM-DD (por exemplo: 2018-09-25).\n\nPara alterar a data de vencimento de uma parcela específica de um carnê, você deve enviar uma requisição <code>PUT</code> para a rota <code>/carnet/:id/parcel/:parcel</code>, onde <code>:id</code> é o <code>carnet_id</code> do carnê desejado e <code>:parcel</code> é o número da parcela que deseja atualizar a data de vencimento (por exemplo: <code>3</code>, se for a terceira parcela que você deseja alterar o vencimento).\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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n$options = [\\n  'client_id' => $clientId,\\n  'client_secret' => $clientSecret,\\n  'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\\n];\\n \\n// $carnet_id refere-se ao ID da transação gerada anteriormente\\n$params = [\\n  'id' => $carnet_id,\\n  'parcel' => 1 // número da parcela do carnê que deseja alterar a data de vencimento\\n];\\n \\n$body = [\\n  'expire_at' => '2018-01-01' // nova data de vencimento da parcela, em formato YYYY-MM-DD\\n];\\n \\ntry {\\n    $api = new Gerencianet($options);\\n    $carnet = $api->updateParcel($params, $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    },\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  parcel: 1\\n}\\n \\nvar body = {\\n  expire_at: '2020-12-12'\\n}\\n \\nvar gerencianet = new Gerencianet(options);\\n \\ngerencianet\\n  .updateParcel(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  parcel: 1\\n}\\n \\nbody = {\\n  expire_at: \\\"2020-12-12\\\"\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.update_parcel(params: params, body: body)\",\n      \"language\": \"ruby\",\n      \"name\": null\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\\t'parcel': 1\\n}\\n \\nbody = {\\n\\t'expire_at': \\\"2020-12-12\\\"\\n}\\n \\ngn.update_parcel(params=params, body=body)\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"dynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar params = new {\\n    id = 1000,\\n    parcel = 1\\n};\\n \\nvar body = new {\\n    expire_at = \\\"2020-12-20\\\"\\n};\\n \\nvar response = endpoints.UpdateParcel(params, body);\",\n      \"language\": \"asp\",\n      \"name\": \".NET\"\n    },\n    {\n      \"code\": \"// Para detalhes, acesse o documento específico em nosso Github:\\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CARNET_UPDATE.md\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"interface\\nfunction UpdateParcel(CarnetID, CarnetParcel:  String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction UpdateParcel(CarnetID, CarnetParcel:  String): String;\\nvar\\n  Body : String;\\n  UpdateParcelParams : String;\\nbegin\\n    EnableService( 'GerenciaNet.dll' ); \\n    ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n    GerenciaNetAuthorize(); \\n\\n    UpdateParcelParams := CreateRequestParams( [ 'id='+CarnetID, 'parcel='+CarnetParcel ] ).Text;\\n    Body := '{\\\"expire_at\\\": \\\"2018-01-01\\\"}';\\n    Result := ExecuteGerenciaNetRequest( 'updateParcel',UpdateParcelParams, '', Body );\\nend;\",\n      \"language\": \"json\",\n      \"name\": \"Delphi\"\n    }\n  ]\n}\n[/block]\n### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<img src=\"http://image.prntscr.com/image/38b1f8695183410d8ab11610d2cd08fa.png\" alt=\"Estrutura hierárquica\">\n\n\n### b) Atributos que podem ser usados para atualizar vencimento de parcela específica de 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-2\": \"Sim\",\n    \"0-1\": \"Identificador da transação - <code>carnet_id</code>\\n\\n<span class=\\\"tab1\\\"><em>Atributos de id</em></span>\\n\\n<div class=\\\"tab2\\\"><code>expire_at</code> // Nova data de vencimento do boleto, no formato YYYY-MM-DD.\",\n    \"0-0\": \"id\",\n    \"0-3\": \"String\"\n  },\n  \"cols\": 4,\n  \"rows\": 1\n}\n[/block]","excerpt":"Você está em: *\"Outros Recursos da API > Atualizar Transações\"*","slug":"atualizar-transacoes","type":"basic","title":"Atualizar Transações"}

Atualizar Transações

Você está em: *"Outros Recursos da API > Atualizar Transações"*

É possível definir ou alterar as informações em uma transação, como por exemplo, atualizar URL de notificação e/ou *custom_id* de transações, assinaturas, carnês, além de ser possível alterar a data de vencimento de boleto bancário e parcela específica de um carnê. O 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 que a SDK da Gerencianet foi instalada](https://dev.gerencianet.com.br/docs#section-bibliotecas). Vá direto ao ponto ­- utilize o índice abaixo e veja diretamente o que você precisa: 1. [Alterando notification_url e/ou custom_id de uma transação](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-1-alterando-notification_url-e-ou-custom_id-de-uma-transa-o) 2. [Alterando notification_url e/ou custom_id de uma assinatura](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-2-alterando-notification_url-e-ou-custom_id-de-uma-assinatura) 3. [Alterando notification_url e/ou custom_id de um carnê](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-3-alterando-notification_url-e-ou-custom_id-de-um-carn-) 4. [Atualizando vencimento de um boleto bancário](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-4-atualizando-vencimento-de-um-boleto-banc-rio) 5. [Atualizando vencimento de parcela específica de carnê](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-5-atualizando-vencimento-de-parcela-espec-fica-de-carn-) <br /> ## 1. Alterando notification_url e/ou custom_id de uma transação É possível definir ou alterar as informações enviadas na propriedade <code>metadata</code> da transação a qualquer momento. Para 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>/charge/:id/metadata</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada. O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis: [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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n// $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}", "language": "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 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();", "language": "javascript", "name": "NodeJS" }, { "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)", "language": "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 \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)", "language": "python" }, { "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);", "language": "asp", "name": ".NET" }, { "code": "// Para detalhes, acesse o documento específico em nosso Github:\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CHARGE_UPDATE.md", "language": "java" }, { "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;", "language": "json", "name": "Delphi" } ] } [/block] ### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados: <img src="http://image.prntscr.com/image/b136fe9e9c3941318c901425f5c7eccd.png" alt="Estrutura hierárquica"> ### b) Atributos que podem ser usados para atualizar metadados de uma Transação: [block:parameters] { "data": { "h-0": "Atributo", "h-1": "Descrição", "h-2": "Obrigatório", "0-0": "id", "0-1": "Identificador da transação - <code>charge_id</code>\n\n<span class=\"tab1\"><em>Atributos de id</em></span>\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\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>", "0-2": "Não", "h-3": "Tipo", "0-3": "String" }, "cols": 4, "rows": 1 } [/block] <br /> ## 2. Alterando notification_url e/ou custom_id de uma assinatura É possível definir ou alterar as informações enviadas na propriedade <code>metadata</code> de uma assinatura a qualquer momento. Nesse caso, todas as transações pertencentes à assinatura serão atualizadas. Caso queria atualizar apenas uma, veja como fazer no link "[Alterando notification_url e/ou custom_id de uma transação](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-1-alterando-notification_url-e-ou-custom_id-de-uma-transa-o)". Para alterar a <code>notification_url</code> e/ou <code>custom_id</code> de uma assinatura, você deve enviar uma requisição <code>PUT</code> para a rota <code>/subscription/:id/metadata</code>, onde <code>:id</code> é o <code>subscription_id</code> da assinatura desejada. O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis: [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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n// $subscription_id refere-se ao ID da assinatura gerada anteriormente\n$params = [\n 'id' => $subscription_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 $subscription = $api->updateSubscriptionMetadata($params, $body);\n \n print_r($subscription);\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 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 .updateSubscriptionMetadata(params, body)\n .then(console.log)\n .catch(console.log)\n .done();", "language": "javascript", "name": "NodeJS" }, { "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_subscription_metadata(params: params, body: body)", "language": "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 \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_subscription_metadata(params=params, body=body)", "language": "python", "name": null }, { "code": "dynamic endpoints = new Endpoints(\"client_id\", \"client_secret\", true);\n \nvar params = 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.UpdateSubscriptionMetadata(params, body);", "language": "asp", "name": ".NET" }, { "code": "// Para detalhes, acesse o documento específico em nosso Github:\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/SUBSCRIPTION_UPDATE.md", "language": "java" }, { "code": "interface\nfunction UpdateSubscription(Id: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction UpdateSubscription(Id: String): String;\nvar\n Body: String;\n Params : String;\nbegin\n Params := CreateRequestParams( [ 'id='+Id ] ).Text;\n Body :=\n '{\"custom_id\": \"Subscription10\",'+\n '\"notification_url\": \"http://domain.com/notification\" }';\n\n EnableService( 'GerenciaNet.dll' ); \n \tConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n \tGerenciaNetAuthorize();\n\n Result := ExecuteGerenciaNetRequest( 'updateSubscriptionMetadata', Params,'', Body );\nend;", "language": "json", "name": "Delphi" } ] } [/block] ### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados: <img src="http://image.prntscr.com/image/60d7d21cca5b4cbfbb595106e241b374.png" alt="Estrutura hierárquica"> ### b) Atributos que podem ser usados para atualizar metadados de uma Assinatura: [block:parameters] { "data": { "h-0": "Atributo", "h-1": "Descrição", "h-2": "Obrigatório", "h-3": "Tipo", "0-0": "id", "0-1": "Identificador da assinatura - <code>subscription_id</code>\n\n<span class=\"tab1\"><em>Atributos de id</em></span>\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 assinaturas. <strong class=\"descricao-atributo\"><span class=\"atributo\">Máximo de 255 caracteres. String/null.</span></strong></div>\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>", "0-2": "Não", "0-3": "String" }, "cols": 4, "rows": 1 } [/block] <br /> ## 3. Alterando notification_url e/ou custom_id de um carnê É possível definir ou alterar as informações enviadas na propriedade <code>metadata</code> de um carnê a qualquer momento. Nesse caso, todas as transações pertencentes ao carnê serão atualizadas. Caso queria atualizar apenas uma, veja como fazer no link "[Alterando notification_url e/ou custom_id de uma transação](https://dev.gerencianet.com.br/docs/atualizar-transacoes#section-1-alterando-notification_url-e-ou-custom_id-de-uma-transa-o)". Para alterar a <code>notification_url</code> e/ou <code>custom_id</code> de um carnê, você deve enviar uma requisição <code>PUT</code> para a rota <code>/carnet/:id/metadata</code>, onde <code>:id</code> é o <code>carnet_id</code> do carnê desejado. O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis: [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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n// $carnet_id refere-se ao ID do carnê gerado anteriormente\n$params = [\n 'id' => $carnet_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 $carnet = $api->updateCarnetMetadata($params, $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" }, { "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 .updateCarnetMetadata(params, body)\n .then(console.log)\n .catch(console.log)\n .done();", "language": "javascript", "name": "NodeJS" }, { "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_carnet_metadata(params: params, body: body)", "language": "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 \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_carnet_metadata(params=params, body=body)", "language": "python" }, { "code": "dynamic endpoints = new Endpoints(\"client_id\", \"client_secret\", true);\n \nvar params = 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.UpdateCarnetMetadata(params, body);", "language": "asp", "name": ".NET" }, { "code": "// Para detalhes, acesse o documento específico em nosso Github:\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CARNET_UPDATE.md", "language": "java" }, { "code": "interface\nfunction UpdateCarnetMetadata(CarnetID: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\n\nfunction UpdateCarnetMetadata(CarnetID: String): String;\nvar\n Body : String;\n UpdateParcelParams : String;\nbegin\n EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize(); \n\n UpdateParcelParams := CreateRequestParams( [ 'id='+CarnetID ] ).Text;\n Body := '{\"custom_id\": \"Carnet 0001\", \"notification_url\" : \"http://domain.com/notification\"}';\n Result := ExecuteGerenciaNetRequest( 'updateCarnetMetadata',UpdateParcelParams, '', Body );\nend;", "language": "json", "name": "Delphi" } ] } [/block] ### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados: <img src="http://image.prntscr.com/image/f488af21ab4a4dfd85292c4b49e7f959.png" alt="Estrutura hierárquica"> ### b) Atributos que podem ser usados para atualizar metadados de um Carnê: [block:parameters] { "data": { "h-0": "Atributo", "h-1": "Descrição", "h-2": "Obrigatório", "h-3": "Tipo", "0-3": "String", "0-2": "Não", "0-0": "id", "0-1": "Identificador do carnê - <code>carnet_id</code>\n\n<span class=\"tab1\"><em>Atributos de id</em></span>\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 dos carnês. <strong class=\"descricao-atributo\"><span class=\"atributo\">Máximo de 255 caracteres. String/null.</span></strong></div>\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>" }, "cols": 4, "rows": 1 } [/block] <br /> ## 4. Atualizando vencimento de um boleto bancário Uma transação que possui *boleto bancário* como forma de pagamento e que possui o status <code>unpaid</code> ou <code>waiting</code> pode ter a data de vencimento alterada. Para isso, basta enviar seu identificador <code>charge_id</code> e a nova data de vencimento (em formato YYYY-MM-DD). Para alterar a data de vencimento de um boleto, você deve enviar uma requisição <code>PUT</code> para a rota <code>/charge/:id/billet</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada. O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis: [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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n// $charge_id refere-se ao ID da transação gerada anteriormente\n$params = [\n 'id' => $charge_id\n];\n \n$body = [\n 'expire_at' => '2020-12-12' // data de vencimento do boleto, em formato YYYY-MM-DD\n];\n \ntry {\n $api = new Gerencianet($options);\n $charge = $api->updateBillet($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}", "language": "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 params = {\n id: 1000\n}\n \nvar body = {\n expire_at: '2020-12-12'\n}\n \nvar gerencianet = new Gerencianet(options);\n \ngerencianet\n .updateBillet(params, body)\n .then(console.log)\n .catch(console.log)\n .done();", "language": "javascript", "name": "NodeJS" }, { "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 expire_at: \"2020-12-12\"\n}\n \ngerencianet = Gerencianet.new(options)\ngerencianet.update_billet(params: params, body: body)", "language": "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 \nparams = {\n\t'id': 1000\n}\n \nbody = {\n \t'expire_at': \"2020-12-12\"\n}\n \ngn.update_billet(params=params, body=body)", "language": "python" }, { "code": "dynamic endpoints = new Endpoints(\"client_id\", \"client_secret\", true);\n \nvar params = {\n id = 1000\n};\n \nvar body = {\n expire_at = '2020-12-12'\n}\n \nvar response = endpoints.UpdateBillet(params, body);", "language": "asp", "name": ".NET" }, { "code": "// Para detalhes, acesse o documento específico em nosso Github:\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CHARGE_UPDATE.md", "language": "java" }, { "code": "interface\nfunction UpdateBillet(Id: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction UpdateBillet(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 := '{\"expire_at\": \"2020-12-12\"}';\n Result := ExecuteGerenciaNetRequest( 'updateBillet', Params, '', Body );\nend;", "language": "json", "name": "Delphi" } ] } [/block] ### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados: <img src="http://image.prntscr.com/image/17f7af13df464ca099097c21b3ff0ce3.png" alt="Estrutura hierárquica"> ### b) Atributos que podem ser usados para atualizar vencimento de um boleto: [block:parameters] { "data": { "h-0": "Atributo", "h-1": "Descrição", "h-2": "Obrigatório", "h-3": "Tipo", "0-2": "Sim", "0-3": "String", "0-0": "id", "0-1": "Identificador da transação - <code>charge_id</code>\n\n<span class=\"tab1\"><em>Atributos de id</em></span>\n\n<div class=\"tab2\"><code>expire_at</code> // Nova data de vencimento do boleto, no formato YYYY-MM-DD." }, "cols": 4, "rows": 1 } [/block] <br /> ## 5. Atualizando vencimento de parcela específica de carnê Uma folha de carnê que ainda não foi paga pode ter sua data de vencimento alterada. Para isso, basta enviar o <code>carnet_id</code> (identificador do carnê), o número da parcela que deseja alterar e a nova data de vencimento no formato YYYY-MM-DD (por exemplo: 2018-09-25). Para alterar a data de vencimento de uma parcela específica de um carnê, você deve enviar uma requisição <code>PUT</code> para a rota <code>/carnet/:id/parcel/:parcel</code>, onde <code>:id</code> é o <code>carnet_id</code> do carnê desejado e <code>:parcel</code> é o número da parcela que deseja atualizar a data de vencimento (por exemplo: <code>3</code>, se for a terceira parcela que você deseja alterar o vencimento). O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis: [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 = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n// $carnet_id refere-se ao ID da transação gerada anteriormente\n$params = [\n 'id' => $carnet_id,\n 'parcel' => 1 // número da parcela do carnê que deseja alterar a data de vencimento\n];\n \n$body = [\n 'expire_at' => '2018-01-01' // nova data de vencimento da parcela, em formato YYYY-MM-DD\n];\n \ntry {\n $api = new Gerencianet($options);\n $carnet = $api->updateParcel($params, $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" }, { "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 parcel: 1\n}\n \nvar body = {\n expire_at: '2020-12-12'\n}\n \nvar gerencianet = new Gerencianet(options);\n \ngerencianet\n .updateParcel(params, body)\n .then(console.log)\n .catch(console.log)\n .done();", "language": "javascript", "name": "NodeJS" }, { "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 parcel: 1\n}\n \nbody = {\n expire_at: \"2020-12-12\"\n}\n \ngerencianet = Gerencianet.new(options)\ngerencianet.update_parcel(params: params, body: body)", "language": "ruby", "name": null }, { "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\t'parcel': 1\n}\n \nbody = {\n\t'expire_at': \"2020-12-12\"\n}\n \ngn.update_parcel(params=params, body=body)", "language": "python" }, { "code": "dynamic endpoints = new Endpoints(\"client_id\", \"client_secret\", true);\n \nvar params = new {\n id = 1000,\n parcel = 1\n};\n \nvar body = new {\n expire_at = \"2020-12-20\"\n};\n \nvar response = endpoints.UpdateParcel(params, body);", "language": "asp", "name": ".NET" }, { "code": "// Para detalhes, acesse o documento específico em nosso Github:\n// https://github.com/gerencianet/gn-api-sdk-java/blob/master/docs/CARNET_UPDATE.md", "language": "java" }, { "code": "interface\nfunction UpdateParcel(CarnetID, CarnetParcel: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction UpdateParcel(CarnetID, CarnetParcel: String): String;\nvar\n Body : String;\n UpdateParcelParams : String;\nbegin\n EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize(); \n\n UpdateParcelParams := CreateRequestParams( [ 'id='+CarnetID, 'parcel='+CarnetParcel ] ).Text;\n Body := '{\"expire_at\": \"2018-01-01\"}';\n Result := ExecuteGerenciaNetRequest( 'updateParcel',UpdateParcelParams, '', Body );\nend;", "language": "json", "name": "Delphi" } ] } [/block] ### a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados: <img src="http://image.prntscr.com/image/38b1f8695183410d8ab11610d2cd08fa.png" alt="Estrutura hierárquica"> ### b) Atributos que podem ser usados para atualizar vencimento de parcela específica de Carnê: [block:parameters] { "data": { "h-0": "Atributo", "h-1": "Descrição", "h-2": "Obrigatório", "h-3": "Tipo", "0-2": "Sim", "0-1": "Identificador da transação - <code>carnet_id</code>\n\n<span class=\"tab1\"><em>Atributos de id</em></span>\n\n<div class=\"tab2\"><code>expire_at</code> // Nova data de vencimento do boleto, no formato YYYY-MM-DD.", "0-0": "id", "0-3": "String" }, "cols": 4, "rows": 1 } [/block]