{"__v":28,"_id":"578525e8fd4ee30e0007a5f1","category":{"project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","_id":"5783f8b65cbce30e0074e2b9","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-07-11T19:51:18.983Z","from_sync":false,"order":4,"slug":"assinaturas","title":"Assinaturas"},"parentDoc":null,"project":"575aeffae12cf20e002f306c","user":"57601a13af3e090e00108059","version":{"__v":29,"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","categories":["575aeffae12cf20e002f3070","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","57602fe5b82256240055c657","57602ff6c811102000cef302","576030909b1a9a220067ca40","57604518b82256240055c722","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","577680bf3cee3a0e00a000bc","577ff3b1ff48990e000c6806","5783f78c5cbce30e0074e2b7","5783f86292edb92200e6101c","5783f86dbfbba719003f0d8b","5783f8755cbce30e0074e2b8","5783f8b65cbce30e0074e2b9","5783f8bf5cbce30e0074e2ba","5783f8d8ce802f0e0087d574","578529f887c9280e0090394b","57852aeb87c9280e0090394d","57866e72b2f4060e00fa39ca","57ab6d5c39c2fd1900191879","57f39451ab0ee12000bef915","582499a0d90fa027009b259e"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-07-12T17:16:24.416Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":5,"body":"Há ainda outros *endpoints* associados à \"Assinaturas\" que estão disponíveis na API e que podem ser explorados pelo integrador.\n\n## Índice\n<hr>\n\nVá direto ao ponto ­- utilize o índice abaixo e veja diretamente o que você precisa:\n\n1. [Retorna informações de um plano](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-1-retorna-informa-es-de-um-plano)\n\n2. [Cancela um plano de assinatura](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-2-cancela-um-plano-de-assinatura)\n\n3. [Retorna informações de uma assinatura vinculada a um plano](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-3-retorna-informa-es-de-uma-assinatura-vinculada-a-um-plano)\n\n4. [Cancelar assinaturas ativas em um plano](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-4-cancelar-assinaturas-ativas-em-um-plano)\n\n5. [Alterando notification_url e/ou custom_id de assinaturas](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-5-alterando-notification_url-e-ou-custom_id-de-assinaturas)\n\n6. [Relacionamento dos endpoints do Playground e SDK's (PHP, NodeJS, Ruby, Python, .NET e Java)](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-6-relacionamento-endpoints-do-playground-e-sdk-s-php-nodejs-ruby-python-net-e-java-)\n\n\n<br />\n## 1. Retorna informações de um plano\n<hr>\n\nBusca informações relacionadas à uma assinatura. Existem filtros avançados que podem ser utilizados para localizar, tais como:\n\n- <code>Name</code>: retorna resultados a partir da procura pelo nome do plano cadastrado previamente;\n- <code>Limit</code>: limite máximo de registros de resposta;\n- <code>Offset</code>: determina a partir de qual registro a busca será realizada.\n\nPara retornar informações de um plano de assinatura, você deve enviar uma requisição <code>GET</code> para a rota <code>/plans</code>.\n\nNo Playground (ambiente de desenvolvimento), o processo de retornar informações de um plano equivale ao endpoint <code>GET /plans</code>.\n\nA seguir um exemplo de utilização:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n\\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__.'/../config.json');\\n$options = json_decode($file, true);\\n\\n$params = ['limit' => 20, 'offset' => 0];\\n\\ntry {\\n    $api = new Gerencianet($options);\\n    $plans = $api->getPlans($params, []);\\n    print_r($plans);\\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');\\nvar credentials = require('./credentials');\\n\\nvar options = {\\n  client_id: credentials.client_id,\\n  client_secret: credentials.client_secret,\\n  sandbox: true\\n}\\n\\nvar params = {\\n  name: 'My Plan',\\n  limit: 20,\\n  offset: 0\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n  .getPlans(params)\\n  .then(console.log)\\n  .catch(console.log)\\n  .done();\",\n      \"language\": \"javascript\",\n      \"name\": \"NodeJS\"\n    },\n    {\n      \"code\": \"require \\\"gerencianet\\\"\\nrequire_relative \\\"./credentials\\\"\\n\\noptions = {\\n  client_id: CREDENTIALS::CLIENT_ID,\\n  client_secret: CREDENTIALS::CLIENT_SECRET,\\n  sandbox: true\\n}\\n\\nparams = {\\n  name: \\\"My Plan\\\",\\n  limit: 1,\\n  offset: 0\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.get_plans(params: params)\",\n      \"language\": \"ruby\",\n      \"name\": \"Ruby\"\n    },\n    {\n      \"code\": \"# encoding: utf-8\\n\\nfrom gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\ngn = Gerencianet(CREDENTIALS)\\n\\nparams = {\\n    'name': \\\"My Plan\\\",\\n    'limit': 1,\\n    'offset': 0\\n}\\n\\nresponse =  gn.get_plans(params=params)\\nprint(response)\",\n      \"language\": \"python\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n    class GetPlans\\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                // name = \\\"My Plan\\\",\\n                limit = 20,\\n                offset = 0\\n            };\\n\\n            try\\n            {\\n                var response = endpoints.GetPlans(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/subscriptions/json/ListPlan.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/ListPlan.java\\n\\n*/\",\n      \"language\": \"java\",\n      \"name\": \"Java\"\n    }\n  ]\n}\n[/block]\n<br />\n## 2. Cancela um plano de assinatura\n<hr>\n\nPermite cancelar um plano de assinatura. Para tal, você deve informar o <code>plan_id</code> do plano de assinatura que deseja cancelar.\n\nPara cancelar um plano de assinatura, você deve enviar uma requisição <code>DELETE</code> para a rota <code>/plan/:id</code>, onde <code>:id</code> é o <code>plan_id</code> do plano que deseja cancelar.\n\nNo Playground (ambiente de desenvolvimento), o processo de cancelar um plano de assinatura equivale ao endpoint <code>DELETE /plan/:id</code>.\n\nA seguir um exemplo de utilização:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n\\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__.'/../config.json');\\n$options = json_decode($file, true);\\n\\n// $plan_id refere-se ao \\\"plan_id\\\" do plano\\n$params = [\\n  'id' => $plan_id\\n];\\n\\ntry {\\n    $api = new Gerencianet($options);\\n    $plan = $api->deletePlan($params, []);\\n    print_r($plan);\\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');\\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.deletePlan(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: 1\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.delete_plan(params: params)\",\n      \"language\": \"ruby\",\n      \"name\": \"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.delete_plan(params=params)\\nprint(response)\",\n      \"language\": \"python\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n    class DeletePlan\\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.DeletePlan(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\": \"text\",\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/subscriptions/json/DeletePlan.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/DeletePlan.java\\n\\n*/\",\n      \"language\": \"text\",\n      \"name\": \"Java\"\n    }\n  ]\n}\n[/block]\n<br />\n## 3. Retorna informações de uma assinatura vinculada a um plano\n<hr>\n\nPossibilita buscar informações de uma assinatura que está vinculada a um plano. Para tal, você deve informar o <code>subscription_id</code> da assinatura que deseja buscar informações.\n\nPara retornar informações de uma assinatura vinculada a um plano, você deve enviar uma requisição <code>GET</code> para a rota <code>/subscription/:id</code>, onde <code>:id</code> é o <code>subscription_id</code> da assinatura desejada.\n\nNo Playground (ambiente de desenvolvimento), o processo de retornar informações de uma assinatura atrelada a um plano equivale ao endpoint <code>GET /subscription/:id</code>.\n\nA seguir um exemplo de utilização:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n\\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__.'/../config.json');\\n$options = json_decode($file, true);\\n\\n// $subscription_id refere-se ao \\\"subscription_id\\\" da assinatura\\n$params = [\\n  'id' => $subscription_id\\n];\\n\\ntry {\\n    $api = new Gerencianet($options);\\n    $subscription = $api->detailSubscription($params, []);\\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');\\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.detailSubscription(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: 1120\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.detail_subscription(params: params)\",\n      \"language\": \"ruby\",\n      \"name\": \"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_subscription(params=params)\\nprint(response)\",\n      \"language\": \"python\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n    class DetailSubscription\\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 = 1002\\n            };\\n\\n            try\\n            {\\n                var response = endpoints.DetailSubscription(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/subscriptions/json/DetailSubscription.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/DetailSubscription.java\\n\\n*/\",\n      \"language\": \"java\",\n      \"name\": \"Java\"\n    }\n  ]\n}\n[/block]\n<br />\n## 4. Cancelar assinaturas ativas em um plano\n<hr>\n\nPermite cancelar assinaturas ativas em um plano. Para tal, deve-se informar o <code>subscription_id</code> da assinatura que deseja cancelar.\n\nPara cancelar assinaturas ativas em um plano de assinaturas, você deve enviar uma requisição <code>PUT</code> para a rota <code>/subscription/:id/cancel</code>, onde <code>:id</code> é o <code>subscription_id</code> da assinatura desejada.\n\nNo Playground (ambiente de desenvolvimento), o processo de cancelar inscrições ativas em um plano de assinaturas equivale ao endpoint <code>PUT /subscription/:id/cancel</code>.\n\nA seguir um exemplo de utilização:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n\\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__.'/../config.json');\\n$options = json_decode($file, true);\\n\\n// $subscription_id refere-se ao \\\"subscription_id\\\" da assinatura\\n$params = [\\n  'id' => $subscription_id\\n];\\n\\ntry {\\n    $api = new Gerencianet($options);\\n    $subscription = $api->cancelSubscription($params, []);\\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');\\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.cancelSubscription(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: 1111\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.cancel_subscription(params: params)\",\n      \"language\": \"ruby\",\n      \"name\": \"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_subscription(params=params)\\nprint(response)\",\n      \"language\": \"python\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n    class CancelSubscription\\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.CancelSubscription(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/subscriptions/json/CancelSubscription.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/CancelSubscription.java\\n\\n*/\",\n      \"language\": \"java\",\n      \"name\": \"Java\"\n    }\n  ]\n}\n[/block]\n<br />\n## 5. Alterando notification_url e/ou custom_id de assinaturas\n<hr>\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.\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\nNo Playground (ambiente de desenvolvimento), o processo de atualizar metadados de assinaturas equivale ao endpoint <code>PUT /subscription/:id/metadata</code>.\n\nA seguir um exemplo de utilização:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n\\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n$file = file_get_contents(__DIR__.'/../config.json');\\n$options = json_decode($file, true);\\n\\n// $subscription_id refere-se ao \\\"subscription_id\\\" da assinatura\\n$params = [\\n  'id' => $subscription_id\\n];\\n\\n$body = [\\n\\t'notification_url' => 'http://localhost.com',\\n\\t'custom_id' => 'Custom Subscription 0001'\\n];\\n\\ntry {\\n    $api = new Gerencianet($options);\\n    $subscription = $api->updateSubscriptionMetadata($params, $body);\\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');\\nvar credentials = require('./credentials');\\n\\nvar options = {\\n  client_id: credentials.client_id,\\n  client_secret: credentials.client_secret,\\n  sandbox: true\\n}\\n\\nvar params = {\\n  id: 1009\\n}\\n\\nvar body = {\\n  notification_url: 'http://yourdomain.com',\\n  custom_id: 'my_new_id'\\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\\\"\\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: 1009\\n}\\n\\nbody = {\\n  notification_url: \\\"http://yourdomain.com\\\",\\n  custom_id: \\\"my_new_id\\\"\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.update_subscription_metadata(params: params, body: body)\",\n      \"language\": \"ruby\",\n      \"name\": \"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\\nbody = {\\n    'notification_url': 'http://yourdomain.com',\\n    'custom_id': 'my_new_id'\\n}\\n\\nresponse =  gn.update_subscription_metadata(params=params, body=body)\\nprint(response)\",\n      \"language\": \"python\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n    class UpdateSubscriptionMetadata\\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 = 1002,\\n            };\\n\\n            var body = new\\n            {\\n                notification_url = \\\"http://yourdomain.com\\\",\\n                custom_id = \\\"my_new_id\\\"\\n            };\\n\\n            try\\n            {\\n                var response = endpoints.UpdateSubscriptionMetadata(param, body);\\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/subscriptions/json/UpdateSubscription.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/UpdateSubscription.java\\n\\n*/\",\n      \"language\": \"java\",\n      \"name\": \"Java\"\n    }\n  ]\n}\n[/block]\n### a) Estrutura hierárquica dos atributos do Schema:\n[block:html]\n{\n  \"html\": \"<p>Por meio da imagem a seguir é possível observar a hierarquia dos atributos presentes na estrutura dos dados do <abbr title=\\\"JSON que descreve a estrutura dos dados, incluindo todas as informações que podem ser enviadas e as especificidades de cada uma.\\\">Schema</abbr> do <em>endpoint</em> <code>PUT /subscription/:id/metadata</code>, apresentado na tabela a seguir:</p>\\n<br />\\n<img src=\\\"http://image.prntscr.com/image/1c1cd41e32f140d7b26b92839b1ef12b.png\\\" alt=\\\"PUT /subscription/:id/metadata - Estrutura dos atributos do Schema que podem ser utilizados\\\"><br />\\n<p>Para verificar mais detalhes, <a href=\\\"https://dev.gerencianet.com.br/docs/playground-assinaturas#subscription_id_metadata\\\" target=\\\"_blank\\\">acesse aqui.</p>\"\n}\n[/block]\n### b) Atributos que podem ser usados:\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\": \"notification_url\",\n    \"1-0\": \"custom_id\",\n    \"0-2\": \"Não\",\n    \"1-2\": \"Não\",\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ínimo de 1 caractere e máximo de 255 (String).</span></strong>\",\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ínimo de 1 caractere e máximo de 255 (String).</span></strong>\",\n    \"0-3\": \"String\",\n    \"1-3\": \"String\"\n  },\n  \"cols\": 4,\n  \"rows\": 2\n}\n[/block]\n<br />\n## 6. Relacionamento endpoints do Playground e SDK's (PHP, NodeJS, Ruby, Python, .NET e Java)\n<hr>\n\nA seguir, são disponibilizados a relação entre os endpoints do Playground com o nome das funções consumidas por nossas SDKs nas linguagens PHP, NodeJS, Ruby, Python, .NET e Java.\n\nOs arquivos disponibilizados a seguir estão em formato .pdf, e tem como objetivo permitir que você saiba o nome das funções utilizadas por nossa SDK de acordo com os endpoints que você utilizou e conheceu no ambiente de teste.\n\nAssim, após você ter explorado bem o nosso Playground e ter conhecido o mecanismo e o fluxo de pagamento, ficará mais fácil para você prosseguir com suas atividades de integração.\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"<a href=\\\"https://gerencianet.com.br/material/api/relacionamentos-php.pdf\\\" target=\\\"_blank\\\"><p align=\\\"center\\\"><img src=\\\"https://i.imgsafe.org/296dd35842.jpg\\\" alt=\\\"SDK PHP API Gerencianet\\\"></p></a>\",\n    \"0-1\": \"<a href=\\\"https://gerencianet.com.br/material/api/relacionamentos-nodejs.pdf\\\" target=\\\"_blank\\\"><p align=\\\"center\\\"><img src=\\\"https://i.imgsafe.org/296dcd2fcb.jpg\\\" alt=\\\"SDK NodeJS API Gerencianet\\\"></p></a>\",\n    \"0-2\": \"<a href=\\\"https://gerencianet.com.br/material/api/relacionamentos-ruby.pdf\\\" target=\\\"_blank\\\"><p align=\\\"center\\\"><img src=\\\"https://i.imgsafe.org/296ddecfb3.jpg\\\" alt=\\\"SDK Ruby on Rails API Gerencianet\\\"></p></a>\",\n    \"h-0\": \"PHP\",\n    \"h-1\": \"NodeJS\",\n    \"h-2\": \"Ruby on Rails\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"<a href=\\\"https://gerencianet.com.br/material/api/relacionamentos-python.pdf\\\" target=\\\"_blank\\\"><p align=\\\"center\\\"><img src=\\\"https://i.imgsafe.org/296de85366.jpg\\\" alt=\\\"SDK Python API Gerencianet\\\"></p></a>\",\n    \"0-1\": \"<a href=\\\"https://gerencianet.com.br/material/api/relacionamentos-dotnet.pdf\\\" target=\\\"_blank\\\"><p align=\\\"center\\\"><img src=\\\"https://i.imgsafe.org/296db4b0a7.jpg\\\" alt=\\\"SDK .NET API Gerencianet\\\"></p></a>\",\n    \"0-2\": \"<a href=\\\"https://gerencianet.com.br/material/api/relacionamentos-java.pdf\\\" target=\\\"_blank\\\"><p align=\\\"center\\\"><img src=\\\"https://i.imgsafe.org/296dbcf37c.jpg\\\" alt=\\\"SDK Java API Gerencianet\\\"></p></a>\",\n    \"h-0\": \"Python\",\n    \"h-1\": \".NET\",\n    \"h-2\": \"Java\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]","excerpt":"Você está em: *\"Assinaturas > Outros endpoints e métodos\"*","slug":"assinaturas-outros-endpoints","type":"basic","title":"Outros endpoints e métodos"}

Outros endpoints e métodos

Você está em: *"Assinaturas > Outros endpoints e métodos"*

Há ainda outros *endpoints* associados à "Assinaturas" que estão disponíveis na API e que podem ser explorados pelo integrador. ## Índice <hr> Vá direto ao ponto ­- utilize o índice abaixo e veja diretamente o que você precisa: 1. [Retorna informações de um plano](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-1-retorna-informa-es-de-um-plano) 2. [Cancela um plano de assinatura](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-2-cancela-um-plano-de-assinatura) 3. [Retorna informações de uma assinatura vinculada a um plano](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-3-retorna-informa-es-de-uma-assinatura-vinculada-a-um-plano) 4. [Cancelar assinaturas ativas em um plano](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-4-cancelar-assinaturas-ativas-em-um-plano) 5. [Alterando notification_url e/ou custom_id de assinaturas](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-5-alterando-notification_url-e-ou-custom_id-de-assinaturas) 6. [Relacionamento dos endpoints do Playground e SDK's (PHP, NodeJS, Ruby, Python, .NET e Java)](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-6-relacionamento-endpoints-do-playground-e-sdk-s-php-nodejs-ruby-python-net-e-java-) <br /> ## 1. Retorna informações de um plano <hr> Busca informações relacionadas à uma assinatura. Existem filtros avançados que podem ser utilizados para localizar, tais como: - <code>Name</code>: retorna resultados a partir da procura pelo nome do plano cadastrado previamente; - <code>Limit</code>: limite máximo de registros de resposta; - <code>Offset</code>: determina a partir de qual registro a busca será realizada. Para retornar informações de um plano de assinatura, você deve enviar uma requisição <code>GET</code> para a rota <code>/plans</code>. No Playground (ambiente de desenvolvimento), o processo de retornar informações de um plano equivale ao endpoint <code>GET /plans</code>. A seguir um exemplo de utilização: [block:code] { "codes": [ { "code": "<?php\n\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\n\nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n\n$file = file_get_contents(__DIR__.'/../config.json');\n$options = json_decode($file, true);\n\n$params = ['limit' => 20, 'offset' => 0];\n\ntry {\n $api = new Gerencianet($options);\n $plans = $api->getPlans($params, []);\n print_r($plans);\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');\nvar credentials = require('./credentials');\n\nvar options = {\n client_id: credentials.client_id,\n client_secret: credentials.client_secret,\n sandbox: true\n}\n\nvar params = {\n name: 'My Plan',\n limit: 20,\n offset: 0\n}\n\nvar gerencianet = new Gerencianet(options);\n\ngerencianet\n .getPlans(params)\n .then(console.log)\n .catch(console.log)\n .done();", "language": "javascript", "name": "NodeJS" }, { "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 name: \"My Plan\",\n limit: 1,\n offset: 0\n}\n\ngerencianet = Gerencianet.new(options)\nputs gerencianet.get_plans(params: params)", "language": "ruby", "name": "Ruby" }, { "code": "# encoding: utf-8\n\nfrom gerencianet import Gerencianet\nfrom credentials import CREDENTIALS\n\ngn = Gerencianet(CREDENTIALS)\n\nparams = {\n 'name': \"My Plan\",\n 'limit': 1,\n 'offset': 0\n}\n\nresponse = gn.get_plans(params=params)\nprint(response)", "language": "python", "name": "Python" }, { "code": "using System;\n\nnamespace Gerencianet.SDK.Examples\n{\n class GetPlans\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 // name = \"My Plan\",\n limit = 20,\n offset = 0\n };\n\n try\n {\n var response = endpoints.GetPlans(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}", "language": "asp", "name": ".NET" }, { "code": "/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \"body\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \"body\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \"body\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\n\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\ne Map<String, Object>\n\n\nJSONObject\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/json/ListPlan.java\n\n\nMap<String, Object>\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/ListPlan.java\n\n*/", "language": "java", "name": "Java" } ] } [/block] <br /> ## 2. Cancela um plano de assinatura <hr> Permite cancelar um plano de assinatura. Para tal, você deve informar o <code>plan_id</code> do plano de assinatura que deseja cancelar. Para cancelar um plano de assinatura, você deve enviar uma requisição <code>DELETE</code> para a rota <code>/plan/:id</code>, onde <code>:id</code> é o <code>plan_id</code> do plano que deseja cancelar. No Playground (ambiente de desenvolvimento), o processo de cancelar um plano de assinatura equivale ao endpoint <code>DELETE /plan/:id</code>. A seguir um exemplo de utilização: [block:code] { "codes": [ { "code": "<?php\n\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\n\nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n\n$file = file_get_contents(__DIR__.'/../config.json');\n$options = json_decode($file, true);\n\n// $plan_id refere-se ao \"plan_id\" do plano\n$params = [\n 'id' => $plan_id\n];\n\ntry {\n $api = new Gerencianet($options);\n $plan = $api->deletePlan($params, []);\n print_r($plan);\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');\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.deletePlan(params)\n\t.then(console.log)\n\t.catch(console.log)\n\t.done();", "language": "javascript", "name": "NodeJS" }, { "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: 1\n}\n\ngerencianet = Gerencianet.new(options)\nputs gerencianet.delete_plan(params: params)", "language": "ruby", "name": "Ruby" }, { "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.delete_plan(params=params)\nprint(response)", "language": "python", "name": "Python" }, { "code": "using System;\n\nnamespace Gerencianet.SDK.Examples\n{\n class DeletePlan\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.DeletePlan(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}", "language": "text", "name": ".NET" }, { "code": "/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \"body\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \"body\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \"body\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\n\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\ne Map<String, Object>\n\n\nJSONObject\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/json/DeletePlan.java\n\n\nMap<String, Object>\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/DeletePlan.java\n\n*/", "language": "text", "name": "Java" } ] } [/block] <br /> ## 3. Retorna informações de uma assinatura vinculada a um plano <hr> Possibilita buscar informações de uma assinatura que está vinculada a um plano. Para tal, você deve informar o <code>subscription_id</code> da assinatura que deseja buscar informações. Para retornar informações de uma assinatura vinculada a um plano, você deve enviar uma requisição <code>GET</code> para a rota <code>/subscription/:id</code>, onde <code>:id</code> é o <code>subscription_id</code> da assinatura desejada. No Playground (ambiente de desenvolvimento), o processo de retornar informações de uma assinatura atrelada a um plano equivale ao endpoint <code>GET /subscription/:id</code>. A seguir um exemplo de utilização: [block:code] { "codes": [ { "code": "<?php\n\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\n\nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n\n$file = file_get_contents(__DIR__.'/../config.json');\n$options = json_decode($file, true);\n\n// $subscription_id refere-se ao \"subscription_id\" da assinatura\n$params = [\n 'id' => $subscription_id\n];\n\ntry {\n $api = new Gerencianet($options);\n $subscription = $api->detailSubscription($params, []);\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');\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.detailSubscription(params)\n\t.then(console.log)\n\t.catch(console.log)\n\t.done();", "language": "javascript", "name": "NodeJS" }, { "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: 1120\n}\n\ngerencianet = Gerencianet.new(options)\nputs gerencianet.detail_subscription(params: params)", "language": "ruby", "name": "Ruby" }, { "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_subscription(params=params)\nprint(response)", "language": "python", "name": "Python" }, { "code": "using System;\n\nnamespace Gerencianet.SDK.Examples\n{\n class DetailSubscription\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 = 1002\n };\n\n try\n {\n var response = endpoints.DetailSubscription(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}", "language": "asp", "name": ".NET" }, { "code": "/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \"body\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \"body\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \"body\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\n\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\ne Map<String, Object>\n\n\nJSONObject\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/json/DetailSubscription.java\n\n\nMap<String, Object>\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/DetailSubscription.java\n\n*/", "language": "java", "name": "Java" } ] } [/block] <br /> ## 4. Cancelar assinaturas ativas em um plano <hr> Permite cancelar assinaturas ativas em um plano. Para tal, deve-se informar o <code>subscription_id</code> da assinatura que deseja cancelar. Para cancelar assinaturas ativas em um plano de assinaturas, você deve enviar uma requisição <code>PUT</code> para a rota <code>/subscription/:id/cancel</code>, onde <code>:id</code> é o <code>subscription_id</code> da assinatura desejada. No Playground (ambiente de desenvolvimento), o processo de cancelar inscrições ativas em um plano de assinaturas equivale ao endpoint <code>PUT /subscription/:id/cancel</code>. A seguir um exemplo de utilização: [block:code] { "codes": [ { "code": "<?php\n\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\n\nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n\n$file = file_get_contents(__DIR__.'/../config.json');\n$options = json_decode($file, true);\n\n// $subscription_id refere-se ao \"subscription_id\" da assinatura\n$params = [\n 'id' => $subscription_id\n];\n\ntry {\n $api = new Gerencianet($options);\n $subscription = $api->cancelSubscription($params, []);\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');\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.cancelSubscription(params)\n\t.then(console.log)\n\t.catch(console.log)\n\t.done();", "language": "javascript", "name": "NodeJS" }, { "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: 1111\n}\n\ngerencianet = Gerencianet.new(options)\nputs gerencianet.cancel_subscription(params: params)", "language": "ruby", "name": "Ruby" }, { "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_subscription(params=params)\nprint(response)", "language": "python", "name": "Python" }, { "code": "using System;\n\nnamespace Gerencianet.SDK.Examples\n{\n class CancelSubscription\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.CancelSubscription(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}", "language": "asp", "name": ".NET" }, { "code": "/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \"body\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \"body\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \"body\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\n\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\ne Map<String, Object>\n\n\nJSONObject\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/json/CancelSubscription.java\n\n\nMap<String, Object>\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/CancelSubscription.java\n\n*/", "language": "java", "name": "Java" } ] } [/block] <br /> ## 5. Alterando notification_url e/ou custom_id de assinaturas <hr> É 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. 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. No Playground (ambiente de desenvolvimento), o processo de atualizar metadados de assinaturas equivale ao endpoint <code>PUT /subscription/:id/metadata</code>. A seguir um exemplo de utilização: [block:code] { "codes": [ { "code": "<?php\n\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\n\nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n\n$file = file_get_contents(__DIR__.'/../config.json');\n$options = json_decode($file, true);\n\n// $subscription_id refere-se ao \"subscription_id\" da assinatura\n$params = [\n 'id' => $subscription_id\n];\n\n$body = [\n\t'notification_url' => 'http://localhost.com',\n\t'custom_id' => 'Custom Subscription 0001'\n];\n\ntry {\n $api = new Gerencianet($options);\n $subscription = $api->updateSubscriptionMetadata($params, $body);\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');\nvar credentials = require('./credentials');\n\nvar options = {\n client_id: credentials.client_id,\n client_secret: credentials.client_secret,\n sandbox: true\n}\n\nvar params = {\n id: 1009\n}\n\nvar body = {\n notification_url: 'http://yourdomain.com',\n custom_id: 'my_new_id'\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\"\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: 1009\n}\n\nbody = {\n notification_url: \"http://yourdomain.com\",\n custom_id: \"my_new_id\"\n}\n\ngerencianet = Gerencianet.new(options)\nputs gerencianet.update_subscription_metadata(params: params, body: body)", "language": "ruby", "name": "Ruby" }, { "code": "# encoding: utf-8\n\nfrom gerencianet import Gerencianet\nfrom credentials import CREDENTIALS\n\ngn = Gerencianet(CREDENTIALS)\n\nparams = {\n 'id': 1\n}\n\nbody = {\n 'notification_url': 'http://yourdomain.com',\n 'custom_id': 'my_new_id'\n}\n\nresponse = gn.update_subscription_metadata(params=params, body=body)\nprint(response)", "language": "python", "name": "Python" }, { "code": "using System;\n\nnamespace Gerencianet.SDK.Examples\n{\n class UpdateSubscriptionMetadata\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 = 1002,\n };\n\n var body = new\n {\n notification_url = \"http://yourdomain.com\",\n custom_id = \"my_new_id\"\n };\n\n try\n {\n var response = endpoints.UpdateSubscriptionMetadata(param, body);\n Console.WriteLine(response);\n }\n catch (GnException e)\n {\n Console.WriteLine(e.ErrorType);\n Console.WriteLine(e.Message);\n }\n }\n }\n}", "language": "asp", "name": ".NET" }, { "code": "/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \"body\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \"body\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \"body\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\n\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\ne Map<String, Object>\n\n\nJSONObject\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/json/UpdateSubscription.java\n\n\nMap<String, Object>\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/subscriptions/map/UpdateSubscription.java\n\n*/", "language": "java", "name": "Java" } ] } [/block] ### a) Estrutura hierárquica dos atributos do Schema: [block:html] { "html": "<p>Por meio da imagem a seguir é possível observar a hierarquia dos atributos presentes na estrutura dos dados do <abbr title=\"JSON que descreve a estrutura dos dados, incluindo todas as informações que podem ser enviadas e as especificidades de cada uma.\">Schema</abbr> do <em>endpoint</em> <code>PUT /subscription/:id/metadata</code>, apresentado na tabela a seguir:</p>\n<br />\n<img src=\"http://image.prntscr.com/image/1c1cd41e32f140d7b26b92839b1ef12b.png\" alt=\"PUT /subscription/:id/metadata - Estrutura dos atributos do Schema que podem ser utilizados\"><br />\n<p>Para verificar mais detalhes, <a href=\"https://dev.gerencianet.com.br/docs/playground-assinaturas#subscription_id_metadata\" target=\"_blank\">acesse aqui.</p>" } [/block] ### b) Atributos que podem ser usados: [block:parameters] { "data": { "h-0": "Atributo", "h-1": "Descrição", "h-2": "Obrigatório", "h-3": "Tipo", "0-0": "notification_url", "1-0": "custom_id", "0-2": "Não", "1-2": "Não", "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ínimo de 1 caractere e máximo de 255 (String).</span></strong>", "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ínimo de 1 caractere e máximo de 255 (String).</span></strong>", "0-3": "String", "1-3": "String" }, "cols": 4, "rows": 2 } [/block] <br /> ## 6. Relacionamento endpoints do Playground e SDK's (PHP, NodeJS, Ruby, Python, .NET e Java) <hr> A seguir, são disponibilizados a relação entre os endpoints do Playground com o nome das funções consumidas por nossas SDKs nas linguagens PHP, NodeJS, Ruby, Python, .NET e Java. Os arquivos disponibilizados a seguir estão em formato .pdf, e tem como objetivo permitir que você saiba o nome das funções utilizadas por nossa SDK de acordo com os endpoints que você utilizou e conheceu no ambiente de teste. Assim, após você ter explorado bem o nosso Playground e ter conhecido o mecanismo e o fluxo de pagamento, ficará mais fácil para você prosseguir com suas atividades de integração. [block:parameters] { "data": { "0-0": "<a href=\"https://gerencianet.com.br/material/api/relacionamentos-php.pdf\" target=\"_blank\"><p align=\"center\"><img src=\"https://i.imgsafe.org/296dd35842.jpg\" alt=\"SDK PHP API Gerencianet\"></p></a>", "0-1": "<a href=\"https://gerencianet.com.br/material/api/relacionamentos-nodejs.pdf\" target=\"_blank\"><p align=\"center\"><img src=\"https://i.imgsafe.org/296dcd2fcb.jpg\" alt=\"SDK NodeJS API Gerencianet\"></p></a>", "0-2": "<a href=\"https://gerencianet.com.br/material/api/relacionamentos-ruby.pdf\" target=\"_blank\"><p align=\"center\"><img src=\"https://i.imgsafe.org/296ddecfb3.jpg\" alt=\"SDK Ruby on Rails API Gerencianet\"></p></a>", "h-0": "PHP", "h-1": "NodeJS", "h-2": "Ruby on Rails" }, "cols": 3, "rows": 1 } [/block] [block:parameters] { "data": { "0-0": "<a href=\"https://gerencianet.com.br/material/api/relacionamentos-python.pdf\" target=\"_blank\"><p align=\"center\"><img src=\"https://i.imgsafe.org/296de85366.jpg\" alt=\"SDK Python API Gerencianet\"></p></a>", "0-1": "<a href=\"https://gerencianet.com.br/material/api/relacionamentos-dotnet.pdf\" target=\"_blank\"><p align=\"center\"><img src=\"https://i.imgsafe.org/296db4b0a7.jpg\" alt=\"SDK .NET API Gerencianet\"></p></a>", "0-2": "<a href=\"https://gerencianet.com.br/material/api/relacionamentos-java.pdf\" target=\"_blank\"><p align=\"center\"><img src=\"https://i.imgsafe.org/296dbcf37c.jpg\" alt=\"SDK Java API Gerencianet\"></p></a>", "h-0": "Python", "h-1": ".NET", "h-2": "Java" }, "cols": 3, "rows": 1 } [/block]