{"_id":"578525e8fd4ee30e0007a5f1","__v":28,"category":{"_id":"5783f8b65cbce30e0074e2b9","__v":0,"project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-07-11T19:51:18.983Z","from_sync":false,"order":5,"slug":"assinaturas","title":"Assinaturas (Recorrência)"},"project":"575aeffae12cf20e002f306c","user":"57601a13af3e090e00108059","parentDoc":null,"version":{"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","__v":31,"createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","categories":["575aeffae12cf20e002f3070","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","57602fe5b82256240055c657","57602ff6c811102000cef302","576030909b1a9a220067ca40","57604518b82256240055c722","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","577680bf3cee3a0e00a000bc","577ff3b1ff48990e000c6806","5783f78c5cbce30e0074e2b7","5783f86292edb92200e6101c","5783f86dbfbba719003f0d8b","5783f8755cbce30e0074e2b8","5783f8b65cbce30e0074e2b9","5783f8bf5cbce30e0074e2ba","5783f8d8ce802f0e0087d574","578529f887c9280e0090394b","57852aeb87c9280e0090394d","57866e72b2f4060e00fa39ca","57ab6d5c39c2fd1900191879","57f39451ab0ee12000bef915","582499a0d90fa027009b259e","58c29df1258e5a1900b60478","5a7c4127490e52002a7f643c"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"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":2,"body":"Há ainda outros *endpoints* associados à \"Assinaturas\" que estão disponíveis na API e que podem ser explorados pelo integrador.\n\nVá direto ao ponto - utilize o índice abaixo e veja diretamente o que você precisa:\n\n1. [Listar os planos de assinatura existentes](https://dev.gerencianet.com.br/docs/assinaturas-outros-endpoints#section-1-listar-os-planos-de-assinatura-existentes)\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. [Listar parcelas, de acordo com a bandeira do cartão de crédito](https://dev.gerencianet.com.br/docs/listar-parcelas-cartao)\n\n7. [Relação entre os endpoints (Playground) com o nome das funções utilizadas pelas SDKs](https://dev.gerencianet.com.br/docs/endpoints#section-rela-o-entre-os-endpoints-playground-com-o-nome-das-fun-es-utilizadas-pelas-sdks) \n\n\n<br />\n# 1. Listar os planos de assinatura existentes\n\nPermite listar os planos de assinatura criados. 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 demonstrando os planos de assinaturas já criados, você deve enviar uma requisição <code>GET</code> para a rota <code>/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 a SDK\\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 \"code\": \"interface\\nfunction GetPlans: String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction GetPlans: String;\\nvar\\n Params: String;\\nbegin\\n\\tEnableService( 'GerenciaNet.dll' ); \\n \\tConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n \\tGerenciaNetAuthorize();\\n\\n Params := CreateRequestParams( [ 'name=my plan', 'limit=20', 'offset=0' ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'getPlans','', Params, '' );\\nend;\",\n \"language\": \"json\",\n \"name\": \"Delphi\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tres, err := gn.GetPlans(20, 0) // limit e offset\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\"\n }\n ]\n}\n[/block]\n<br />\n# 2. Cancela um plano de assinatura\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\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 a SDK\\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 \"code\": \"interface\\nfunction DeletePlan(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction DeletePlan(Id: String): String;\\nvar\\n Params: String;\\nbegin\\n\\tEnableService( 'GerenciaNet.dll' ); \\n \\tConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n \\tGerenciaNetAuthorize();\\n\\n Params := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'deletePlan',Params,'','' );\\nend;\",\n \"language\": \"json\",\n \"name\": \"Delphi\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tres, err := gn.DeletePlan(1) // no lugar do 1 coloque o plan_id correto\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\"\n }\n ]\n}\n[/block]\n<br />\n# 3. Retorna informações de uma assinatura vinculada a um plano\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\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 a SDK\\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 \"code\": \"interface\\nfunction DetailSubscription(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction DetailSubscription(Id: String): String;\\nvar\\n Params: String;\\nbegin\\n\\tEnableService( 'GerenciaNet.dll' ); \\n \\tConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n \\tGerenciaNetAuthorize();\\n\\n Params := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'detailSubscription',Params,'', '' );\\nend;\",\n \"language\": \"json\",\n \"name\": \"Delphi\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tres, err := gn.DetailSubscription(1) // no lugar do 1 coloque o subscription_id correto\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\"\n }\n ]\n}\n[/block]\n<br />\n# 4. Cancelar assinaturas ativas em um plano\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\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 a SDK\\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 \"code\": \"interface\\nfunction CancelSubscription(Id: String): String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction CancelSubscription(Id: String): String;\\nvar\\n Params: String;\\nbegin\\n\\tEnableService( 'GerenciaNet.dll' ); \\n \\tConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n \\tGerenciaNetAuthorize();\\n\\n Params := CreateRequestParams( [ 'id='+Id ] ).Text;\\n Result := ExecuteGerenciaNetRequest( 'cancelSubscription',Params,'', '' );\\nend;\",\n \"language\": \"json\",\n \"name\": \"Delphi\"\n },\n {\n \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tres, err := gn.CancelSubscription(1) // no lugar do 1 coloque o subscription_id correto\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\"\n }\n ]\n}\n[/block]\n<br />\n# 5. Alterando notification_url e/ou custom_id de assinaturas\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\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 a SDK\\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 \"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 \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n\\t\\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\tbody := map[string]interface{} {\\n\\t\\t\\\"custom_id\\\": \\\"Product 0001\\\",\\n\\t\\t\\\"notification_url\\\": \\\"http://domain.com/notification\\\",\\n\\t}\\n\\n\\tres, err := gn.UpdateSubscriptionMetadata(1, body) // no lugar do 1 coloque o subscription_id correto\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\"\n }\n ]\n}\n[/block]\n<br>\n\n## a) Estrutura hierárquica dos atributos do Schema:\n\n<pre>\"id\": \"/SubscriptionMetadataUpdate\"\n \"notification_url\"\n \"custom_id\"</pre>\n\nPara verificar mais detalhes, <a href=\"https://dev.gerencianet.com.br/docs/playground-assinaturas#subscription_id_metadata\" target=\"_blank\">acesse aqui</a>.\n\n<br>\n\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\": \"<code>notification_url</code>\",\n \"1-0\": \"<code>custom_id</code>\",\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]","excerpt":"Você está em: *\"Assinaturas (Recorrência) > 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 (Recorrência) > Outros endpoints e métodos"*