-
Notifications
You must be signed in to change notification settings - Fork 0
/
4c4c76b3.23006d1f.js
1 lines (1 loc) · 87.2 KB
/
4c4c76b3.23006d1f.js
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{145:function(e,n,a){"use strict";a.r(n),a.d(n,"frontMatter",(function(){return b})),a.d(n,"metadata",(function(){return l})),a.d(n,"Highlight",(function(){return s})),a.d(n,"rightToc",(function(){return d})),a.d(n,"default",(function(){return m}));var t=a(2),r=a(6),o=(a(0),a(229)),c=a(236),i=a(237),b={id:"CriandoAssinatura",title:"Criando assinaturas",hide_title:!0,sidebar_label:"Criando assinaturas"},l={id:"Assinaturas/CriandoAssinatura",isDocsHomePage:!1,title:"Criando assinaturas",description:"Criando assinaturas",source:"@site/docs\\Assinaturas\\CriandoAssinatura.md",permalink:"/docs/Assinaturas/CriandoAssinatura",sidebar_label:"Criando assinaturas",sidebar:"someSidebar",previous:{title:"Como funciona",permalink:"/docs/Assinaturas/ComoFunciona"},next:{title:"Outros endpoints",permalink:"/docs/Assinaturas/EndpointsAssinatura"}},s=function(e){var n=e.children;e.color;return Object(o.b)("span",{style:{borderRadius:"2px",color:"#009615",padding:"0.2rem"}},n)},d=[{value:"1. Crie o plano de assinatura",id:"1-crie-o-plano-de-assinatura",children:[{value:"a) Estrutura hier\xe1rquica dos atributos do Schema que podem ser utilizados:",id:"a-estrutura-hier\xe1rquica-dos-atributos-do-schema-que-podem-ser-utilizados",children:[]},{value:"b) Atributos que podem ser utilizados para criar uma transa\xe7\xe3o:",id:"b-atributos-que-podem-ser-utilizados-para-criar-uma-transa\xe7\xe3o",children:[]}]},{value:"2. Crie inscri\xe7\xf5es (assinaturas) para vincular ao plano",id:"2-crie-inscri\xe7\xf5es-assinaturas-para-vincular-ao-plano",children:[{value:"a) Estrutura hier\xe1rquica dos atributos do Schema que podem ser utilizados:",id:"a-estrutura-hier\xe1rquica-dos-atributos-do-schema-que-podem-ser-utilizados-1",children:[]},{value:"b) Atributos que podem ser utilizados para associar uma assinatura a um plano:",id:"b-atributos-que-podem-ser-utilizados-para-associar-uma-assinatura-a-um-plano",children:[]}]},{value:"3. Defina a forma de pagamento da assinatura e os dados do cliente",id:"3-defina-a-forma-de-pagamento-da-assinatura-e-os-dados-do-cliente",children:[{value:"a) Estrutura hier\xe1rquica dos atributos do Schema que podem ser utilizados:",id:"a-estrutura-hier\xe1rquica-dos-atributos-do-schema-que-podem-ser-utilizados-2",children:[]},{value:"b) Atributos que podem ser usados para definir a forma de pagamento da assinatura:",id:"b-atributos-que-podem-ser-usados-para-definir-a-forma-de-pagamento-da-assinatura",children:[]}]},{value:"4. Outros endpoints e m\xe9todos",id:"4-outros-endpoints-e-m\xe9todos",children:[]},{value:"5. V\xeddeo: Criando Assinaturas (cobran\xe7a recorrente)",id:"5-v\xeddeo-criando-assinaturas-cobran\xe7a-recorrente",children:[{value:"5.1. Criando assinaturas (cobran\xe7a recorrente) pela API de integra\xe7\xe3o Gerencianet",id:"51-criando-assinaturas-cobran\xe7a-recorrente-pela-api-de-integra\xe7\xe3o-gerencianet",children:[]}]},{value:"6. Pr\xf3ximos Passos",id:"6-pr\xf3ximos-passos",children:[]}],u={Highlight:s,rightToc:d};function m(e){var n=e.components,a=Object(r.a)(e,["components"]);return Object(o.b)("wrapper",Object(t.a)({},u,a,{components:n,mdxType:"MDXLayout"}),Object(o.b)("h1",{className:"titulo"},"Criando assinaturas"),Object(o.b)("div",{className:"subtitulo"},Object(o.b)("p",null,"Saiba como gerar um conjunto de cobran\xe7as recorrentes para seus clientes. Para criar uma assinatura, \xe9 bem simples e requer apenas tr\xeas passos:"),Object(o.b)("ol",null,Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"#1-crie-o-plano-de-assinatura"}),"Crie o plano de assinatura"),", definindo a periodicidade e quantas cobran\xe7as devem ser geradas;")),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"#2-crie-inscri%C3%A7%C3%B5es-assinaturas-para-vincular-ao-plano"}),"Crie inscri\xe7\xf5es (assinaturas) para vincular ao plano"),";")),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"#3-defina-a-forma-de-pagamento-da-assinatura-e-os-dados-do-cliente"}),"Defina a forma de pagamento da assinatura e os dados do cliente"),"."))),Object(o.b)("p",null,"Depois de criar o(s) plano(s) de assinatura desejado(s), voc\xea s\xf3 precisar\xe1 executar o segundo e terceiro passo para cada inscri\xe7\xe3o subsequente."),Object(o.b)("p",null,"O restante desta p\xe1gina apresenta as tr\xeas etapas detalhadas, mas voc\xea precisa instalar uma de nossas bibliotecas em seu servidor para executar os c\xf3digos de exemplo. ",Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Instalacao/introducao"}),"Certifique-se de que a SDK da Gerencianet foi instalada"),"."),Object(o.b)("hr",null),Object(o.b)("br",null),Object(o.b)("h2",{id:"1-crie-o-plano-de-assinatura"},"1. Crie o plano de assinatura"),Object(o.b)("p",null,"Inicialmente, ser\xe1 criado o ",Object(o.b)("strong",{parentName:"p"},"plano de assinatura"),", em que o integrador poder\xe1 definir tr\xeas informa\xe7\xf5es:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},"Nome do plano;"),Object(o.b)("li",{parentName:"ul"},"Periodicidade da cobran\xe7a (por exemplo, ",Object(o.b)("code",null,"1")," para mensal);"),Object(o.b)("li",{parentName:"ul"},"Quantas cobran\xe7as devem ser geradas.")),Object(o.b)("p",null,"Para criar um plano de assinatura, voc\xea deve enviar uma requisi\xe7\xe3o ",Object(o.b)("code",null,"POST")," para a rota ",Object(o.b)("code",null,"/plan"),"."),Object(o.b)("p",null,"Caso queira, pode explorar e conhecer mais sobre este recurso ",Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"usando nosso Playground"),"."),Object(o.b)("p",null,"O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's dispon\xedveis:"),Object(o.b)(c.a,{defaultValue:"php",values:[{label:"PHP",value:"php"},{label:"Python",value:"python"},{label:"NodeJS",value:"js"},{label:".NET",value:"c"},{label:"Java",value:"java"},{label:"GO",value:"go"},{label:"Ruby",value:"ruby"},{label:"Delphi",value:"delphi"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"php",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-php"}),"<?php\n \nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK\n \nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n \n$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n$body = [\n 'name' => 'Meu Plano de Assinatura', // nome do plano de assinatura\n 'interval' => 1, // periodicidade da cobran\xe7a (em meses) - informe 1 para assinatura mensal\n 'repeats' => null // n\xfamero de vezes que a cobran\xe7a deve ser gerada (padr\xe3o: null, que significa que a cobran\xe7a \xe9 gerada por tempo indeterminado ou at\xe9 que o plano seja cancelado)\n];\n \ntry {\n $api = new Gerencianet($options);\n $plan = $api->createPlan([], $body);\n \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"))),Object(o.b)(i.a,{value:"python",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"# encoding: utf-8\n\u200b\nfrom gerencianet import Gerencianet\n \noptions = {\n 'client_id': 'client_id',\n 'client_secret': 'client_secret',\n 'sandbox': True\n}\n \ngn = Gerencianet(options)\n \nbody = {\n 'name': \"Meu Plano de Assinatura\",\n 'repeats': null,\n 'interval': 1\n}\n \nplan = gn.create_plan(body=body)\n"))),Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"'use strict';\n \nvar moment = require('moment');\nvar Gerencianet = require('gn-api-sdk-node');\n \nvar clientId = 'your_client_id';\nvar clientSecret = 'your_client_secret';\n \nvar options = {\n client_id: clientId,\n client_secret: clientSecret,\n sandbox: true\n}\n \nvar body = {\n name: 'Meu Plano de Assinatura',\n repeats: null,\n interval: 1\n}\n \nvar gerencianet = new Gerencianet(options);\n \ngerencianet\n .createPlan({}, body)\n .then(console.log)\n .catch(console.log)\n .done();\n"))),Object(o.b)(i.a,{value:"c",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'dynamic endpoints = new Endpoints("client_id", "client_secret", true);\n \nvar body = new {\n name = "Meu Plano de Assinatura",\n repeats = null,\n interval = 1\n};\n \nvar planResponse = endpoints.CreatePlan(null, body);\n'))),Object(o.b)(i.a,{value:"java",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-java"}),'/* Para que a SDK Java funcione corretamente, \xe9 necess\xe1rio que a instancia\xe7\xe3o do m\xf3dulo seja feita atrav\xe9s da cria\xe7\xe3o de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma fun\xe7\xe3o da API, basta invocar o m\xe9todo call do objeto Gerencianet, passando como par\xe2metro o nome do m\xe9todo, os par\xe2metros da requisi\xe7\xe3o (sempre ser\xe1 um HashMap<String, String>), e o "body", que consiste nas propriedades a serem passadas como argumento na chamada de um fun\xe7\xe3o da SDK. O "body" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura \xe9 necess\xe1ria para representar o corpo da requisi\xe7\xe3o http que \xe9 enviada \xe0 um determinado endpoint. Se o "body" for um JSONObject, o retorno do m\xe9todo call ser\xe1 um JSONObject, se for um Map<String, Object>, o retorno do m\xe9todo call ser\xe1 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/CreatePlan.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/CreatePlan.java\n\n*/\n'))),Object(o.b)(i.a,{value:"go",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-go"}),'// No c\xf3digo de exemplo de uso da SDK de Go, definimos as credenciais de acesso \xe0 API (Client_Id e Client_Secret) e o ambiente a ser usado (sandbox como \'true\' ou \'false\') dentro de um arquivo espec\xedfico (configs.go), que est\xe1 localizado no diret\xf3rio "_examples/configs". Essas credenciais s\xe3o exportadas atrav\xe9s da vari\xe1vel \'Credentials\'.\n\npackage main\n\nimport (\n "fmt"\n "github.com/gerencianet/gn-api-sdk-go/gerencianet"\n "github.com/gerencianet/gn-api-sdk-go/_examples/configs"\n)\n\nfunc main(){\n \n credentials := configs.Credentials\n gn := gerencianet.NewGerencianet(credentials)\n\n body := map[string]interface{} {\n "name": "My plan",\n "interval": 2,\n "repeats": nil,\n }\n\n res, err := gn.CreatePlan(body)\n\n if err != nil {\n fmt.Println(err)\n } else {\n fmt.Println(res)\n }\n}\n'))),Object(o.b)(i.a,{value:"ruby",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'require "gerencianet"\n \noptions = {\n client_id: "client_id",\n client_secret: "client_secret",\n sandbox: true\n}\n \nbody = {\n name: "Meu Plano de Assinatura",\n repeats: null,\n interval: 1\n}\n \ngerencianet = Gerencianet.new(options)\ngerencianet.create_plan(body: body)\n'))),Object(o.b)(i.a,{value:"delphi",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),"interface\nfunction CreatePlan: String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction CreatePlan: String;\nvar\n Body: String;\nbegin\n Body :=\n '{\"name\": \"my_plan\",'+\n '\"interval\": 2,'+\n '\"repeats\": 2}';\n\n EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize(); \n\n Result := ExecuteGerenciaNetRequest( 'createPlan','','', Body );\nend;\n")))),Object(o.b)("br",null),Object(o.b)("h3",{id:"a-estrutura-hier\xe1rquica-dos-atributos-do-schema-que-podem-ser-utilizados"},"a) Estrutura hier\xe1rquica dos atributos do Schema que podem ser utilizados:"),Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{}),'"id": "/Plan"\n "name"\n "interval"\n "repeats"\n')),Object(o.b)("p",null,"Para verificar mais detalhes, ",Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"acesse aqui")," e explore em nosso Playground."),Object(o.b)("br",null),Object(o.b)("h3",{id:"b-atributos-que-podem-ser-utilizados-para-criar-uma-transa\xe7\xe3o"},"b) Atributos que podem ser utilizados para criar uma transa\xe7\xe3o:"),Object(o.b)("table",null,Object(o.b)("tbody",null,Object(o.b)("tr",null,Object(o.b)("th",null,"Atributo"),Object(o.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(o.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(o.b)("th",{align:"center"},"Tipo")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"name")),Object(o.b)("td",{align:"left"},Object(o.b)("b",null,"Nome do plano")," de assinatura. ",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String).")),Object(o.b)("td",{align:"center"},"Sim"),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"interval")),Object(o.b)("td",{align:"left"},Object(o.b)("b",null,"Periodicidade da cobran\xe7a."),"Determina o intervalo, ",Object(o.b)("b",null,"em meses")," que a cobran\xe7a da assinatura deve ser gerada. Informe ",Object(o.b)("em",null,"1")," para assinatura mensal.",Object(o.b)("br",null),Object(o.b)("br",null)," Exemplo 1: se ",Object(o.b)("em",null,"interval = 1")," e ",Object(o.b)("em",null,"repeats = null"),", ser\xe1 gerada 1 (uma) cobran\xe7a por m\xeas, ou seja, a cobran\xe7a recorrente ser\xe1 mensal, de acordo com a primeira data de vencimento escolhida e gerada indefinidamente.",Object(o.b)("br",null),Object(o.b)("br",null)," Exemplo 2: se ",Object(o.b)("em",null,"interval = 6")," e ",Object(o.b)("em",null,"repeats = 2"),", ser\xe1 gerada 1 (uma) cobran\xe7a a cada 6 (seis) meses, totalizando 2 (duas) cobran\xe7as em 12 meses (uma no 6\xba m\xeas e outra no 12\xba m\xeas).",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 m\xeas e m\xe1ximo de 24 meses.")),Object(o.b)("td",{align:"center"},"Sim"),Object(o.b)("td",{align:"center"},"Integer")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"repeats")),Object(o.b)("td",{align:"left"},Object(o.b)("b",null,"Quantas cobran\xe7as devem ser geradas.")," Determina o n\xfamero de vezes que a cobran\xe7a deve ser gerada. Se nada for enviado, a cobran\xe7a \xe9 gerada por tempo indeterminado ou at\xe9 que o plano seja cancelado.",Object(o.b)("br",null),Object(o.b)("br",null)," Exemplo 1: se ",Object(o.b)("em",null,"interval = 1")," e ",Object(o.b)("em",null,"repeats = null"),", , ser\xe1 gerada 1 (uma) cobran\xe7a por m\xeas, ou seja, a cobran\xe7a recorrente ser\xe1 mensal, de acordo com a primeira data de vencimento escolhida.",Object(o.b)("br",null),Object(o.b)("br",null)," Exemplo 2: se ",Object(o.b)("em",null,"interval = 6")," e ",Object(o.b)("em",null,"repeats = 2"),", ser\xe1 gerada 1 (uma) cobran\xe7a a cada 6 (seis) meses, totalizando 2 (duas) cobran\xe7as em 12 meses (uma no 6\xba m\xeas e outra no 12\xba m\xeas).",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Padr\xe3o: Ilimitado.",Object(o.b)("br",null),"M\xednimo de 2 e m\xe1ximo de 120.")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Integer")))),Object(o.b)("br",null),Object(o.b)("hr",null),Object(o.b)("h2",{id:"2-crie-inscri\xe7\xf5es-assinaturas-para-vincular-ao-plano"},"2. Crie inscri\xe7\xf5es (assinaturas) para vincular ao plano"),Object(o.b)("p",null,"Com o plano criado, \xe9 o momento de criar assinaturas associando-as a plano(s). Assinaturas s\xe3o aplic\xe1veis quando voc\xea precisa cobrar de forma recorrente seus clientes. Desta forma, os custos subsequentes ser\xe3o criados automaticamente com base na configura\xe7\xe3o do plano."),Object(o.b)("p",null,"Cabe ressaltar que deve ser informado o ",Object(o.b)("code",null,"plan_id")," do plano criado previamente no qual deseja associar."),Object(o.b)("p",null,"Para associar assinaturas a planos, voc\xea deve enviar uma requisi\xe7\xe3o ",Object(o.b)("code",null,"POST")," para a rota ",Object(o.b)("code",null,"/plan/:id/subscription"),", onde ",Object(o.b)("code",null,":id")," \xe9 o ",Object(o.b)("code",null,"plan_id")," do plano que deseja atrelar \xe0 assinatura."),Object(o.b)("p",null,"Caso queira, pode explorar e conhecer mais sobre este recurso ",Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"usando nosso Playground")),Object(o.b)("p",null,"O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's dispon\xedveis:"),Object(o.b)(c.a,{defaultValue:"php",values:[{label:"PHP",value:"php"},{label:"Python",value:"python"},{label:"NodeJS",value:"js"},{label:".NET",value:"c"},{label:"Java",value:"java"},{label:"GO",value:"go"},{label:"Ruby",value:"ruby"},{label:"Delphi",value:"delphi"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"php",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-php"}),"<?php\n \nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK\n \nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n \n$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n$item_1 = [\n 'name' => 'Item 1', // nome do item, produto ou servi\xe7o\n 'amount' => 1, // quantidade\n 'value' => 1000 // valor (1000 = R$ 10,00) (Obs: \xc9 poss\xedvel a cria\xe7\xe3o de itens com valores negativos. Por\xe9m, o valor total da fatura deve ser superior ao valor m\xednimo para gera\xe7\xe3o de transa\xe7\xf5es.)\n];\n \n$item_2 = [\n 'name' => 'Item 2' // nome do item, produto ou servi\xe7o\n 'amount' => 2, // quantidade\n 'value' => 2000 // valor (2000 = R$ 20,00)\n];\n \n$items = [\n $item_1,\n $item_2\n];\n// Exemplo para receber notifica\xe7\xf5es da altera\xe7\xe3o do status da transa\xe7\xe3o.\n// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']\n// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes\n\n// Como enviar seu $body com o $metadata\n// $body = [\n// 'items' => $items,\n// 'metadata' => $metadata\n// ];\n\n$body = [\n 'items' => $items\n];\n\n// $plan_id refere-se ao ID do plano criado anteriormente\n\n$params = [\n 'id' => $plan_id\n];\n \ntry {\n $api = new Gerencianet($options);\n $subscription = $api->createSubscription($params, $body);\n \n print_r($subscription);\n} catch (GerencianetException $e) {\n print_r($e->code);\n print_r($e->error);\n print_r($e->errorDescription);\n} catch (Exception $e) {\n print_r($e->getMessage());\n}\n"))),Object(o.b)(i.a,{value:"python",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"# 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 'items': [{\n 'name': \"Product 1\",\n 'value': 1000,\n 'amount': 2\n }]\n}\n\nresponse = gn.create_subscription(params=params, body=body)\nprint(response)\n"))),Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"'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 planBody = {\n name: 'My first plan',\n repeats: 24,\n interval: 2\n}\n\nvar subscriptionBody = {\n items: [{\n name: 'Product 1',\n value: 1000,\n amount: 2\n }]\n}\n\nvar gerencianet = new Gerencianet(options);\n\nvar createSubscription = function (response) {\n var params = {\n id: response.data.plan_id\n }\n\n return gerencianet.createSubscription(params, subscriptionBody);\n}\n\ngerencianet\n .createPlan({}, planBody)\n .then(createSubscription)\n .then(console.log)\n .catch(console.log)\n .done();\n"))),Object(o.b)(i.a,{value:"c",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'using System;\n\nnamespace Gerencianet.SDK.Examples\n{\n class CreateSubscription\n {\n public static void Execute()\n {\n dynamic endpoints = new Endpoints(Credentials.Default.ClientId, Credentials.Default.ClientSecret, Credentials.Default.Sandbox);\n\n var planBody = new {\n name = "My first plan",\n repeats = 24,\n interval = 2\n };\n \n var subscriptionBody = new\n {\n items = new[] {\n new {\n name = "Product 1",\n value = 1000,\n amount = 2\n }\n }\n };\n\n try\n {\n var planResponse = endpoints.CreatePlan(null, planBody);\n\n var subscriptionParam = new {\n id = planResponse.data.plan_id\n };\n var subscriptionResponse = endpoints.CreateSubscription(subscriptionParam, subscriptionBody);\n Console.WriteLine(subscriptionResponse);\n }\n catch (GnException e)\n {\n Console.WriteLine(e.ErrorType);\n Console.WriteLine(e.Message);\n }\n }\n }\n}\n'))),Object(o.b)(i.a,{value:"java",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-java"}),'/* Para que a SDK Java funcione corretamente, \xe9 necess\xe1rio que a instancia\xe7\xe3o do m\xf3dulo seja feita atrav\xe9s da cria\xe7\xe3o de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma fun\xe7\xe3o da API, basta invocar o m\xe9todo call do objeto Gerencianet, passando como par\xe2metro o nome do m\xe9todo, os par\xe2metros da requisi\xe7\xe3o (sempre ser\xe1 um HashMap<String, String>), e o "body", que consiste nas propriedades a serem passadas como argumento na chamada de um fun\xe7\xe3o da SDK. O "body" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura \xe9 necess\xe1ria para representar o corpo da requisi\xe7\xe3o http que \xe9 enviada \xe0 um determinado endpoint. Se o "body" for um JSONObject, o retorno do m\xe9todo call ser\xe1 um JSONObject, se for um Map<String, Object>, o retorno do m\xe9todo call ser\xe1 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/CreateSubscription.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/CreateSubscription.java\n\n*/\n'))),Object(o.b)(i.a,{value:"go",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-go"}),'// No c\xf3digo de exemplo de uso da SDK de Go, definimos as credenciais de acesso \xe0 API (Client_Id e Client_Secret) e o ambiente a ser usado (sandbox como \'true\' ou \'false\') dentro de um arquivo espec\xedfico (configs.go), que est\xe1 localizado no diret\xf3rio "_examples/configs". Essas credenciais s\xe3o exportadas atrav\xe9s da vari\xe1vel \'Credentials\'.\n\npackage main\n\nimport (\n "fmt"\n "github.com/gerencianet/gn-api-sdk-go/gerencianet"\n "github.com/gerencianet/gn-api-sdk-go/_examples/configs"\n)\n\nfunc main(){\n \n credentials := configs.Credentials\n gn := gerencianet.NewGerencianet(credentials)\n\n body := map[string]interface{} {\n "items": []map[string]interface{}{\n {\n "name": "Product 1",\n "value": 1000,\n "amount": 2,\n },\n },\n }\n\n res, err := gn.CreateSubscription(1, body) // no lugar do 1 coloque o plan_id correto\n\n if err != nil {\n fmt.Println(err)\n } else {\n fmt.Println(res)\n }\n}\n'))),Object(o.b)(i.a,{value:"ruby",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'require "gerencianet"\nrequire_relative "./credentials"\n\noptions = {\n client_id: CREDENTIALS::CLIENT_ID,\n client_secret: CREDENTIALS::CLIENT_SECRET,\n sandbox: true\n}\n\nplan = {\n name: "My first plan",\n repeats: 24,\n interval: 2\n}\n\nsubscription = {\n items: [{\n name: "Product 1",\n value: 1000,\n amount: 2\n }]\n}\n\ngerencianet = Gerencianet.new(options)\nplan = gerencianet.create_plan(body: plan)\n\nparams = {\n id: plan["data"]["plan_id"]\n}\n\nputs gerencianet.create_subscription(params: params, body: subscription)\n'))),Object(o.b)(i.a,{value:"delphi",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),"interface\nfunction CreateSubscription(Id: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction CreateSubscription(Id: String): String;\nvar\n Params: String;\n Body: String;\nbegin\n Params := CreateRequestParams( [ 'id='+Id ] ).Text;\n Body :=\n '{\"items\": ['+\n '{\"name\": \"Item 1\",'+\n '\"amount\": 1,'+\n '\"value\": 2000}'+\n ']}';\n\n EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize(); \n\n Result := ExecuteGerenciaNetRequest( 'createSubscription',Params,'', Body );\nend;\n")))),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("h3",{id:"a-estrutura-hier\xe1rquica-dos-atributos-do-schema-que-podem-ser-utilizados-1"},"a) Estrutura hier\xe1rquica dos atributos do Schema que podem ser utilizados:"),Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{}),'"id": "/Subscription"\n "items"\n "name"\n "value"\n "amount"\n "shippings"\n "name"\n "value"\n "payee_code"\n "metadata"\n "custom_id"\n "notification_url"\n')),Object(o.b)("p",null,"Para verificar mais detalhes, ",Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"acesse aqui")," e explore em nosso Playground."),Object(o.b)("br",null),Object(o.b)("h3",{id:"b-atributos-que-podem-ser-utilizados-para-associar-uma-assinatura-a-um-plano"},"b) Atributos que podem ser utilizados para associar uma assinatura a um plano:"),Object(o.b)("table",null,Object(o.b)("tbody",null,Object(o.b)("tr",null,Object(o.b)("th",null,"Atributo"),Object(o.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(o.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(o.b)("th",{align:"center"},"Tipo")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"items")),Object(o.b)("td",{align:"left"},"item que est\xe1 sendo vendido. Uma mesma transa\xe7\xe3o pode possuir ilimitados itens. ",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de items:"),Object(o.b)("br",null),Object(o.b)("code",null,"name*"),"// Nome do item, produto ou servi\xe7o. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String)."),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"value*"),"// Valor, em centavos. Ex: R$ 10,00 = 1000. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Integer"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"amount"),"// Quantidade. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Integer")),Object(o.b)("td",{align:"center"},"Sim"),Object(o.b)("td",{align:"center"},"Array")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"shippings")),Object(o.b)("td",{align:"left"},"Determina o(s) valor(es) de frete(s) de uma transa\xe7\xe3o. Uma mesma transa\xe7\xe3o pode possuir ilimitados valores de frete. ",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de shippings:"),Object(o.b)("br",null),Object(o.b)("code",null,"name*"),"// R\xf3tulo do frete. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String."),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"value*"),"// Valor do frete, em centavos (1990 equivale a R$19,90). ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Integer")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Array")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"metadata")),Object(o.b)("td",{align:"left"},"Define dados espec\xedficos da transa\xe7\xe3o",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de metadata:"),Object(o.b)("br",null),Object(o.b)("code",null,"custom_id"),"// Permite associar uma transa\xe7\xe3o Gerencianet a uma ID espec\xedfica de seu sistema ou aplica\xe7\xe3o, permitindo identific\xe1-la caso voc\xea possua uma identifica\xe7\xe3o espec\xedfica e queira mant\xea-la. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String/null."),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"notification_url"),"// Endere\xe7o de sua URL v\xe1lida que receber\xe1 as notifica\xe7\xf5es de mudan\xe7as de status das transa\xe7\xf5es. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String/null.")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")))),Object(o.b)("br",null),Object(o.b)("hr",null),Object(o.b)("h2",{id:"3-defina-a-forma-de-pagamento-da-assinatura-e-os-dados-do-cliente"},"3. Defina a forma de pagamento da assinatura e os dados do cliente"),Object(o.b)("p",null,"Ap\xf3s criar o plano de assinatura e associar assinaturas \xe0 planos, \xe9 o momento de associar a forma de pagamento recorrente das assinaturas, que pode ser ",Object(o.b)("code",null,"banking_billet")," (boleto banc\xe1rio) ou ",Object(o.b)("code",null,"credit_card")," (cart\xe3o de cr\xe9dito)."),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("strong",{parentName:"p"},"Cart\xe3o de Cr\xe9dito"),": seu cliente realiza o pagamento, de acordo com a periodicidade que voc\xea definiu (mensal, trimestral, etc) no plano, sendo o mesmo valor cobrado automaticamente no cart\xe3o de cr\xe9dito de seu cliente. Na recorr\xeancia por cart\xe3o, seu cliente digita os dados do cart\xe3o apenas no primeiro pagamento, depois a cobran\xe7a \xe9 realizada automaticamente sem que ele precise informar os dados novamente;")),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("strong",{parentName:"p"},"Boleto Banc\xe1rio"),": ser\xe1 gerado conforme o n\xfamero de repeti\xe7\xf5es definido pelo plano, podendo ser enviado por e-mail. O assinante ou o vendedor podem cancelar a assinatura a qualquer momento. Quando isso ocorre, os dois s\xe3o avisados via e-mail, com todos os detalhes do cancelamento."))),Object(o.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(o.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})))),'Atributo "trial_days" que permite conceder um per\xedodo de teste')),Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},"A API disponibiliza o atributo ",Object(o.b)("code",null,"trial_days"),", que permite definir uma quantidade de dias para teste gratuito do plano de assinatura. Atributo dispon\xedvel somente quando o pagamento for ",Object(o.b)("code",null,"credit_card"),"."),Object(o.b)("p",{parentName:"div"},"Para detalhes, consulte a tabela mais abaixo: ",Object(o.b)("code",null,'Objeto Credit_Card ("cart\xe3o de cr\xe9dito")')))),Object(o.b)("p",null,"Para associar assinaturas \xe0 forma de pagamento, voc\xea deve enviar uma requisi\xe7\xe3o ",Object(o.b)("inlineCode",{parentName:"p"},"POST")," para a rota ",Object(o.b)("inlineCode",{parentName:"p"},"/subscription/:id/pay"),", onde ",Object(o.b)("inlineCode",{parentName:"p"},":id")," \xe9 o ",Object(o.b)("inlineCode",{parentName:"p"},"subscription_id")," da assinatura desejada."),Object(o.b)("p",null,"Caso queira, pode explorar e conhecer mais sobre este recurso ",Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"usando nosso Playground"),"."),Object(o.b)("p",null,"O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's dispon\xedveis:"),Object(o.b)(c.a,{defaultValue:"php",values:[{label:"PHP",value:"php"},{label:"Python",value:"python"},{label:"NodeJS",value:"js"},{label:".NET",value:"c"},{label:"Java",value:"java"},{label:"GO",value:"go"},{label:"Ruby",value:"ruby"},{label:"Delphi",value:"delphi"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"php",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-php"}),"// Fun\xe7\xe3o paySubscription\n\n// Forma de pagamento por boleto banc\xe1rio (\"banking_billet\")\n\n$params = ['id' => $subscription_id];\n\n$customer = [\n 'name' => 'Gorbadoc Oldbuck',\n 'cpf' => '94271564656',\n 'phone_number' => '5144916523'\n];\n\n$body = [\n 'payment' => [\n 'banking_billet' => [\n 'expire_at' => '2018-12-12',\n 'customer' => $customer\n ]\n ]\n];\n\ntry {\n $api = new Gerencianet($options);\n $subscription = $api->paySubscription($params, $body);\n\n print_r($subscription);\n} catch (GerencianetException $e) {\n print_r($e->code);\n print_r($e->error);\n print_r($e->errorDescription);\n} catch (Exception $e) {\n print_r($e->getMessage());\n}\n\n\n// Forma de pagamento por cart\xe3o de cr\xe9dito (\"credit_card\")\n\n$params = ['id' => $subscription_id];\n\n$paymentToken = 'payment_token';\n\n$customer = [\n 'name' => 'Gorbadoc Oldbuck',\n 'cpf' => '94271564656',\n 'phone_number' => '5144916523',\n 'email' => '[email protected]',\n 'birth' => '1977-01-15'\n];\n\n$billingAddress = [\n 'street' => 'Av. JK',\n 'number' => 909,\n 'neighborhood' => 'Bauxita',\n 'zipcode' => '35400000',\n 'city' => 'Ouro Preto',\n 'state' => 'MG',\n];\n\n$body = [\n 'payment' => [\n 'credit_card' => [\n 'billing_address' => $billingAddress,\n 'payment_token' => $paymentToken,\n 'customer' => $customer\n ]\n ]\n];\n\ntry {\n $api = new Gerencianet($options);\n $subscription = $api->paySubscription($params, $body);\n\n print_r($subscription);\n} catch (GerencianetException $e) {\n print_r($e->code);\n print_r($e->error);\n print_r($e->errorDescription);\n} catch (Exception $e) {\n print_r($e->getMessage());\n}\n"))),Object(o.b)(i.a,{value:"python",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"# Fun\xe7\xe3o pay_subscription\n\n# Forma de pagamento por boleto banc\xe1rio (\"banking_billet\")\n# encoding: utf-8\n\nfrom gerencianet import Gerencianet\n\ncredentials = {\n 'client_id': 'client_id',\n 'client_secret': 'client_secret',\n 'sandbox': True\n}\n\ngn = Gerencianet(credentials)\n\nbody = {\n 'payment': {\n 'banking_billet': {\n 'expire_at': '2016-12-12',\n 'customer': {\n 'name': \"Gorbadoc Oldbuck\",\n 'email': \"[email protected]\",\n 'cpf': \"04267484171\",\n 'birth': \"1977-01-15\",\n 'phone_number': \"5144916523\"\n }\n }\n }\n}\n\nparams = {\n 'id': charge['data']['charge_id'] # informe o subscription_id\n}\n\nresponse = gn.pay_subscription(params=params, body=body)\nprint(response)\n\n\n# Forma de pagamento por cart\xe3o de cr\xe9dito (\"credit_card\")\n# encoding: utf-8\n\nfrom gerencianet import Gerencianet\n\ncredentials = {\n 'client_id': 'client_id',\n 'client_secret': 'client_secret',\n 'sandbox': True\n}\n\ngn = Gerencianet(credentials)\n\nparams = {\n 'id': 123 # informe o subscription_id\n}\n\nbody = {\n 'payment': {\n 'credit_card': {\n 'installments': 1,\n 'payment_token': \"\", #see credit card flow to see how to get this\n 'billing_address': {\n 'street': \"Av. JK\",\n 'number': 909,\n 'neighborhood': \"Bauxita\",\n 'zipcode': \"35400000\",\n 'city': \"Ouro Preto\",\n 'state': \"MG\"\n },\n 'customer': {\n 'name': \"Gorbadoc Oldbuck\",\n 'email': \"[email protected]\",\n 'cpf': \"04267484171\",\n 'birth': \"1977-01-15\",\n 'phone_number': \"5144916523\"\n }\n }\n }\n}\n\nresponse = gn.pay_subscription(params=params, body=payment)\nprint(response)\n"))),Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"// Fun\xe7\xe3o paySubscription\n\n// Forma de pagamento por boleto banc\xe1rio (\"banking_billet\")\n\nvar tenDaysFromNow = moment()\n .add(10, 'days')\n .format('YYYY-MM-DD 00:00:00');\n\nvar params = {\n id: 1000 // informe o subscription_id\n}\n\nvar body = {\n payment: {\n banking_billet: {\n expire_at: tenDaysFromNow,\n customer: {\n name: 'Gorbadoc Oldbuck',\n email: '[email protected]',\n cpf: '04267484171',\n birth: '1977-01-15',\n phone_number: '5144916523'\n }\n }\n }\n}\n\ngerencianet\n .paySubscription(params, body)\n .then(console.log)\n .catch(console.log)\n .done();\n\n\n// Forma de pagamento por cart\xe3o de cr\xe9dito (\"credit_card\")\n\nvar params = {\n id: 1000 // informe o subscription_id\n}\n\nvar body = {\n payment: {\n credit_card: {\n payment_token: 'payment_token_aqui',\n billing_address: {\n street: 'Av. JK',\n number: 909,\n neighborhood: 'Bauxita',\n zipcode: '35400000',\n city: 'Ouro Preto',\n state: 'MG'\n },\n customer: {\n name: 'Gorbadoc Oldbuck',\n email: '[email protected]',\n cpf: '04267484171',\n birth: '1977-01-15',\n phone_number: '5144916523'\n }\n }\n }\n}\n\ngerencianet\n .paySubscription(params, body)\n .then(console.log)\n .catch(console.log)\n .done();\n"))),Object(o.b)(i.a,{value:"c",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'<%-- Fun\xe7\xe3o PaySubscription --%>\n\n<%-- Forma de pagamento por boleto banc\xe1rio ("banking_billet") --%>\n\nusing Gerencianet.SDK;\n...\ndynamic endpoints = new Endpoints("client_id", "client_secret", true);\n\nvar body = new {\n payment = new {\n banking_billet = new {\n expire_at = "2016-12-12",\n customer = new {\n name = "Gorbadoc Oldbuck",\n email = "[email protected]",\n cpf = "04267484171",\n birth = "1977-01-15",\n phone_number = "5144916523"\n }\n }\n }\n};\n\nvar param = new {\n id = chargeResult.data.charge_id # <%-- informe o charge_id --%>\n};\n\nvar response = endpoints.PaySubscription(param, body);\nConsole.WriteLine(response);\n\n\n<%-- Forma de pagamento por cart\xe3o de cr\xe9dito ("credit_card") --%>\n\nusing Gerencianet.SDK;\n...\ndynamic endpoints = new Endpoints("client_id", "client_secret", true);\n\nvar param = {\n id = 123 <%-- informe o subscription_id --%>\n};\n\nvar body = new {\n payment = new {\n credit_card = new {\n installments = 1,\n payment_token = "", // see credit card flow to see how to get this\n billing_address = new {\n street = "Av. JK",\n number = 909,\n neighborhood = "Bauxita",\n zipcode = "35400000",\n city = "Ouro Preto",\n state = "MG"\n },\n customer = new {\n name = "Gorbadoc Oldbuck",\n email = "[email protected]",\n cpf = "04267484171",\n birth = "1977-01-15",\n phone_number = "5144916523"\n }\n }\n }\n};\n\nvar response = endpoints.PaySubscription(param, body);\nConsole.WriteLine(response);\n'))),Object(o.b)(i.a,{value:"java",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-java"}),'/* Para que a SDK Java funcione corretamente, \xe9 necess\xe1rio que a instancia\xe7\xe3o do m\xf3dulo seja feita atrav\xe9s da cria\xe7\xe3o de um objeto do tipo Gerencianet.\n\nSempre que quisermos chamar uma fun\xe7\xe3o da API, basta invocar o m\xe9todo call do objeto Gerencianet, passando como par\xe2metro o nome do m\xe9todo, os par\xe2metros da requisi\xe7\xe3o (sempre ser\xe1 um HashMap<String, String>), e o "body", que consiste nas propriedades a serem passadas como argumento na chamada de um fun\xe7\xe3o da SDK. O "body" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\n\nEsta estrutura \xe9 necess\xe1ria para representar o corpo da requisi\xe7\xe3o http que \xe9 enviada \xe0 um determinado endpoint. Se o "body" for um JSONObject, o retorno do m\xe9todo call ser\xe1 um JSONObject, se for um Map<String, Object>, o retorno do m\xe9todo call ser\xe1 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/PaySubscription.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/PaySubscription.java\n\n*/\n'))),Object(o.b)(i.a,{value:"go",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-go"}),'// No c\xf3digo de exemplo de uso da SDK de Go, definimos as credenciais de acesso \xe0 API (Client_Id e Client_Secret) e o ambiente a ser usado (sandbox como \'true\' ou \'false\') dentro de um arquivo espec\xedfico (configs.go), que est\xe1 localizado no diret\xf3rio "_examples/configs". Essas credenciais s\xe3o exportadas atrav\xe9s da vari\xe1vel \'Credentials\'.\n\npackage main\n\nimport (\n "fmt"\n "github.com/gerencianet/gn-api-sdk-go/gerencianet"\n "github.com/gerencianet/gn-api-sdk-go/_examples/configs"\n)\n\nfunc main(){\n \n credentials := configs.Credentials\n gn := gerencianet.NewGerencianet(credentials)\n\n customer := map[string]interface{}{\n "name": "Gorbadoc Oldbuck",\n "cpf": "04267484171",\n "phone_number": "5144916523",\n }\n\n body := map[string]interface{} {\n "payment": map[string]interface{} {\n "banking_billet": map[string]interface{} {\n "expire_at": "2018-12-12",\n "customer": customer,\n },\n },\n }\n\n res, err := gn.PaySubscription(1, body) // no lugar do 1 coloque o subscription_id certo\n\n if err != nil {\n fmt.Println(err)\n } else {\n fmt.Println(res)\n }\n}\n'))),Object(o.b)(i.a,{value:"ruby",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'# Fun\xe7\xe3o pay_subscription\n\n# Forma de pagamento por boleto banc\xe1rio ("banking_billet")\n\nparams = {\n id: 1113 # informe o subscription_id\n}\n\nvar body = {\n payment: {\n banking_billet: {\n expire_at: "2016-12-12",\n customer: {\n name: "Gorbadoc Oldbuck",\n email: "[email protected]",\n cpf: "04267484171",\n birth: "1977-01-15",\n phone_number: "5144916523"\n }\n }\n }\n}\n\ngerencianet = Gerencianet.new(options)\ngerencianet.pay_subscription(params: params, body: body)\n\n\n# Forma de pagamento por cart\xe3o de cr\xe9dito ("credit_card")\n\nparams = {\n id: 1113 # informe o subscription_id\n}\n\nbody = {\n payment: {\n credit_card: {\n payment_token: "e0c210bb679fea225a586256234f8ce179fd16c5",\n billing_address: {\n street: "Av. JK",\n number: 909,\n neighborhood: "Bauxita",\n zipcode: "35400000",\n city: "Ouro Preto",\n state: "MG"\n },\n customer: {\n name: "Gorbadoc Oldbuck",\n email: "[email protected]",\n cpf: "04267484171",\n birth: "1977-01-15",\n phone_number: "5144916523"\n }\n }\n }\n}\n\ngerencianet = Gerencianet.new(options)\ngerencianet.pay_subscription(params: params, body: body)\n'))),Object(o.b)(i.a,{value:"delphi",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),"// Fun\xe7\xe3o paySubscription\n\n// Forma de pagamento por boleto banc\xe1rio (\"banking_billet\")\n\ninterface\nfunction PaySubscription(Id: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction PaySubscription(Id: String): String;\nvar\n Body : String;\n PaymentParams: String;\n \nconst BodyText = '{'+\n '\"payment\": {'+\n '\"banking_billet\": {'+\n '\"customer\": {'+\n '\"email\": \"[email protected]\",'+\n '\"phone_number\": \"5144916523\",'+\n '\"birth\": \"1977-07-17\",'+\n '\"address\": {'+\n '\"street\": \"Av. JK\",'+\n '\"number\": 909,'+\n '\"neighborhood\": \"Bauxita\",'+\n '\"complement\": \"\",'+\n '\"city\": \"Ouro Preto\",'+\n '\"state\": \"MG\",'+\n '\"zipcode\": \"35400000\"'+\n '},'+\n '\"name\": \"Gorbadoc Oldbuck\",'+\n '\"cpf\": \"94271564656\"'+\n '},'+\n '\"message\": \"Test\",'+\n '\"expire_at\": \"2019-02-21\"'+\n '}'+\n '}'+\n'}';\n\nbegin\n PaymentParams := CreateRequestParams( [ 'id='+id ] ).Text;\n Body := BodyText;\n\n EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize(); \n\n Result := ExecuteGerenciaNetRequest( 'paySubscription',PaymentParams,'',Body );\nend;\n\n\n\n// Forma de pagamento por cart\xe3o de cr\xe9dito (\"credit_card\")\n\n\ninterface\nfunction PaySubscriptionWithCreditCard(Id, Token: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction PaySubscriptionWithCreditCard(Id, Token: String): String;\nvar\n Body : String;\n PaymentParams: String;\n \nbegin\n Body :=\n '{'+\n '\"payment\": {'+\n '\"credit_card\": {'+\n '\"customer\": {'+\n '\"name\": \"Gorbadoc Oldbuck\",'+\n '\"cpf\": \"94271564656\",'+\n '\"phone_number\": \"5144916523\",'+\n '\"email\": \"[email protected]\",'+\n '\"birth\": \"1977-01-15\"'+\n '},'+\n '\"installments\": 1,'+\n '\"payment_token\": \"'+Token+'\",'+\n '\"billing_address\": {'+\n '\"street\": \"Av. JK\",'+\n '\"number\": \"909\",'+\n '\"neighborhood\": \"Bauxita\",'+\n '\"zipcode\": \"35400000\",'+\n '\"city\": \"Ouro Preto\",'+\n '\"state\": \"MG\"'+\n '}'+\n '}'+\n '}'+\n '}';\n\n PaymentParams := CreateRequestParams( [ 'id='+id ] ).Text;\n\n EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize(); \n\n Result := ExecuteGerenciaNetRequest( 'paySubscription',PaymentParams,'',Body );\nend;\n")))),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("h3",{id:"a-estrutura-hier\xe1rquica-dos-atributos-do-schema-que-podem-ser-utilizados-2"},"a) Estrutura hier\xe1rquica dos atributos do Schema que podem ser utilizados:"),Object(o.b)("pre",null,Object(o.b)("code",Object(t.a)({parentName:"pre"},{}),'"id": "/SubscriptionPay"\n "payment"\n "banking_billet"\n "customer"\n "name"\n "cpf"\n "email"\n "phone_number"\n "birth"\n "address"\n "street"\n "number"\n "neighborhood"\n "zipcode"\n "city"\n "complement"\n "state"\n "juridical_person"\n "corporate_name"\n "cnpj"\n "expire_at"\n "discount"\n "type"\n "percentage"\n "currency"\n "value"\n "conditional_discount"\n "type"\n "percentage",\n "currency"\n "value"\n "until_date"\n "configurations"\n "fine"\n "interest"\n "message"\n\n "credit_card"\n "customer"\n "name"\n "cpf"\n "email"\n "phone_number"\n "birth"\n "address"\n "street"\n "number"\n "neighborhood"\n "zipcode"\n "city"\n "complement"\n "state"\n "juridical_person"\n "corporate_name"\n "cnpj"\n "billing_address"\n "street"\n "number"\n "neighborhood"\n "zipcode"\n "city"\n "complement"\n "state"\n "payment_token"\n "discount"\n "type"\n "percentage"\n "currency"\n "value"\n "message"\n "trial_days"\n')),Object(o.b)("p",null,"Para verificar mais detalhes, ",Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"acesse aqui")," e explore em nosso Playground."),Object(o.b)("br",null),Object(o.b)("h3",{id:"b-atributos-que-podem-ser-usados-para-definir-a-forma-de-pagamento-da-assinatura"},"b) Atributos que podem ser usados para definir a forma de pagamento da assinatura:"),Object(o.b)("table",null,Object(o.b)("tbody",null,Object(o.b)("tr",null,Object(o.b)("th",null,"Atributo"),Object(o.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(o.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(o.b)("th",{align:"center"},"Tipo")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"payment")),Object(o.b)("td",{align:"left"},"Tag raiz"),Object(o.b)("td",{align:"center"},"Sim"),Object(o.b)("td",{align:"center"},"Objeto ",Object(o.b)("b",null,"Payment"))))),Object(o.b)("br",null),Object(o.b)("p",null,Object(o.b)("em",{parentName:"p"},"Objeto")," ",Object(o.b)("strong",{parentName:"p"},"Payment")),Object(o.b)("table",null,Object(o.b)("tbody",null,Object(o.b)("tr",null,Object(o.b)("th",null,"Atributo"),Object(o.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(o.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(o.b)("th",{align:"center"},"Tipo")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"banking_billet")),Object(o.b)("td",{align:"left"},'Forma de pagamento atrav\xe9s de "boleto banc\xe1rio".'),Object(o.b)("td",{align:"center"},"Sim **"),Object(o.b)("td",{align:"center"},"Objeto")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"credit_card")),Object(o.b)("td",{align:"left"},'Forma de pagamento atrav\xe9s de "cart\xe3o de cr\xe9dito"'),Object(o.b)("td",{align:"center"},"Sim **"),Object(o.b)("td",{align:"center"},"Objeto ",Object(o.b)("b",null,"Credit_Card"))))),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"}," O atributo com (* *) \xe9 relacionado \xe0 forma de pagamento e \xe9 obrigat\xf3ria e pode ser boleto banc\xe1rio ou cart\xe3o de cr\xe9dito")),Object(o.b)("br",null),Object(o.b)("p",null,Object(o.b)("em",{parentName:"p"},"Objeto")," ",Object(o.b)("strong",{parentName:"p"},Object(o.b)("em",{parentName:"strong"},"Banking_Billet")),' ("boleto banc\xe1rio")'),Object(o.b)("table",null,Object(o.b)("tbody",null,Object(o.b)("tr",null,Object(o.b)("th",null,"Atributo"),Object(o.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(o.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(o.b)("th",{align:"center"},"Tipo")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"name")),Object(o.b)("td",{align:"left"},"Nome do cliente.",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String).")),Object(o.b)("td",{align:"center"},"Sim ",Object(o.b)("br",null),"Obs: Para Pessoa Jur\xeddica n\xe3o ser\xe3o obrigat\xf3rios o nome e CPF, apenas os demais dados do cliente."),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"cpf")),Object(o.b)("td",{align:"left"},"CPF v\xe1lido do cliente (sem pontos, v\xedrgulas ou h\xedfen).",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Tamanho: 11 caracteres.")),Object(o.b)("td",{align:"center"},"Sim ",Object(o.b)("br",null),"Obs: Para Pessoa Jur\xeddica n\xe3o ser\xe3o obrigat\xf3rios o nome e CPF, apenas os demais dados do cliente."),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"email")),Object(o.b)("td",{align:"left"},"Email do cliente.",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. Ex.: [email protected].")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"phone_number")),Object(o.b)("td",{align:"left"},"Telefone do cliente.",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Formato: sem pontos ou v\xedrgulas, com DDD de 2 caracteres (9\xba d\xedgito \xe9 opcional). Ex.: 11988887777")),Object(o.b)("td",{align:"center"},"Sim ",Object(o.b)("br",null),"Obs: Para Pessoa Jur\xeddica n\xe3o ser\xe3o obrigat\xf3rios o nome e CPF, apenas os demais dados do cliente."),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"birth")),Object(o.b)("td",{align:"left"},"Data de nascimento do cliente.",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Formato: YYYY-MM-DD")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"address")),Object(o.b)("td",{align:"left"},"Endere\xe7o do cliente.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de address:"),Object(o.b)("br",null),Object(o.b)("code",null,"street*"),"// Nome da rua ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(Object)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"number*"),"// N\xfamero ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String/Integer)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"neighborhood*"),"// Bairro ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"zipcode*"),"// CEP (sem pontos ou h\xedfen) ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"city*"),"// Cidade ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"complement"),"// Complemento ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String/null)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"state*"),"// Estado (2 caracteres) ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(Object)")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"juridical_person")),Object(o.b)("td",{align:"left"},"Dados de pessoa jur\xeddica.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de juridical_person:"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("code",null,"corporate_name*"),"// Nome da raz\xe3o social. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255. String."),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"cnpj*"),"// CNPJ da empresa. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Tamanho: 14 caracteres. String.")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"expire_at")),Object(o.b)("td",{align:"left"},"Data de vencimento do boleto.",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Formato: YYYY-MM-DD")),Object(o.b)("td",{align:"center"},"Sim"),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"discount")),Object(o.b)("td",{align:"left"},"Define dados de desconto sobre a cobran\xe7a.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de discount:"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"type*"),"// Tipo do desconto (String). Valores permitidos: ",Object(o.b)("br",null),Object(o.b)("code",null,"currency"),": o desconto ser\xe1 informado em centavos. ",Object(o.b)("code",null,"percentage"),": o desconto ser\xe1 informado em porcentagem.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"cnpj*"),"// CNPJ da empresa. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Tamanho: 14 caracteres. String."),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"value*"),"// Valor do desconto (Integer). Se o tipo do desconto for ",Object(o.b)("code",null,"currency")," , o valor desta tag dever\xe1 ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja ",Object(o.b)("code",null,"percentage"),", o valor dever\xe1 ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos: ",Object(o.b)("br",null),"1)",Object(o.b)("code",null,"currency"),"// deve ser informado em centavos, ou seja, se o desconto ser\xe1 de R$ 5,99, o integrador deve informar ",Object(o.b)("code",null,"599"),";",Object(o.b)("br",null)," 2)",Object(o.b)("code",null,"percentage")," // deve ser informado em centavos, ou seja, se o desconto \xe9 de 15%, o integrador deve informar ",Object(o.b)("code",null,"1500"),".",Object(o.b)("br",null),Object(o.b)("br",null)),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"conditional_discount")),Object(o.b)("td",{align:"left"},"Define desconto condicional que \xe9 v\xe1lido at\xe9 uma data espec\xedfica. Se o pagamento n\xe3o for efetuado at\xe9 aquela data, o desconto \xe9 invalidado.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de conditional_discount:"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"type*"),"// Tipo do desconto (String). Valores permitidos: ",Object(o.b)("br",null),Object(o.b)("code",null,"currency"),": o desconto ser\xe1 informado em centavos. ",Object(o.b)("code",null,"percentage"),": o desconto ser\xe1 informado em porcentagem.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"cnpj*"),"// CNPJ da empresa. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Tamanho: 14 caracteres. String."),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"value*"),"// Valor do desconto (Integer). Se o tipo do desconto for ",Object(o.b)("code",null,"currency")," , o valor desta tag dever\xe1 ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja ",Object(o.b)("code",null,"percentage"),", o valor dever\xe1 ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos: ",Object(o.b)("br",null),"1)",Object(o.b)("code",null,"currency"),"// deve ser informado em centavos, ou seja, se o desconto ser\xe1 de R$ 5,99, o integrador deve informar ",Object(o.b)("code",null,"599"),";",Object(o.b)("br",null)," 2)",Object(o.b)("code",null,"percentage")," // deve ser informado em centavos, ou seja, se o desconto \xe9 de 15%, o integrador deve informar ",Object(o.b)("code",null,"1500"),".",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"until_date*"),", // Data m\xe1xima que o desconto ser\xe1 concedido. (String).",Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Formato: YYYY-MM-DD")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"configurations")),Object(o.b)("td",{align:"left"},"Permite incluir no boleto multa e juros caso seja pago ap\xf3s o vencimento.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de configurations:"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"fine"),"// Valor cobrado de multa ap\xf3s o vencimento. Por exemplo: se voc\xea quiser 2%, voc\xea deve informar ",Object(o.b)("code",null,"200"),".",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 0 e m\xe1ximo de 1000. Integer."),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Caso voc\xea possua configura\xe7\xf5es de multa ativada na Gerencianet e queira gerar emiss\xf5es na API sem multa, utilize ",Object(o.b)("code",null,"0"),"como valor do atributo ",Object(o.b)("code",null,"fine")),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"interest"),"// Valor cobrado de juros por dia ap\xf3s a data de vencimento. Por exemplo: se voc\xea quiser 0,033%, voc\xea deve informar ",Object(o.b)("code",null,"33"),".",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 0 e m\xe1ximo de 330. Integer."),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Caso voc\xea possua configura\xe7\xf5es de multa ativada na Gerencianet e queira gerar emiss\xf5es na API sem juros, utilize ",Object(o.b)("code",null,"0")," como valor do atributo ",Object(o.b)("code",null,"interest"))),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"message")),Object(o.b)("td",{align:"left"},'Permite incluir no boleto uma "observa\xe7\xe3o", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poder\xe1 ser vista nos e-mails relacionados \xe0 cobran\xe7a, no boleto ou carn\xea.',Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"At\xe9 4 linhas contendo 100 caracteres em cada linha. String. ",Object(o.b)("br",null),"O operador ",Object(o.b)("code",null,"\\n"),"\xe9 utilizado para efetuar a quebra de linha.")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"String")))),Object(o.b)("br",null),Object(o.b)("p",null,Object(o.b)("em",{parentName:"p"},"Objeto")," ",Object(o.b)("strong",{parentName:"p"},Object(o.b)("em",{parentName:"strong"},"Credit_Card"))),Object(o.b)("table",null,Object(o.b)("tbody",null,Object(o.b)("tr",null,Object(o.b)("th",null,"Atributo"),Object(o.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(o.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(o.b)("th",{align:"center"},"Tipo")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"customer")),Object(o.b)("td",{align:"left"},"Dados pessoais do pagador.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de customer:"),Object(o.b)("br",null),Object(o.b)("code",null,"name*")," // Nome ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"cpf*")," // CPF do cliente (sem pontos, v\xedrgulas ou h\xedfen).",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"email*")," // Endere\xe7o de email v\xe1lido do cliente. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("code",null,"phone_number*")," // Telefone v\xe1lido do cliente, sem caracteres especiais. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("code",null,"birth*")," // Data de Nascimento do cliente (data v\xe1lida em formato YYYY-MM-DD). ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("code",null,"address")," // Endere\xe7o de Entrega. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(Object)")," (mais informa\xe7\xf5es)",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("code",null,"juridical_person")," // Dados de pessoa jur\xeddica. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(Object)")," (mais informa\xe7\xf5es)"),Object(o.b)("td",{align:"center"},"Sim"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"installments")),Object(o.b)("td",{align:"left"},"N\xfamero de parcelas em que o pagamento deve ser dividido.",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo 1 e m\xe1ximo 12. Integer.")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Integer")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"discount")),Object(o.b)("td",{align:"left"},"Define dados de desconto sobre a cobran\xe7a.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de discount:"),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"type*"),"// Tipo do desconto (String). Valores permitidos: ",Object(o.b)("br",null),Object(o.b)("code",null,"currency"),": o desconto ser\xe1 informado em centavos. ",Object(o.b)("code",null,"percentage"),": o desconto ser\xe1 informado em porcentagem.",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"cnpj*"),"// CNPJ da empresa. ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"Tamanho: 14 caracteres. String."),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"value*"),"// Valor do desconto (Integer). Se o tipo do desconto for ",Object(o.b)("code",null,"currency")," , o valor desta tag dever\xe1 ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja ",Object(o.b)("code",null,"percentage"),", o valor dever\xe1 ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos: ",Object(o.b)("br",null),"1)",Object(o.b)("code",null,"currency"),"// deve ser informado em centavos, ou seja, se o desconto ser\xe1 de R$ 5,99, o integrador deve informar ",Object(o.b)("code",null,"599"),";",Object(o.b)("br",null)," 2)",Object(o.b)("code",null,"percentage")," // deve ser informado em centavos, ou seja, se o desconto \xe9 de 15%, o integrador deve informar ",Object(o.b)("code",null,"1500"),".",Object(o.b)("br",null),Object(o.b)("br",null)),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"billing_address")),Object(o.b)("td",{align:"left"},"Endere\xe7o de cobran\xe7a (mais informa\xe7\xf5es)",Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("em",null,"Atributos de billing_address:"),Object(o.b)("br",null),Object(o.b)("code",null,"street*"),"// Nome da rua ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(Object)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"number*"),"// N\xfamero ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String/Integer)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"neighborhood*"),"// Bairro ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"zipcode*"),"// CEP (sem pontos ou h\xedfen) ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"city*"),"// Cidade ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"complement"),"// Complemento ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(String/null)"),Object(o.b)("br",null),Object(o.b)("br",null)," ",Object(o.b)("code",null,"state*"),"// Estado (2 caracteres) ",Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"(Object)")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Object")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"payment_token")),Object(o.b)("td",{align:"left"},"Token \xfanico de pagamento obtido na primeira etapa da gera\xe7\xe3o da transa\xe7\xe3o."),Object(o.b)("td",{align:"center"},"Sim"),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"message")),Object(o.b)("td",{align:"left"},'Permite incluir na cobran\xe7a uma "observa\xe7\xe3o", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poder\xe1 ser vista nos e-mails relacionados \xe0 cobran\xe7a, no boleto ou carn\xea.',Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"At\xe9 4 linhas contendo 100 caracteres em cada linha. String. ",Object(o.b)("br",null),"O operador ",Object(o.b)("code",null,"\\n"),"\xe9 utilizado para efetuar a quebra de linha.")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"String")),Object(o.b)("tr",null,Object(o.b)("td",null,Object(o.b)("code",null,"trial_days")),Object(o.b)("td",{align:"left"},"Permite definir uma quantidade de dias para teste gratuito do plano de assinatura. O per\xedodo para a avalia\xe7\xe3o gratuita, definido em ",Object(o.b)("code",null,"trial_days"),", come\xe7a a contar a partir do dia seguinte ao dia da realiza\xe7\xe3o da assinatura. Atributo dispon\xedvel somente quando o pagamento for ",Object(o.b)("code",null,"credit_card"),".",Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 dia e m\xe1ximo de 365 dias.",Object(o.b)("br",null),"Por exemplo: Criei um plano de assinatura em 25/09/2017 e defini ",Object(o.b)("b",null,Object(o.b)("code",null,"trial_days: 7"))," \xe9 utilizado para efetuar a quebra de linha.",Object(o.b)("br",null),Object(o.b)("br",null),"Isso significa que o primeiro pagamento ser\xe1 cobrado no dia 02/10/2017, e se for cancelado antes de 02/10/2017, ent\xe3o nada ser\xe1 cobrado.")),Object(o.b)("td",{align:"center"},"N\xe3o"),Object(o.b)("td",{align:"center"},"Integer")))),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(o.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(o.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})))),"Pagamento realizado como Pessoa Jur\xeddica (PJ)")),Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"}," O cliente associado \xe0 assinatura pode ser uma Pessoa Jur\xeddica. Nesse caso, devem ser informados a Raz\xe3o Social e o CNPJ da empresa pagadora dentro do atributo ",Object(o.b)("code",null,"juridical_person"),"."),Object(o.b)("a",{href:"../OutrosRecursos/PessoaJuridica",target:"_blank",title:"Link Interno"},"Pessoa Jur\xeddica")," sobre como gerar uma assinatura (recorr\xeancia) para um cliente que seja Pessoa Jur\xeddica (PJ).")),Object(o.b)("br",null),Object(o.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(o.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})))),"Rela\xe7\xe3o de todos os poss\xedveis status de uma assinatura")),Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},'Todas as assinaturas possuem status, que representam a "situa\xe7\xe3o" dessa assinatura. Portanto, \xe9 importante conhecer os poss\xedveis status na API para fornecer as devidas tratativas em seu sistema.'),Object(o.b)("p",{parentName:"div"},"Confira ",Object(o.b)("a",{href:"../VisaoGeral/statusTransacoes",target:"_blank",title:"Status das Transa\xe7\xf5es"},"neste link")," todos os detalhes dos poss\xedveis status das assinaturas."))),Object(o.b)("br",null),Object(o.b)("div",{className:"admonition admonition-caution alert alert--warning"},Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"}),Object(o.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})))),"Callbacks (notifica\xe7\xf5es) das assinaturas da API para seu sistema")),Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},":class: hyperlinkcolor\nAs notifica\xe7\xf5es permitem que voc\xea seja informado quando uma assinatura tiver seu status alterado. Dessa forma, voc\xea poder\xe1 identificar quando a cobran\xe7a for paga, por exemplo."),Object(o.b)("p",{parentName:"div"},"Confira ",Object(o.b)("a",{href:"../Notificacoes/RecebendoNotificacoes",target:"_blank",title:"Link Interno"},"neste link")," todos os detalhes sobre como implementar a sua URL de notifica\xe7\xe3o."))),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("hr",null),Object(o.b)("h2",{id:"4-outros-endpoints-e-m\xe9todos"},"4. Outros endpoints e m\xe9todos"),Object(o.b)("p",null,"Existem outros endpoints e m\xe9todos relacionados a assinaturas (cobran\xe7a recorrente) que est\xe3o dispon\xedveis na API e podem ser explorados pelo integrador. Confira a rela\xe7\xe3o completa:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#1-listar-os-planos-de-assinatura-existentes"}),"Listar os planos de assinatura existentes"))),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#2-cancelar-plano-de-assinatura"}),"Cancelar plano de assinatura"))),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#3-retornar-informa%C3%A7%C3%B5es-de-assinatura-vinculada-a-um-plano"}),"Retornar informa\xe7\xf5es de assinatura vinculada a um plano"))),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#4-cancelar-assinaturas-ativas-em-um-plano"}),"Cancelar assinaturas ativas em um plano"))),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#5-alterar-url-de-notifica%C3%A7%C3%A3o-notification_url-eou-custom_id-de-assinaturas"}),"Alterar URL de notifica\xe7\xe3o (notification_url) e/ou custom_id de assinaturas"))),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#6-listar-parcelas-de-acordo-com-a-bandeira-do-cart%C3%A3o-de-cr%C3%A9dito"}),"Listar parcelas, de acordo com a bandeira do cart\xe3o de cr\xe9dito"))),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#7-acrescentar-informa%C3%A7%C3%B5es-ao-hist%C3%B3rico-da-assinatura"}),"Acrescentar informa\xe7\xf5es ao hist\xf3rico da assinatura"))),Object(o.b)("li",{parentName:"ul"},Object(o.b)("p",{parentName:"li"},Object(o.b)("a",Object(t.a)({parentName:"p"},{href:"../Assinaturas/EndpointsAssinatura#8-editar-nome-do-plano-de-assinatura"}),"Editar nome do plano de assinatura")))),Object(o.b)("br",null),Object(o.b)("hr",null),Object(o.b)("h2",{id:"5-v\xeddeo-criando-assinaturas-cobran\xe7a-recorrente"},"5. V\xeddeo: Criando Assinaturas (cobran\xe7a recorrente)"),Object(o.b)("p",null,"Pensando em oferecer novos meios de transmitir informa\xe7\xf5es, a Gerencianet disponibiliza o v\xeddeo a seguir com o objetivo de explicar, de maneira clara e objetiva, como criar um plano de assinatura e associar \xe0 forma de pagamento (boleto ou cart\xe3o) para cobrar seu cliente de forma recorrente."),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("h3",{id:"51-criando-assinaturas-cobran\xe7a-recorrente-pela-api-de-integra\xe7\xe3o-gerencianet"},"5.1. Criando assinaturas (cobran\xe7a recorrente) pela API de integra\xe7\xe3o Gerencianet"),Object(o.b)("br",null),Object(o.b)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/xrRUBi6wG2Y",frameborder:"0",allowfullscreen:!0}),Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(o.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})))),"Curso Completo de Integra\xe7\xe3o com a API Gerencianet")),Object(o.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},"Para acesso as demais aulas, de outros assuntos, acesse a p\xe1gina ",Object(o.b)("a",{href:"../CursosIntegracao/CursoOnline",title:"Link Interno"},"Curso Online de Integra\xe7\xf5es"),"."))),Object(o.b)("br",null),Object(o.b)("hr",null),Object(o.b)("h2",{id:"6-pr\xf3ximos-passos"},"6. Pr\xf3ximos Passos"),Object(o.b)("p",null,"Com as assinaturas criadas, \xe9 importante conhecer todos os endpoints que podem ser utilizados. Al\xe9m disso, caso tenha ficado com alguma d\xfavida sobre o mecanismo das assinaturas, veja como ela funciona.")))}m.isMDXComponent=!0},229:function(e,n,a){"use strict";a.d(n,"a",(function(){return d})),a.d(n,"b",(function(){return p}));var t=a(0),r=a.n(t);function o(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function c(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function i(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?c(Object(a),!0).forEach((function(n){o(e,n,a[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(Object(a)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))}))}return e}function b(e,n){if(null==e)return{};var a,t,r=function(e,n){if(null==e)return{};var a,t,r={},o=Object.keys(e);for(t=0;t<o.length;t++)a=o[t],n.indexOf(a)>=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)a=o[t],n.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=r.a.createContext({}),s=function(e){var n=r.a.useContext(l),a=n;return e&&(a="function"==typeof e?e(n):i(i({},n),e)),a},d=function(e){var n=s(e.components);return r.a.createElement(l.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.a.createElement(r.a.Fragment,{},n)}},m=r.a.forwardRef((function(e,n){var a=e.components,t=e.mdxType,o=e.originalType,c=e.parentName,l=b(e,["components","mdxType","originalType","parentName"]),d=s(a),m=t,p=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return a?r.a.createElement(p,i(i({ref:n},l),{},{components:a})):r.a.createElement(p,i({ref:n},l))}));function p(e,n){var a=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var o=a.length,c=new Array(o);c[0]=m;var i={};for(var b in n)hasOwnProperty.call(n,b)&&(i[b]=n[b]);i.originalType=e,i.mdxType="string"==typeof e?e:t,c[1]=i;for(var l=2;l<o;l++)c[l]=a[l];return r.a.createElement.apply(null,c)}return r.a.createElement.apply(null,a)}m.displayName="MDXCreateElement"},233:function(e,n,a){"use strict";function t(e){var n,a,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(n=0;n<e.length;n++)e[n]&&(a=t(e[n]))&&(r&&(r+=" "),r+=a);else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}n.a=function(){for(var e,n,a=0,r="";a<arguments.length;)(e=arguments[a++])&&(n=t(e))&&(r&&(r+=" "),r+=n);return r}},234:function(e,n,a){"use strict";var t=a(0);const r=Object(t.createContext)({tabGroupChoices:{},setTabGroupChoices:()=>{},isAnnouncementBarClosed:!1,closeAnnouncementBar:()=>{}});n.a=r},235:function(e,n,a){"use strict";var t=a(0),r=a(234);n.a=function(){return Object(t.useContext)(r.a)}},236:function(e,n,a){"use strict";var t=a(0),r=a.n(t),o=a(235),c=a(233),i=a(92),b=a.n(i);const l=37,s=39;n.a=function(e){const{block:n,children:a,defaultValue:i,values:d,groupId:u}=e,{tabGroupChoices:m,setTabGroupChoices:p}=Object(o.a)(),[j,O]=Object(t.useState)(i);if(null!=u){const e=m[u];null!=e&&e!==j&&d.some(n=>n.value===e)&&O(e)}const g=e=>{O(e),null!=u&&p(u,e)},h=[];return r.a.createElement("div",null,r.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:Object(c.a)("tabs",{"tabs--block":n})},d.map(({value:e,label:n})=>r.a.createElement("li",{role:"tab",tabIndex:"0","aria-selected":j===e,className:Object(c.a)("tabs__item",b.a.tabItem,{"tabs__item--active":j===e}),key:e,ref:e=>h.push(e),onKeyDown:e=>((e,n,a)=>{switch(a.keyCode){case s:((e,n)=>{const a=e.indexOf(n)+1;e[a]?e[a].focus():e[0].focus()})(e,n);break;case l:((e,n)=>{const a=e.indexOf(n)-1;e[a]?e[a].focus():e[e.length-1].focus()})(e,n)}})(h,e.target,e),onFocus:()=>g(e),onClick:()=>g(e)},n))),r.a.createElement("div",{role:"tabpanel",className:"margin-vert--md"},t.Children.toArray(a).filter(e=>e.props.value===j)[0]))}},237:function(e,n,a){"use strict";var t=a(0),r=a.n(t);n.a=function(e){return r.a.createElement("div",null,e.children)}}}]);