-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path6fa5cdce.b2e984fb.js
1 lines (1 loc) · 116 KB
/
6fa5cdce.b2e984fb.js
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[60,55],{160:function(e,n,t){"use strict";t.r(n),t.d(n,"frontMatter",(function(){return l})),t.d(n,"metadata",(function(){return s})),t.d(n,"Highlight",(function(){return d})),t.d(n,"rightToc",(function(){return u})),t.d(n,"default",(function(){return p}));var a=t(2),o=t(6),r=(t(0),t(229)),c=t(94),b=t(236),i=t(237),l={id:"PagamentoCartao",title:"Pagamento com cart\xe3o",hide_title:!0,sidebar_label:"Pagamento com cart\xe3o"},s={id:"PagamentoCartao/PagamentoCartao",isDocsHomePage:!1,title:"Pagamento com cart\xe3o",description:"Pagamento com cart\xe3o",source:"@site/docs\\PagamentoCartao\\PagamentoCartao.md",permalink:"/docs/PagamentoCartao/PagamentoCartao",sidebar_label:"Pagamento com cart\xe3o",sidebar:"someSidebar",previous:{title:"Outros endpoints",permalink:"/docs/PagamentoBoleto/EndpointsBoletos"},next:{title:"Outros endpoints",permalink:"/docs/PagamentoCartao/EndpointsCartao"}},d=function(e){var n=e.children;e.color;return Object(r.b)("span",{style:{borderRadius:"2px",color:"#009615",padding:"0.2rem"}},n)},u=[{value:"1. Cria\xe7\xe3o de transa\xe7\xe3o por cart\xe3o de cr\xe9dito em <em>One Step</em> (Um passo)",id:"1-cria\xe7\xe3o-de-transa\xe7\xe3o-por-cart\xe3o-de-cr\xe9dito-em-one-step-um-passo",children:[{value:"1.1. Obten\xe7\xe3o do payment_token",id:"11-obten\xe7\xe3o-do-payment_token",children:[]},{value:"a) Obtendo um "payment_token" ( getPaymentToken ):",id:"a-obtendo-um-payment_token--getpaymenttoken-",children:[]},{value:"b) Obtendo informa\xe7\xf5es sobre parcelamentos ( getInstallments ):",id:"b-obtendo-informa\xe7\xf5es-sobre-parcelamentos--getinstallments-",children:[]},{value:"c) Atributos relacionados ao envio de dados do cart\xe3o:",id:"c-atributos-relacionados-ao-envio-de-dados-do-cart\xe3o",children:[]},{value:"1.2. Pagando com cart\xe3o",id:"12-pagando-com-cart\xe3o",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. Cria\xe7\xe3o de transa\xe7\xe3o por cart\xe3o de cr\xe9dito em Two Steps (Dois passos)",id:"2-cria\xe7\xe3o-de-transa\xe7\xe3o-por-cart\xe3o-de-cr\xe9dito-em-two-steps-dois-passos",children:[{value:"2.1. Criar transa\xe7\xe3o",id:"21-criar-transa\xe7\xe3o",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 criar uma transa\xe7\xe3o:",id:"b-atributos-que-podem-ser-utilizados-para-criar-uma-transa\xe7\xe3o-1",children:[]},{value:"2.2. Associe \xe0 forma de pagamento via cart\xe3o",id:"22-associe-\xe0-forma-de-pagamento-via-cart\xe3o",children:[]},{value:"2.3. Obten\xe7\xe3o do payment_token",id:"23-obten\xe7\xe3o-do-payment_token",children:[]},{value:"a) Obtendo um "payment_token" ( getPaymentToken ):",id:"a-obtendo-um-payment_token--getpaymenttoken--1",children:[]},{value:"b) Obtendo informa\xe7\xf5es sobre parcelamentos ( getInstallments ):",id:"b-obtendo-informa\xe7\xf5es-sobre-parcelamentos--getinstallments--1",children:[]},{value:"c) Atributos relacionados ao envio de dados do cart\xe3o:",id:"c-atributos-relacionados-ao-envio-de-dados-do-cart\xe3o-1",children:[]},{value:"2.4. Pagando com cart\xe3o",id:"24-pagando-com-cart\xe3o",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 relacionados ao pagamento com cart\xe3o de cr\xe9dito:",id:"b-atributos-relacionados-ao-pagamento-com-cart\xe3o-de-cr\xe9dito",children:[]}]},{value:"3. Outros endpoints",id:"3-outros-endpoints",children:[]},{value:"4. V\xeddeos: Criando transa\xe7\xe3o e pagando via cart\xe3o de cr\xe9dito",id:"4-v\xeddeos-criando-transa\xe7\xe3o-e-pagando-via-cart\xe3o-de-cr\xe9dito",children:[{value:"4.1. Criando transa\xe7\xe3o via Playground (ambiente de testes/sandbox)",id:"41-criando-transa\xe7\xe3o-via-playground-ambiente-de-testessandbox",children:[]},{value:"4.2. Definindo m\xe9todo de pagamento por Cart\xe3o de Cr\xe9dito (via Playground)",id:"42-definindo-m\xe9todo-de-pagamento-por-cart\xe3o-de-cr\xe9dito-via-playground",children:[]},{value:"4.3. Criando uma transa\xe7\xe3o por integra\xe7\xe3o - Pagamento por Cart\xe3o de Cr\xe9dito",id:"43-criando-uma-transa\xe7\xe3o-por-integra\xe7\xe3o---pagamento-por-cart\xe3o-de-cr\xe9dito",children:[]}]},{value:"5. Pr\xf3ximos Passos",id:"5-pr\xf3ximos-passos",children:[]}],m={Highlight:d,rightToc:u};function p(e){var n=e.components,t=Object(o.a)(e,["components"]);return Object(r.b)("wrapper",Object(a.a)({},m,t,{components:n,mdxType:"MDXLayout"}),Object(r.b)("h1",{className:"titulo"},"Pagamento com cart\xe3o"),Object(r.b)("div",{className:"subtitulo"},Object(r.b)("p",null,"Atualmente disponibilizamos dois procedimentos para a cria\xe7\xe3o de uma transa\xe7\xe3o do tipo cart\xe3o de cr\xe9dito, na primeira delas o titulo \xe9 criado em um passo \xfanico, assim fora convencionado como ",Object(r.b)("em",{parentName:"p"},"One Step"),". A segunda op\xe7\xe3o de cria\xe7\xe3o da transa\xe7\xe3o se da em dois passos, sendo assim convencionada como ",Object(r.b)("em",{parentName:"p"},"Two Steps"),". Ambos os fluxos est\xe3o detalhados a seguir:"),Object(r.b)("ol",null,Object(r.b)("li",{parentName:"ol"},Object(r.b)("p",{parentName:"li"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"#1-cria%C3%A7%C3%A3o-de-transa%C3%A7%C3%A3o-por-cart%C3%A3o-de-cr%C3%A9dito-em-one-step-um-passo"}),"Criando a transa\xe7\xe3o em ",Object(r.b)("em",{parentName:"a"},"One Step")," (Um passo)"),".")),Object(r.b)("li",{parentName:"ol"},Object(r.b)("p",{parentName:"li"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"#2-cria%C3%A7%C3%A3o-de-transa%C3%A7%C3%A3o-por-cart%C3%A3o-de-cr%C3%A9dito-em-two-steps-dois-passos"}),"Criando a transa\xe7\xe3o em ",Object(r.b)("em",{parentName:"a"},"Two Steps")," (Dois passos)"),"."))),Object(r.b)("h2",{id:"1-cria\xe7\xe3o-de-transa\xe7\xe3o-por-cart\xe3o-de-cr\xe9dito-em-one-step-um-passo"},"1. Cria\xe7\xe3o de transa\xe7\xe3o por cart\xe3o de cr\xe9dito em ",Object(r.b)("em",{parentName:"h2"},"One Step")," (Um passo)"),Object(r.b)("div",{className:"admonition admonition-important alert alert--info"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"importante")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Para que a cria\xe7\xe3o de transa\xe7\xf5es via ",Object(r.b)("em",{parentName:"p"},"One Step")," ocorra normalmente \xe9 necess\xe1rio atualizar sua SDK. Todos os arquivos necess\xe1rios para tal est\xe3o dispon\xedveis atrav\xe9s atrav\xe9s de nosso ",Object(r.b)("a",{href:"https://github.com/gerencianet"},"reposit\xf3rio")," e em nossa documenta\xe7\xe3o."))),Object(r.b)("p",null,"No caso de transa\xe7\xf5es com cart\xe3o de cr\xe9dito, ser\xe1 realizada uma etapa anterior a cria\xe7\xe3o onde ocorre a transmiss\xe3o (",Object(r.b)("strong",{parentName:"p"},"via JavaScript"),", no browser), de forma segura, dos dados do cart\xe3o e retornando um ",Object(r.b)("code",null,"payment_token"),", e na segunda etapa seu ",Object(r.b)("em",{parentName:"p"},"backend")," envia o restante das informa\xe7\xf5es da transa\xe7\xe3o e o ",Object(r.b)("code",null,"payment_token")," obtido na primeira etapa."),Object(r.b)("div",{className:"admonition admonition-important alert alert--info"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"importante")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"\xc9 importante frisar que ",Object(r.b)("strong",{parentName:"p"},"n\xe3o \xe9 poss\xedvel efetuar pagamento com cart\xe3o de cr\xe9dito sem obter o")," ",Object(r.b)("inlineCode",{parentName:"p"},"payment_token")," da transa\xe7\xe3o, por isso, \xe9 imprescind\xedvel a realiza\xe7\xe3o dos procedimentos do ",Object(r.b)("br",null),Object(r.b)("inlineCode",{parentName:"p"},"item 1.1")," deste documento (obter o ",Object(r.b)("inlineCode",{parentName:"p"},"payment_token"),"), e ",Object(r.b)("strong",{parentName:"p"},"s\xf3 depois")," passar para o item 1.2 (que \xe9 de fato o pagamento com cart\xe3o)."))),Object(r.b)("h3",{id:"11-obten\xe7\xe3o-do-payment_token"},"1.1. Obten\xe7\xe3o do payment_token"),Object(r.b)("p",null,"Inicialmente, vamos realizar a primeira etapa, que \xe9 a obten\xe7\xe3o do ",Object(r.b)("code",null,"payment_token"),". Para tal, voc\xea necessitar\xe1 de um c\xf3digo JavaScript espec\xedfico de sua conta Gerencianet. Para ger\xe1-lo, siga os passos:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",{href:"https://usuario.gerencianet.com.br/login",target:"_blank"},"Efetue login")," em sua conta Gerencianet e acesse ",Object(r.b)("code",null,"Minha Conta")," (canto superior direito)"),Object(r.b)("li",{parentName:"ul"},"Copie seu ",Object(r.b)("code",null,"Identificador de Conta")," (",Object(r.b)("a",{href:"https://s3.amazonaws.com/gerencianet-pub-prod-1/printscreen/2020/07/24/matheus.rodrigues/b66b15-d2201967-d646-4988-8e39-cffae37df203.png",target:"_blank"},"veja onde"),")"),Object(r.b)("li",{parentName:"ul"},"Cole no campo abaixo e clique no bot\xe3o ",Object(r.b)("inlineCode",{parentName:"li"},"Gerar"))),Object(r.b)(c.default,{mdxType:"AccountIdentifier"}),Object(r.b)("br",null),Object(r.b)("p",null,"\xc9 importante frisar que \xe9 obtido via ",Object(r.b)("strong",{parentName:"p"},"JavaScript"),", no browser, de forma segura, os dados do cart\xe3o e retorna um ",Object(r.b)("inlineCode",{parentName:"p"},"payment_token"),", que \xe9 a representa\xe7\xe3o dos dados enviados."),Object(r.b)("div",{className:"admonition admonition-important alert alert--info"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"importante")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Lembre-se que, ap\xf3s informar seu identificador de conta, ser\xe3o gerados 2 (dois) c\xf3digos JavaScript distintos."),Object(r.b)("p",{parentName:"div"},"Copie e utilize o c\xf3digo referente ao ambiente desejado, atentando-se \xe0s diferen\xe7as do ambiente de ",Object(r.b)("em",{parentName:"p"},'"Desenvolvimento"')," e ",Object(r.b)("em",{parentName:"p"},'"Produ\xe7\xe3o"'),"."))),Object(r.b)("p",null,"Para aplica\xe7\xf5es web, voc\xea deve copiar o script acima, espec\xedfico da sua conta, e utilizar a nossa biblioteca Javascript, conforme o ",Object(r.b)("em",{parentName:"p"},"snippet")," abaixo. Se voc\xea possui um app mobile, confira como proceder acessando nossa p\xe1gina no GitHub para ",Object(r.b)("a",{href:"https://github.com/gerencianet/gn-api-sdk-android",target:"_blank"},"Android")," e/ou ",Object(r.b)("a",{href:"https://github.com/gerencianet/gn-api-sdk-ios",target:"_blank"},"iOS"),"."),Object(r.b)("p",null,"Adicionalmente, esclarecemos que uma conta Gerencianet n\xe3o possui um ",Object(r.b)("code",null,"payment_token")," - ele \xe9 diferente e criado para cada cobran\xe7a gerada por cart\xe3o de cr\xe9dito. Ele representa os dados do cart\xe3o do pagador e \xe9 obtido pela fun\xe7\xe3o ",Object(r.b)("code",null,"getPaymentToken"),". Al\xe9m disso, cabe frisar que o ",Object(r.b)("code",null,"payment_token")," pode ser utilizado uma \xfanica vez, portanto, n\xe3o \xe9 poss\xedvel utiliz\xe1-lo para cobrar de forma recorrente."),Object(r.b)("br",null),Object(r.b)("h3",{id:"a-obtendo-um-payment_token--getpaymenttoken-"},'a) Obtendo um "payment_token" ( getPaymentToken ):'),Object(r.b)(b.a,{defaultValue:"code",values:[{label:"C\xf3digo",value:"code"}],mdxType:"Tabs"},Object(r.b)(i.a,{value:"code",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"$gn.ready(function(checkout) {\n \n var callback = function(error, response) {\n if(error) {\n // Trata o erro ocorrido\n console.error(error);\n } else {\n // Trata a resposta\n console.log(response);\n }\n };\n \n checkout.getPaymentToken({\n brand: 'visa', // bandeira do cart\xe3o\n number: '4012001038443335', // n\xfamero do cart\xe3o\n cvv: '123', // c\xf3digo de seguran\xe7a\n expiration_month: '05', // m\xeas de vencimento\n expiration_year: '2021' // ano de vencimento\n }, callback);\n \n});\n")))),Object(r.b)("br",null),Object(r.b)("h3",{id:"b-obtendo-informa\xe7\xf5es-sobre-parcelamentos--getinstallments-"},"b) Obtendo informa\xe7\xf5es sobre parcelamentos ( getInstallments ):"),Object(r.b)(b.a,{defaultValue:"code",values:[{label:"C\xf3digo",value:"code"}],mdxType:"Tabs"},Object(r.b)(i.a,{value:"code",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"$gn.ready(function(checkout){\n \n checkout.getInstallments(50000,'visa', function(error, response){\n if(error) {\n // Trata o erro ocorrido\n console.log(error);\n } else {\n // Insere o parcelamento no site\n }\n });\n \n});\n")))),Object(r.b)("br",null),Object(r.b)("h3",{id:"c-atributos-relacionados-ao-envio-de-dados-do-cart\xe3o"},"c) Atributos relacionados ao envio de dados do cart\xe3o:"),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"$gn.ready ( callback )")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Par\xe2metro"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"callback")),Object(r.b)("td",{align:"left"},"Fun\xe7\xe3o de inicializa\xe7\xe3o que possibilita a chamada das fun\xe7\xf5es ",Object(r.b)("em",null,"getPaymentToken")," e ",Object(r.b)("em",null,"getInstallments"),". ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Par\xe2metro(s) de callback:"),Object(r.b)("br",null),Object(r.b)("code",null,"object"),"// Objeto que recebe as inst\xe2ncias das outras fun\xe7\xf5es."),Object(r.b)("td",{align:"center"},"Function")))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"getPaymentToken ( card_data, callback )")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Par\xe2metro"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"card_data")),Object(r.b)("td",{align:"left"},"Objeto que cont\xe9m os dados do cart\xe3o. ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"As propriedades desse objeto s\xe3o:"),Object(r.b)("br",null),Object(r.b)("code",null,"brand"),"// Bandeira do cart\xe3o ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"number"),"// N\xfamero do cart\xe3o sem formata\xe7\xe3o",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"cvv"),"// C\xf3digo de seguran\xe7a do cart\xe3o ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"expiration_month"),'// M\xeas de expira\xe7\xe3o do cart\xe3o no formato "MM"',Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"expiration_year"),'// Ano de expira\xe7\xe3o do cart\xe3o no formato "YYYY"'),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"callback")),Object(r.b)("td",{align:"left"},"Fun\xe7\xe3o que recebe a resposta da Gerencianet.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Par\xe2metro(s) de callback:"),Object(r.b)("br",null),Object(r.b)("code",null,"error"),"// Se n\xe3o foi poss\xedvel gerar o payment_token, os erros ser\xe3o retornados neste par\xe2metro. ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"response"),"// Recebe os dados que representam o cart\xe3o de cr\xe9dito: payment_token e card_mask",Object(r.b)("br",null),Object(r.b)("br",null)),Object(r.b)("td",{align:"center"},"Function")))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"getInstallments ( total, brand, callback )")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Par\xe2metro"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"total")),Object(r.b)("td",{align:"left"},"Valor total da cobran\xe7a, incluindo fretes, em centavos.",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Por exemplo: R$ 230,90 equivale a 23090.")),Object(r.b)("td",{align:"center"},"Integer")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"brand")),Object(r.b)("td",{align:"left"},"Bandeira do cart\xe3o que deseja-se obter os valores de parcelas.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Poss\xedveis valores:"),Object(r.b)("br",null),Object(r.b)("code",null,"visa"),"// Bandeira Visa",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"mastercard"),"// Bandeira MasterCard",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"amex"),"// Bandeira AmericanExpress",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"elo"),"// Bandeira Elo",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"hipercard"),"// Bandeira Hipercard"),Object(r.b)("td",{align:"center"},"String")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"callback")),Object(r.b)("td",{align:"left"},"Fun\xe7\xe3o que recebe a resposta da Gerencianet.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Par\xe2metro(s) de callback:"),Object(r.b)("br",null),Object(r.b)("code",null,"error"),"// Se n\xe3o foi poss\xedvel obter dados sobre o pagamento, os erros ser\xe3o retornados neste par\xe2metro.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"response"),"// Recebe os dados relacionados ao tipo de pagamento consultado."),Object(r.b)("td",{align:"center"},"Function")))),Object(r.b)("br",null),Object(r.b)("h3",{id:"12-pagando-com-cart\xe3o"},"1.2. Pagando com cart\xe3o"),Object(r.b)("p",null,"Agora que o ",Object(r.b)("code",null,"payment_token")," j\xe1 foi obtido atrav\xe9s do c\xf3digo Javascript da primeira etapa, vamos prosseguir com o pagamento com cart\xe3o de cr\xe9dito."),Object(r.b)("p",null,"Nesta etapa, seu ",Object(r.b)("em",{parentName:"p"},"backend")," envia o restante das informa\xe7\xf5es da transa\xe7\xe3o e o ",Object(r.b)("code",null,"payment_token")," obtido na primeira etapa."),Object(r.b)("p",null,"Ao pagar uma transa\xe7\xe3o por cart\xe3o de cr\xe9dito, o status \xe9 alterado de ",Object(r.b)("code",null,"new")," para ",Object(r.b)("code",null,"waiting"),". Isso significa que a transa\xe7\xe3o est\xe1 associada a uma forma de pagamento e que est\xe1 aguardando a confirma\xe7\xe3o do pagamento."),Object(r.b)("p",null,"Assim que o pagamento for confirmado, a transa\xe7\xe3o ter\xe1 o status alterado de ",Object(r.b)("code",null,"waiting")," para ",Object(r.b)("code",null,"paid"),". Mas, se por alguma raz\xe3o n\xe3o for poss\xedvel confirmar o pagamento, o status ser\xe1 alterado para ",Object(r.b)("code",null,"unpaid"),"."),Object(r.b)("p",null,"O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's dispon\xedveis:"),Object(r.b)(b.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(r.b)(i.a,{value:"php",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-php"}),"<?php\n\nrequire __DIR__.'/../../autoload.php'; //Caminho da 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$paymentToken = 'InsiraAquiUmPayeementeCode'; // payment_token obtido na 1\xaa etapa (atrav\xe9s do Javascript \xfanico por conta Gerencianet)\n\n$item_1 = [\n 'name' => 'Item 1', // nome do item, produto ou servi\xe7o\n 'amount' => 1, // quantidade\n 'value' => 3000 // 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$items = [\n $item_1\n];\n$metadata = array('notification_url'=>'https://SuaUrl/16rpx6y1');\n$customer = [\n 'name' => 'Gorbadoc Oldbuck', // nome do cliente\n 'cpf' => '04267484171', // cpf do cliente\n 'phone_number' => '5144916523', // telefone do cliente\n 'email' => 'oldbuck@gerencianet.com.br', // endere\xe7o de email do cliente\n 'birth' => '1977-01-15' // data de nascimento do cliente\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$discount = [\n 'type' => 'currency',\n 'value' => 599\n];\n$configurations = [\n 'fine' => 200,\n 'interest' => 33\n];\n$credit_card = [\n 'customer' => $customer,\n 'installments' => 1, // n\xfamero de parcelas em que o pagamento deve ser dividido\n 'discount' =>$discount,\n 'billing_address' => $billingAddress,\n 'payment_token' => $paymentToken,\n 'message' => 'teste\\nteste\\nteste\\nteste'\n];\n$payment = [\n 'credit_card' => $credit_card // forma de pagamento (credit_card = cart\xe3o)\n];\n$body = [\n 'items' => $items,\n 'metadata' =>$metadata,\n 'payment' => $payment\n];\ntry {\n $api = new Gerencianet($options);\n $pay_charge = $api->oneStep([],$body);\n echo '<pre>';\n print_r($pay_charge);\n echo '<pre>';\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(r.b)(i.a,{value:"python",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"# encoding: utf-8\n\u200b\nfrom gerencianet import Gerencianet\nfrom credentials import CREDENTIALS\n\u200b\ngn = Gerencianet(CREDENTIALS)\n\u200b\nbody = {\n 'items': [{\n 'name': \"Product 1\",\n 'value': 1000,\n 'amount': 2\n }],\n 'shippings': [{\n 'name': \"Default Shipping Cost\",\n 'value': 100\n }],\n 'payment': {\n 'credit_card': {\n 'installments': 1,\n 'payment_token': \"5cffb658d047093b3fbdf7eff8c434c3d26a4bd1\",\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': \"oldbuck@gerencianet.com.br\",\n 'cpf': \"94271564656\",\n 'birth': \"1977-01-15\",\n 'phone_number': \"5144916523\"\n }\n }\n }\n}\n\u200b\nresponse = gn.create_charge_onestep(params=None, body=body)\nprint(response)\n"))),Object(r.b)(i.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"'use strict';\n\u200b\nvar Gerencianet = require('gn-api-sdk-node');\nvar credentials = require('./credentials');\n\u200b\nvar options = {\n client_id: credentials.client_id,\n client_secret: credentials.client_secret,\n sandbox: true\n}\n\u200b\nvar body = {\n\u200b\n payment: {\n credit_card: {\n installments: 1,\n payment_token: '83d52dbd590d9ebc991938c711ddd31f65df89a5',\n billing_address: {\n street: 'Street 3',\n number: 10,\n neighborhood: 'Bauxita',\n zipcode: '35400000',\n city: 'Ouro Preto',\n state: 'MG'\n },\n customer: {\n name: 'Gorbadoc Oldbuck',\n email: 'oldbuck@gerencianet.com.br',\n cpf: '94271564656',\n birth: '1977-01-15',\n phone_number: '5144916523'\n }\n }\n },\n\u200b\n items: [{\n name: 'Product 1',\n value: 1000,\n amount: 2\n }],\n shippings: [{\n name: 'Default Shipping Cost',\n value: 100\n }]\n}\n\u200b\nvar gerencianet = new Gerencianet(options);\n\u200b\ngerencianet\n .oneStep([], body)\n .then(console.log)\n .catch(console.log)\n .done();\n"))),Object(r.b)(i.a,{value:"c",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'using System;\n\nnamespace Gerencianet.SDK.Examples\n{\n class OneStep\n {\n public static void Execute()\n {\n dynamic endpoints = new Endpoints(Credentials.Default.ClientId, Credentials.Default.ClientSecret, Credentials.Default.Sandbox);\n\n var body = new\n {\n items = new[] {\n new {\n name = "Product 1",\n value = 590,\n amount = 2\n }\n },\n shippings = new[] {\n new {\n name = "Default Shipping Cost",\n value = 10\n }\n },\n payment = new\n {\n credit_card = new\n {\n installments = 1,\n payment_token = "7d0a3fe0f0c9caab4f3b6578317a9d7e8ed6303f",\n billing_address = new\n {\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 {\n name = "Gorbadoc Oldbuck",\n email = "oldbuck@gerencianet.com.br",\n cpf = "04267484171",\n birth = "1977-01-15",\n phone_number = "5144916523"\n }\n }\n }\n };\n\n try\n {\n var response = endpoints.OneStep(null, 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'))),Object(r.b)(i.a,{value:"java",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-java"}),'package br.com.gerencianet.charge.json;\n\nimport java.util.HashMap;\n\nimport org.json.JSONArray;\nimport org.json.JSONObject;\n\nimport br.com.gerencianet.Credentials;\nimport br.com.gerencianet.gnsdk.Gerencianet;\nimport br.com.gerencianet.gnsdk.exceptions.GerencianetException;\n\npublic class OneStepCard {\n public static void main(String[] args) {\n /* ********* Set credentials parameters ******** */\n Credentials credentials = new Credentials();\n JSONObject options = new JSONObject();\n options.put("client_id", credentials.getClientId());\n options.put("client_secret", credentials.getClientSecret());\n //options.put("partner_token", credentials.getPartnerToken());\n options.put("sandbox", credentials.isSandbox());\n /* ************************************************* */ \n \n String paymentToken = "32add25a335ff3f588e42055486b3156253b7b75";\n \n // items\n JSONArray items = new JSONArray();\n JSONObject item1 = new JSONObject();\n item1.put("name", "Item 1");\n item1.put("amount", 1);\n item1.put("value", 600);\n JSONObject item2 = new JSONObject("{\\"name\\":\\"Item 2\\", \\"amount\\":1, \\"value\\":1000}");\n items.put(item1);\n items.put(item2);\n \n //customer\n JSONObject customer = new JSONObject();\n customer.put("name", "Gorbadoc Oldbuck");\n customer.put("cpf", "94271564656");\n customer.put("phone_number", "5144916523");\n customer.put("email", "gorbadoc.oldbuck@gerencianet.com.br");\n customer.put("birth", "1990-05-04");\n \n // endere\xe7o do comprador\n JSONObject billingAddress = new JSONObject();\n billingAddress.put("street", "Av. JK");\n billingAddress.put("number", 909);\n billingAddress.put("neighborhood", "Bauxita");\n billingAddress.put("zipcode", "35400000");\n billingAddress.put("city", "Ouro Preto");\n billingAddress.put("state", "MG");\n \n //URL de notifica\xe7\xf5es\n JSONObject metadata = new JSONObject();\n metadata.put("notification_url", "https://SuaUrl/16rpx6y1");\n metadata.put("custom_id", "Id_0007");\n \n //desconto \n JSONObject discount = new JSONObject();\n discount.put("type","currency");\n discount.put("value",599);\n \n \n JSONObject creditCard = new JSONObject();\n creditCard.put("installments", 1);\n creditCard.put("billing_address", billingAddress);\n creditCard.put("payment_token", paymentToken);\n creditCard.put("customer", customer);\n creditCard.put("discount", discount);\n\n JSONObject payment = new JSONObject();\n payment.put("credit_card", creditCard);\n\n JSONObject body = new JSONObject();\n body.put("payment", payment);\n body.put("items", items);\n body.put("metadata", metadata);\n \n try {\n Gerencianet gn = new Gerencianet(options);\n JSONObject response = gn.call("oneStep", new HashMap<String,String>(), body);\n System.out.println(response);\n }catch (GerencianetException e){\n System.out.println(e.getCode());\n System.out.println(e.getError());\n System.out.println(e.getErrorDescription());\n }\n catch (Exception e) {\n System.out.println(e.getMessage());\n }\n }\n}\n'))),Object(r.b)(i.a,{value:"go",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-go"}),'package main\n\u200b\nimport (\n "fmt"\n "github.com/dmalberto/gn-api-sdk-go/gerencianet"\n "../configs"\n)\n\u200b\nfunc main(){\n \n credentials := configs.Credentials\n gn := gerencianet.NewGerencianet(credentials)\n\u200b\n paymentToken := "428d7f3b2dc49117552ace464078557832c4ae4f";\n\u200b\n customer := map[string]interface{}{\n "name": "Gorbadoc Oldbuck",\n "cpf": "04267484171",\n "phone_number": "51944916523",\n "email": "gorb.oldbuck@gerencianet.com.br",\n "birth": "1977-01-15",\n }\n\u200b\n billingAddress := map[string]interface{} {\n "street": "Av JK",\n "number": 909,\n "neighborhood": "Bauxita",\n "zipcode": "35400000",\n "city": "Ouro Preto",\n "state": "MG",\n }\n\u200b\n body := map[string]interface{} {\n "payment": map[string]interface{} {\n "credit_card": map[string]interface{} {\n "installments": 1,\n "billing_address": billingAddress,\n "payment_token": paymentToken,\n "customer": customer,\n },\n },\n "items": []map[string]interface{}{\n {\n "name": "Product 1",\n "value": 1000,\n "amount": 2,\n },\n },\n "shippings": []map[string]interface{} {\n {\n "name": "Default Shipping Cost",\n "value": 100,\n },\n },\n }\n\u200b\n res, err := gn.CreateChargeOneStep(body) // no lugar do 1 coloque o charge_id certo\n\u200b\n if err != nil {\n fmt.Println(err)\n } else {\n fmt.Println(res)\n }\n}\n'))),Object(r.b)(i.a,{value:"ruby",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'require "gerencianet"\nrequire_relative "./credentials"\n\u200b\noptions = {\n client_id: CREDENTIALS::CLIENT_ID,\n client_secret: CREDENTIALS::CLIENT_SECRET,\n sandbox: true\n}\n\u200b\nbody = {\n items: [{\n name: "Product 1",\n value: 1000,\n amount: 2\n }],\n shippings: [{\n name: "Default Shipping Cost",\n value: 100\n }],\n payment: {\n credit_card: {\n installments: 1,\n payment_token: "6426f3abd8688639c6772963669bbb8e0eb3c319",\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: "oldbuck@gerencianet.com.br",\n cpf: "94271564656",\n birth: "1977-01-15",\n phone_number: "5144916523"\n }\n }\n }\n}\n\u200b\ngerencianet = Gerencianet.new(options)\nputs gerencianet.create_charge_onestep(body: body)\n'))),Object(r.b)(i.a,{value:"delphi",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),"interface\n\nfunction PayOneStepWithCard: String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nvar\n Body: String;\nbegin\n Body :=\n '{'+\n '\"items\": ['+\n '{'+\n '\"name\": \"Product 1\",'+\n '\"value\": 590,'+\n '\"amount\": 2'+\n '}'+\n '],'+\n '\"shippings\": ['+\n '{'+\n '\"name\": \"Default Shipping Cost\",'+\n '\"value\": 10'+\n '}'+\n '],'+\n '\"payment\": {'+\n '\"credit_card\": {'+\n '\"installments\": 1,'+\n '\"payment_token\": \"InsiraAquiOPayment_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 '\"customer\": {'+\n '\"name\": \"Gorbadoc Oldbuck\",'+\n '\"email\": \"oldbuck@gerencianet.com.br\",'+\n '\"cpf\": \"04267484171\",'+\n '\"birth\": \"1977-01-15\",'+\n '\"phone_number\": \"5144916523\"'+\n '}'+\n '}'+\n '}'+\n '}';\n Result := ExecuteGerenciaNetRequest( 'payOneStep','','',Body );\n")))),Object(r.b)("br",null),Object(r.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(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),'"items"\n "name"\n "value"\n "amount"\n "marketplace"\n "payee_code"\n "percentage"\n"shippings"\n "name"\n "value"\n "payee_code"\n"metadata"\n "custom_id"\n "notification_url"\n"payment"\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 "installments"\n "discount"\n "type"\n "percentage",\n "currency"\n "value"\n "billing_address"\n "street"\n "number"\n "neighborhood"\n "zipcode"\n "city"\n "complement"\n "state"\n "payment_token"\n "message"\n')),Object(r.b)("br",null),Object(r.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(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"items")),Object(r.b)("td",{align:"left"},"item que est\xe1 sendo vendido. Uma mesma transa\xe7\xe3o pode possuir ilimitados itens. ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de items:"),Object(r.b)("br",null),Object(r.b)("code",null,"name*"),"// Nome do item, produto ou servi\xe7o. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String)."),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"value*"),"// Valor, em centavos. Ex: R$ 10,00 = 1000. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Integer"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"amount"),"// Quantidade. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Integer")),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Array")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"shippings")),Object(r.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(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de shippings:"),Object(r.b)("br",null),Object(r.b)("code",null,"name*"),"// R\xf3tulo do frete. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String."),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"value*"),"// Valor do frete, em centavos (1990 equivale a R$19,90). ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Integer")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Array")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"metadata")),Object(r.b)("td",{align:"left"},"Define dados espec\xedficos da transa\xe7\xe3o",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de metadata:"),Object(r.b)("br",null),Object(r.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(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String/null."),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.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(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String/null.")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Object")))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Objeto")," ",Object(r.b)("strong",{parentName:"p"},"Payment")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"credit_card")),Object(r.b)("td",{align:"left"},"Objeto contendo as informa\xe7\xf5es necess\xe1rias para o pagamento via cart\xe3o de cr\xe9dito, como por exemplo, o n\xfamero de parcelas e os dados do cliente."),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Objeto ",Object(r.b)("b",null,"Credit_Card"))))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Objeto")," ",Object(r.b)("strong",{parentName:"p"},"Credit_Card")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"customer")),Object(r.b)("td",{align:"left"},"Dados pessoais do pagador.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de customer:"),Object(r.b)("br",null),Object(r.b)("code",null,"name*")," // Nome ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"cpf*")," // CPF do cliente (sem pontos, v\xedrgulas ou h\xedfen).",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"email*")," // Endere\xe7o de email v\xe1lido do cliente. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"phone_number*")," // Telefone v\xe1lido do cliente, sem caracteres especiais. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"birth*")," // Data de Nascimento do cliente (data v\xe1lida em formato YYYY-MM-DD). ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"address")," // Endere\xe7o de Entrega. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)")," (mais informa\xe7\xf5es)",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"juridical_person")," // Dados de pessoa jur\xeddica. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)")," (mais informa\xe7\xf5es)"),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"installments")),Object(r.b)("td",{align:"left"},"N\xfamero de parcelas em que o pagamento deve ser dividido.",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xednimo 1 e m\xe1ximo 12. Integer.")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Integer")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"discount")),Object(r.b)("td",{align:"left"},"Define dados de desconto sobre a cobran\xe7a.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de discount:"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"type*"),"// Tipo do desconto (String). Valores permitidos: ",Object(r.b)("br",null),Object(r.b)("code",null,"currency"),": o desconto ser\xe1 informado em centavos. ",Object(r.b)("code",null,"percentage"),": o desconto ser\xe1 informado em porcentagem.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"cnpj*"),"// CNPJ da empresa. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Tamanho: 14 caracteres. String."),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"value*"),"// Valor do desconto (Integer). Se o tipo do desconto for ",Object(r.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(r.b)("code",null,"percentage"),", o valor dever\xe1 ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos: ",Object(r.b)("br",null),"1)",Object(r.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(r.b)("code",null,"599"),";",Object(r.b)("br",null)," 2)",Object(r.b)("code",null,"percentage")," // deve ser informado em centavos, ou seja, se o desconto \xe9 de 15%, o integrador deve informar ",Object(r.b)("code",null,"1500"),".",Object(r.b)("br",null),Object(r.b)("br",null)),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"billing_address")),Object(r.b)("td",{align:"left"},"Endere\xe7o de cobran\xe7a (mais informa\xe7\xf5es)",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de billing_address:"),Object(r.b)("br",null),Object(r.b)("code",null,"street*"),"// Nome da rua ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"number*"),"// N\xfamero ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String/Integer)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"neighborhood*"),"// Bairro ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"zipcode*"),"// CEP (sem pontos ou h\xedfen) ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"city*"),"// Cidade ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"complement"),"// Complemento ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String/null)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"state*"),"// Estado (2 caracteres) ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"payment_token")),Object(r.b)("td",{align:"left"},"Token \xfanico de pagamento obtido na primeira etapa da gera\xe7\xe3o da transa\xe7\xe3o."),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"String")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"message")),Object(r.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(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"At\xe9 4 linhas contendo 100 caracteres em cada linha. String. ",Object(r.b)("br",null),"O operador ",Object(r.b)("code",null,"\\n"),"\xe9 utilizado para efetuar a quebra de linha.")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"String")))),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(r.b)("br",null),Object(r.b)("h2",{id:"2-cria\xe7\xe3o-de-transa\xe7\xe3o-por-cart\xe3o-de-cr\xe9dito-em-two-steps-dois-passos"},"2. Cria\xe7\xe3o de transa\xe7\xe3o por cart\xe3o de cr\xe9dito em Two Steps (Dois passos)"),Object(r.b)("p",null,"Nesta op\xe7\xe3o \xe9 necess\xe1rio que o ",Object(r.b)("em",{parentName:"p"},"body")," da requisi\xe7\xe3o contenha todos os atributos m\xednimos obrigat\xf3rios para a emiss\xe3o do titulo.\nAbaixo temos os exemplos de implementa\xe7\xe3o utilizando as SDK's dispon\xedveis:"),Object(r.b)("p",null,"2.1. ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"#21-criar-transa%C3%A7%C3%A3o"}),"Crie a transa\xe7\xe3o"),", informando o item/produto/servi\xe7o, valor, quantidade, etc;"),Object(r.b)("p",null,"2.2. ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"#22-associe-%C3%A0-forma-de-pagamento-via-cart%C3%A3o"}),"Associe \xe0 forma de pagamento via cart\xe3o"),", informando o ",Object(r.b)("code",null,"charge_id")," da transa\xe7\xe3o criada e os dados do cliente;"),Object(r.b)("p",null," 2.3. ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"#23-obten%C3%A7%C3%A3o-do-payment_token"}),"Obten\xe7\xe3o do payment_token")," (via JavaScript, \xfanico por transa\xe7\xe3o);"),Object(r.b)("p",null," 2.4. ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"#24-pagando-com-cart%C3%A3o"}),"Pagando com cart\xe3o"),"."),Object(r.b)("p",null,"Por se tratar de pagamento via cart\xe3o e envolver dados sens\xedveis, como dados do cart\xe3o de cr\xe9dito, os procedimentos descritos nos itens 3.1 e 3.2, ou seja, obten\xe7\xe3o do ",Object(r.b)("code",null,"payment_token")," e pagando com cart\xe3o, respectivamente, ",Object(r.b)("strong",{parentName:"p"},"s\xe3o necess\xe1rios"),"."),Object(r.b)("p",null,"O restante desta p\xe1gina apresenta os procedimentos detalhados, mas voc\xea precisa instalar uma de nossas bibliotecas em seu servidor para executar os c\xf3digos de exemplo. ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../Instalacao/introducao"}),"Certifique-se de que a SDK da Gerencianet foi instalada"),"."),Object(r.b)("hr",null),Object(r.b)("h3",{id:"21-criar-transa\xe7\xe3o"},"2.1. Criar transa\xe7\xe3o"),Object(r.b)("p",null,'Primeiramente, precisamos gerar a transa\xe7\xe3o (tamb\xe9m chamada de "cobran\xe7a"). \xc9 neste momento que ser\xe1 informado o nome do item/produto/servi\xe7o, valor da transa\xe7\xe3o, quantidade, dentre outras informa\xe7\xf5es poss\xedveis.'),Object(r.b)("p",null,"Ap\xf3s cri\xe1-la, ser\xe1 retornado o ",Object(r.b)("code",null,"charge_id"),", que \xe9 o identificador \xfanico da transa\xe7\xe3o e que ser\xe1 utilizado para associar \xe0 forma de pagamento."),Object(r.b)("p",null,"Assim que essa transa\xe7\xe3o \xe9 criada, ela recebe o status ",Object(r.b)("code",null,"new"),", que significa que a cobran\xe7a foi gerada e est\xe1 aguardando defini\xe7\xe3o da forma de pagamento. Essa cobran\xe7a somente ter\xe1 seu status alterado quando o integrador definir sua forma de pagamento."),Object(r.b)("p",null,"Para gerar uma transa\xe7\xe3o, voc\xea deve enviar uma requisi\xe7\xe3o ",Object(r.b)("code",null,"POST")," para a rota ",Object(r.b)("code",null,"/v1/charge"),"."),Object(r.b)("p",null,"Caso queira, pode explorar e conhecer mais sobre este recurso ",Object(r.b)("a",{href:"../AmbienteTestes/PlaygroundTransacoes#post-v1charge",target:"_blank"},"usando nosso Playground"),"."),Object(r.b)("p",null,"O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's dispon\xedveis:"),Object(r.b)(b.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(r.b)(i.a,{value:"php",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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\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\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\ntry {\n $api = new Gerencianet($options);\n $charge = $api->createCharge([], $body);\n \n print_r($charge);\n} catch (GerencianetException $e) {\n print_r($e->code);\n print_r($e->error);\n print_r($e->errorDescription);\n} catch (Exception $e) {\n print_r($e->getMessage());\n}\n"))),Object(r.b)(i.a,{value:"python",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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 'items': [{\n 'name': \"Product 1\",\n 'value': 1000,\n 'amount': 2\n }],\n 'shippings': [{\n 'name': \"Default Shipping Cost\",\n 'value': 100\n }]\n}\n \ngn.create_charge(body=body)\n"))),Object(r.b)(i.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"'use strict';\n \nvar Gerencianet = require('gn-api-sdk-node');\n \nvar clientId = 'your_client_id';\nvar clientSecret = 'your_client_secret';\n \nvar options = {\n client_id: clientId,\n client_secret: clientSecret,\n sandbox: true\n}\n \nvar body = {\n items: [{\n name: 'Product 1',\n value: 1000,\n amount: 2\n }],\n shippings: [{\n name: 'Default Shipping Cost',\n value: 100\n }]\n}\n \nvar gerencianet = new Gerencianet(options);\n \ngerencianet\n .createCharge({}, body)\n .then(console.log)\n .catch(console.log)\n .done();\n"))),Object(r.b)(i.a,{value:"c",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'dynamic endpoints = new Endpoints("client_id", "client_secret", true);\n \nvar body = new\n{\n items = new[] {\n new {\n name = "Product 1",\n value = 1000,\n amount = 2\n }\n },\n shippings = new[] {\n new {\n name = "Default Shipping Cost",\n value = 100\n }\n }\n};\n \nvar response = endpoints.CreateCharge(null, body);\nConsole.WriteLine(response);\n'))),Object(r.b)(i.a,{value:"java",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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/charge/json/CreateCharge.java\n\n\nMap<String, Object>\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/charge/map/CreateCharge.java\n\n*/\n'))),Object(r.b)(i.a,{value:"go",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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 "shippings": []map[string]interface{} {\n {\n "name": "Default Shipping Cost",\n "value": 100,\n },\n },\n }\n\n res, err := gn.CreateCharge(body)\n\n if err != nil {\n fmt.Println(err)\n } else {\n fmt.Println(res)\n }\n}\n'))),Object(r.b)(i.a,{value:"ruby",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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\nbody = {\n items: [{\n name: "Product 1",\n value: 1000,\n amount: 2\n }],\n shippings: [{\n name: "Default Shipping Cost",\n value: 100\n }]\n}\n\ngerencianet = Gerencianet.new(options)\nputs gerencianet.create_charge(body: body)\n'))),Object(r.b)(i.a,{value:"delphi",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),"interface\nfunction CreateCharge: String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction CreateCharge: String;\nvar \nBody : String;\n\nbegin \n EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize(); \n\n Body := \n '{'+\n '\"items\":'+\n '['+\n '{'+\n '\"name\":\"test article\",'+\n '\"value\":1900,'+\n '\"amount\":2'+\n '},'+\n '{'+\n '\"name\":\"test article 2\",'+\n '\"value\":3000,'+\n '\"amount\":1'+\n '}'+\n ']'+\n '}';\n\n Result := ExecuteGerenciaNetRequest( 'createCharge','','',Body );\nend;\n")))),Object(r.b)("br",null),Object(r.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(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),'"id": "/Charge"\n "items"\n "name"\n "value"\n "amount"\n "marketplace"\n "payee_code"\n "percentage"\n "shippings"\n "name"\n "value"\n "payee_code"\n "metadata"\n "custom_id"\n "notification_url"\n')),Object(r.b)("p",null,"Para verificar mais detalhes, ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"acesse aqui")," e explore em nosso Playground."),Object(r.b)("br",null),Object(r.b)("h3",{id:"b-atributos-que-podem-ser-utilizados-para-criar-uma-transa\xe7\xe3o-1"},"b) Atributos que podem ser utilizados para criar uma transa\xe7\xe3o:"),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"items")),Object(r.b)("td",{align:"left"},"item que est\xe1 sendo vendido. Uma mesma transa\xe7\xe3o pode possuir ilimitados itens. ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de items:"),Object(r.b)("br",null),Object(r.b)("code",null,"name*"),"// Nome do item, produto ou servi\xe7o. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String)."),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"value*"),"// Valor, em centavos. Ex: R$ 10,00 = 1000. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Integer"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"amount"),"// Quantidade. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Integer")),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Array")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"shippings")),Object(r.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(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de shippings:"),Object(r.b)("br",null),Object(r.b)("code",null,"name*"),"// R\xf3tulo do frete. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String."),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"value*"),"// Valor do frete, em centavos (1990 equivale a R$19,90). ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Integer")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Array")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"metadata")),Object(r.b)("td",{align:"left"},"Define dados espec\xedficos da transa\xe7\xe3o",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de metadata:"),Object(r.b)("br",null),Object(r.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(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String/null."),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.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(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xe1ximo de 255 caracteres. String/null.")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Object")))),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(r.b)("br",null),Object(r.b)("hr",null),Object(r.b)("h3",{id:"22-associe-\xe0-forma-de-pagamento-via-cart\xe3o"},"2.2. Associe \xe0 forma de pagamento via cart\xe3o"),Object(r.b)("p",null,"om a transa\xe7\xe3o criada, vamos associ\xe1-la \xe0 forma de pagamento desejada, que neste caso, ser\xe1 cart\xe3o de cr\xe9dito. Para tal, dever\xe1 ser informado a ",Object(r.b)("code",null,"charge_id")," obtido no consumo anterior em que foi gerada a transa\xe7\xe3o."),Object(r.b)("p",null,"No caso de transa\xe7\xf5es com cart\xe3o de cr\xe9dito, ser\xe1 realizado em duas etapas, sendo a primeira a transmiss\xe3o (",Object(r.b)("strong",{parentName:"p"},"via JavaScript"),", no browser), de forma segura, os dados do cart\xe3o e retornando um ",Object(r.b)("code",null,"payment_token"),", e na segunda etapa seu ",Object(r.b)("em",{parentName:"p"},"backend")," envia o restante das informa\xe7\xf5es da transa\xe7\xe3o e o ",Object(r.b)("code",null,"payment_token")," obtido na primeira etapa."),Object(r.b)("div",{className:"admonition admonition-important alert alert--info"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"IMPORTANTE - SOBRE O PAYMENT_TOKEN")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"\xc9 importante frisar que ",Object(r.b)("strong",{parentName:"p"},"n\xe3o \xe9 poss\xedvel efetuar pagamento com cart\xe3o de cr\xe9dito sem obter o")," ",Object(r.b)("inlineCode",{parentName:"p"},"payment_token")," da transa\xe7\xe3o, por isso, \xe9 imprescind\xedvel a realiza\xe7\xe3o dos procedimentos do ",Object(r.b)("strong",{parentName:"p"},"item 2.1")," deste documento (obter o ",Object(r.b)("inlineCode",{parentName:"p"},"payment_token"),"), e s\xf3 depois passar para o ",Object(r.b)("strong",{parentName:"p"},"item 2.2")," (que \xe9 de fato o pagamento com cart\xe3o)."))),Object(r.b)("p",null,"Para associar \xe0 forma de pagamento, voc\xea deve enviar uma requisi\xe7\xe3o ",Object(r.b)("inlineCode",{parentName:"p"},"POST")," para a rota ",Object(r.b)("inlineCode",{parentName:"p"},"/v1/charge/:id/pay"),", onde ",Object(r.b)("inlineCode",{parentName:"p"},":id")," \xe9 o ",Object(r.b)("inlineCode",{parentName:"p"},"charge_id")," da transa\xe7\xe3o desejada."),Object(r.b)("p",null,"Caso queira, pode explorar e conhecer mais sobre este recurso ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"usando nosso Playground"),"."),Object(r.b)("h3",{id:"23-obten\xe7\xe3o-do-payment_token"},"2.3. Obten\xe7\xe3o do payment_token"),Object(r.b)("p",null,"Inicialmente, vamos realizar a primeira etapa, que \xe9 a obten\xe7\xe3o do ",Object(r.b)("code",null,"payment_token"),". Para tal, voc\xea necessitar\xe1 de um c\xf3digo JavaScript espec\xedfico de sua conta Gerencianet. Para ger\xe1-lo, siga os passos:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",{href:"https://usuario.gerencianet.com.br/login",target:"_blank"},"Efetue login")," em sua conta Gerencianet e acesse ",Object(r.b)("code",null,"Minha Conta")," (canto superior direito)"),Object(r.b)("li",{parentName:"ul"},"Copie seu ",Object(r.b)("code",null,"Identificador de Conta")," (",Object(r.b)("a",{href:"https://s3.amazonaws.com/gerencianet-pub-prod-1/printscreen/2020/07/24/matheus.rodrigues/b66b15-d2201967-d646-4988-8e39-cffae37df203.png",target:"_blank"},"veja onde"),")"),Object(r.b)("li",{parentName:"ul"},"Cole no campo abaixo e clique no bot\xe3o ",Object(r.b)("inlineCode",{parentName:"li"},"Gerar"))),Object(r.b)(c.default,{mdxType:"AccountIdentifier"}),Object(r.b)("p",null,"\xc9 importante frisar que \xe9 obtido via ",Object(r.b)("strong",{parentName:"p"},"JavaScript"),", no browser, de forma segura, os dados do cart\xe3o e retorna um ",Object(r.b)("inlineCode",{parentName:"p"},"payment_token"),", que \xe9 a representa\xe7\xe3o dos dados enviados."),Object(r.b)("div",{className:"admonition admonition-important alert alert--info"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"importante")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Lembre-se que, ap\xf3s informar seu identificador de conta, ser\xe3o gerados 2 (dois) c\xf3digos JavaScript distintos."),Object(r.b)("p",{parentName:"div"},"Copie e utilize o c\xf3digo referente ao ambiente desejado, atentando-se \xe0s diferen\xe7as do ambiente de ",Object(r.b)("em",{parentName:"p"},'"Desenvolvimento"')," e ",Object(r.b)("em",{parentName:"p"},'"Produ\xe7\xe3o"'),"."))),Object(r.b)("p",null,"Para aplica\xe7\xf5es web, voc\xea deve copiar o script acima, espec\xedfico da sua conta, e utilizar a nossa biblioteca Javascript, conforme o ",Object(r.b)("em",{parentName:"p"},"snippet")," abaixo. Se voc\xea possui um app mobile, confira como proceder acessando nossa p\xe1gina no GitHub para ",Object(r.b)("a",{href:"https://github.com/gerencianet/gn-api-sdk-android",target:"_blank"},"Android")," e/ou ",Object(r.b)("a",{href:"https://github.com/gerencianet/gn-api-sdk-ios",target:"_blank"},"iOS"),"."),Object(r.b)("p",null,"Adicionalmente, esclarecemos que uma conta Gerencianet n\xe3o possui um ",Object(r.b)("code",null,"payment_token")," - ele \xe9 diferente e criado para cada cobran\xe7a gerada por cart\xe3o de cr\xe9dito. Ele representa os dados do cart\xe3o do pagador e \xe9 obtido pela fun\xe7\xe3o ",Object(r.b)("code",null,"getPaymentToken"),". Al\xe9m disso, cabe frisar que o ",Object(r.b)("code",null,"payment_token")," pode ser utilizado uma \xfanica vez, portanto, n\xe3o \xe9 poss\xedvel utiliz\xe1-lo para cobrar de forma recorrente."),Object(r.b)("br",null),Object(r.b)("h3",{id:"a-obtendo-um-payment_token--getpaymenttoken--1"},'a) Obtendo um "payment_token" ( getPaymentToken ):'),Object(r.b)(b.a,{defaultValue:"code",values:[{label:"C\xf3digo",value:"code"}],mdxType:"Tabs"},Object(r.b)(i.a,{value:"code",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"$gn.ready(function(checkout) {\n \n var callback = function(error, response) {\n if(error) {\n // Trata o erro ocorrido\n console.error(error);\n } else {\n // Trata a resposta\n console.log(response);\n }\n };\n \n checkout.getPaymentToken({\n brand: 'visa', // bandeira do cart\xe3o\n number: '4012001038443335', // n\xfamero do cart\xe3o\n cvv: '123', // c\xf3digo de seguran\xe7a\n expiration_month: '05', // m\xeas de vencimento\n expiration_year: '2021' // ano de vencimento\n }, callback);\n \n});\n")))),Object(r.b)("br",null),Object(r.b)("h3",{id:"b-obtendo-informa\xe7\xf5es-sobre-parcelamentos--getinstallments--1"},"b) Obtendo informa\xe7\xf5es sobre parcelamentos ( getInstallments ):"),Object(r.b)(b.a,{defaultValue:"code",values:[{label:"C\xf3digo",value:"code"}],mdxType:"Tabs"},Object(r.b)(i.a,{value:"code",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"$gn.ready(function(checkout){\n \n checkout.getInstallments(50000,'visa', function(error, response){\n if(error) {\n // Trata o erro ocorrido\n console.log(error);\n } else {\n // Insere o parcelamento no site\n }\n });\n \n});\n")))),Object(r.b)("br",null),Object(r.b)("h3",{id:"c-atributos-relacionados-ao-envio-de-dados-do-cart\xe3o-1"},"c) Atributos relacionados ao envio de dados do cart\xe3o:"),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"$gn.ready ( callback )")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Par\xe2metro"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"callback")),Object(r.b)("td",{align:"left"},"Fun\xe7\xe3o de inicializa\xe7\xe3o que possibilita a chamada das fun\xe7\xf5es ",Object(r.b)("em",null,"getPaymentToken")," e ",Object(r.b)("em",null,"getInstallments"),". ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Par\xe2metro(s) de callback:"),Object(r.b)("br",null),Object(r.b)("code",null,"object"),"// Objeto que recebe as inst\xe2ncias das outras fun\xe7\xf5es."),Object(r.b)("td",{align:"center"},"Function")))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"getPaymentToken ( card_data, callback )")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Par\xe2metro"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"card_data")),Object(r.b)("td",{align:"left"},"Objeto que cont\xe9m os dados do cart\xe3o. ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"As propriedades desse objeto s\xe3o:"),Object(r.b)("br",null),Object(r.b)("code",null,"brand"),"// Bandeira do cart\xe3o ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"number"),"// N\xfamero do cart\xe3o sem formata\xe7\xe3o",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"cvv"),"// C\xf3digo de seguran\xe7a do cart\xe3o ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"expiration_month"),'// M\xeas de expira\xe7\xe3o do cart\xe3o no formato "MM"',Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"expiration_year"),'// Ano de expira\xe7\xe3o do cart\xe3o no formato "YYYY"'),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"callback")),Object(r.b)("td",{align:"left"},"Fun\xe7\xe3o que recebe a resposta da Gerencianet.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Par\xe2metro(s) de callback:"),Object(r.b)("br",null),Object(r.b)("code",null,"error"),"// Se n\xe3o foi poss\xedvel gerar o payment_token, os erros ser\xe3o retornados neste par\xe2metro. ",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"response"),"// Recebe os dados que representam o cart\xe3o de cr\xe9dito: payment_token e card_mask",Object(r.b)("br",null),Object(r.b)("br",null)),Object(r.b)("td",{align:"center"},"Function")))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"getInstallments ( total, brand, callback )")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Par\xe2metro"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"total")),Object(r.b)("td",{align:"left"},"Valor total da cobran\xe7a, incluindo fretes, em centavos.",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Por exemplo: R$ 230,90 equivale a 23090.")),Object(r.b)("td",{align:"center"},"Integer")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"brand")),Object(r.b)("td",{align:"left"},"Bandeira do cart\xe3o que deseja-se obter os valores de parcelas.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Poss\xedveis valores:"),Object(r.b)("br",null),Object(r.b)("code",null,"visa"),"// Bandeira Visa",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"mastercard"),"// Bandeira MasterCard",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"amex"),"// Bandeira AmericanExpress",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"elo"),"// Bandeira Elo",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"hipercard"),"// Bandeira Hipercard"),Object(r.b)("td",{align:"center"},"String")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"callback")),Object(r.b)("td",{align:"left"},"Fun\xe7\xe3o que recebe a resposta da Gerencianet.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Par\xe2metro(s) de callback:"),Object(r.b)("br",null),Object(r.b)("code",null,"error"),"// Se n\xe3o foi poss\xedvel obter dados sobre o pagamento, os erros ser\xe3o retornados neste par\xe2metro.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"response"),"// Recebe os dados relacionados ao tipo de pagamento consultado."),Object(r.b)("td",{align:"center"},"Function")))),Object(r.b)("br",null),Object(r.b)("h3",{id:"24-pagando-com-cart\xe3o"},"2.4. Pagando com cart\xe3o"),Object(r.b)("p",null,"Agora que o ",Object(r.b)("code",null,"payment_token")," j\xe1 foi obtido atrav\xe9s do c\xf3digo Javascript da primeira etapa, vamos prosseguir com o pagamento com cart\xe3o de cr\xe9dito."),Object(r.b)("p",null,"Nesta etapa, seu ",Object(r.b)("em",{parentName:"p"},"backend")," envia o restante das informa\xe7\xf5es da transa\xe7\xe3o e o ",Object(r.b)("code",null,"payment_token")," obtido na primeira etapa."),Object(r.b)("p",null,"Ao pagar uma transa\xe7\xe3o por cart\xe3o de cr\xe9dito, o status \xe9 alterado de ",Object(r.b)("code",null,"new")," para ",Object(r.b)("code",null,"waiting"),". Isso significa que a transa\xe7\xe3o est\xe1 associada a uma forma de pagamento e que est\xe1 aguardando a confirma\xe7\xe3o do pagamento."),Object(r.b)("p",null,"Assim que o pagamento for confirmado, a transa\xe7\xe3o ter\xe1 o status alterado de ",Object(r.b)("code",null,"waiting")," para ",Object(r.b)("code",null,"paid"),". Mas, se por alguma raz\xe3o n\xe3o for poss\xedvel confirmar o pagamento, o status ser\xe1 alterado para ",Object(r.b)("code",null,"unpaid"),"."),Object(r.b)("p",null,"O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's dispon\xedveis:"),Object(r.b)(b.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(r.b)(i.a,{value:"php",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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// $charge_id refere-se ao ID da transa\xe7\xe3o gerada anteriormente\n$params = [\n 'id' => $charge_id\n];\n \n$paymentToken = '6426f3abd8688639c6772963669bbb8e0eb3c319'; // payment_token obtido na 1\xaa etapa (atrav\xe9s do Javascript \xfanico por conta Gerencianet)\n \n$customer = [\n 'name' => 'Gorbadoc Oldbuck', // nome do cliente\n 'cpf' => '94271564656' , // cpf do cliente\n 'email' => 'email_do_cliente@servidor.com.br' , // endere\xe7o de email do cliente\n 'phone_number' => '5144916523', // telefone do cliente\n 'birth' => '1990-05-20' // data de nascimento do cliente\n];\n \n$billingAddress = [\n 'street' => 'Street 3',\n 'number' => 10,\n 'neighborhood' => 'Bauxita',\n 'zipcode' => '35400000',\n 'city' => 'Ouro Preto',\n 'state' => 'MG',\n];\n \n$creditCard = [\n 'installments' => 1, // n\xfamero de parcelas em que o pagamento deve ser dividido\n 'billing_address' => $billingAddress,\n 'payment_token' => $paymentToken,\n 'customer' => $customer\n];\n \n$payment = [\n 'credit_card' => $creditCard // forma de pagamento (credit_card = cart\xe3o)\n];\n\n$body = [\n 'payment' => $payment\n];\n \n \ntry {\n $api = new Gerencianet($options);\n $charge = $api->payCharge($params, $body);\n \n print_r($charge);\n} catch (GerencianetException $e) {\n print_r($e->code);\n print_r($e->error);\n print_r($e->errorDescription);\n} catch (Exception $e) {\n print_r($e->getMessage());\n}\n"))),Object(r.b)(i.a,{value:"python",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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 \nparams = {\n 'id': 1000\n}\n \nbody = {\n 'payment': {\n 'credit_card': {\n 'installments': 1,\n 'payment_token': \"6426f3abd8688639c6772963669bbb8e0eb3c319\",\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': \"oldbuck@gerencianet.com.br\",\n 'cpf': \"94271564656\",\n 'birth': \"1977-01-15\",\n 'phone_number': \"5144916523\"\n }\n }\n }\n}\n \ngn.pay_charge(params=params, body=body)\n"))),Object(r.b)(i.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"'use strict';\n \nvar Gerencianet = require('gn-api-sdk-node');\n \nvar clientId = 'your_client_id';\nvar clientSecret = 'your_client_secret';\n \nvar options = {\n client_id: clientId,\n client_secret: clientSecret,\n sandbox: true\n}\n \nvar params = {\n id: 1000\n}\n \nvar body = {\n payment: {\n credit_card: {\n installments: 1,\n payment_token: '6426f3abd8688639c6772963669bbb8e0eb3c319',\n billing_address: {\n street: 'Street 3',\n number: 10,\n neighborhood: 'Bauxita',\n zipcode: '35400000',\n city: 'Ouro Preto',\n state: 'MG'\n },\n customer: {\n name: 'Gorbadoc Oldbuck',\n email: 'oldbuck@gerencianet.com.br',\n cpf: '94271564656',\n birth: '1977-01-15',\n phone_number: '5144916523'\n }\n }\n }\n}\n \n \nvar gerencianet = new Gerencianet(options);\n \ngerencianet\n .payCharge(params, body)\n .then(console.log)\n .catch(console.log)\n .done();\n"))),Object(r.b)(i.a,{value:"c",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'dynamic endpoints = new Endpoints("client_id", "client_secret", true);\n \nvar param = new {\n id = 1000\n};\n \nvar body = new {\n payment = new {\n credit_card = new {\n installments = 1,\n payment_token = "6426f3abd8688639c6772963669bbb8e0eb3c319",\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 = "oldbuck@gerencianet.com.br",\n cpf = "94271564656",\n birth = "1977-01-15",\n phone_number = "5144916523"\n }\n }\n }\n};\n \nvar response = endpoints.PayCharge(param, body);\nConsole.WriteLine(response);\n'))),Object(r.b)(i.a,{value:"java",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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/charge/json/Card.java\n\n\nMap<String, Object>\n\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/charge/map/Card.java\n\n*/\n'))),Object(r.b)(i.a,{value:"go",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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 paymentToken := "payment_token";\n\n customer := map[string]interface{}{\n "name": "Gorbadoc Oldbuck",\n "cpf": "04267484171",\n "phone_number": "5144916523",\n "email": "oldbuck@gerencianet.com.br",\n "birth": "1977-01-15",\n }\n\n billingAddress := map[string]interface{} {\n "street": "Av JK",\n "number": 909,\n "neighborhood": "Bauxita",\n "zipcode": "35400000",\n "city": "Ouro Preto",\n "state": "MG",\n }\n\n body := map[string]interface{} {\n "payment": map[string]interface{} {\n "credit_card": map[string]interface{} {\n "installments": 1,\n "billing_address": billingAddress,\n "payment_token": paymentToken,\n "customer": customer,\n },\n },\n }\n\n res, err := gn.PayCharge(1, body) // no lugar do 1 coloque o charge_id certo\n\n if err != nil {\n fmt.Println(err)\n } else {\n fmt.Println(res)\n }\n}\n'))),Object(r.b)(i.a,{value:"ruby",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.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 \nparams = {\n id: 1000\n}\n \nbody = {\n payment: {\n credit_card: {\n installments: 1,\n payment_token: "6426f3abd8688639c6772963669bbb8e0eb3c319",\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: "oldbuck@gerencianet.com.br",\n cpf: "94271564656",\n birth: "1977-01-15",\n phone_number: "5144916523"\n }\n }\n }\n}\n \ngerencianet = Gerencianet.new(options)\ngerencianet.pay_charge(params: params, body: body)\n'))),Object(r.b)(i.a,{value:"delphi",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),"interface\nfunction PayChargeWithCard(Id, Token: String): String;\n\nimplementation\nuses uGerenciaClient, uGerenciaNetClientUtilities;\n{... your code ... }\n\nfunction PayChargeWithCard(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_do_cliente@servidor.com.br\",'+\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 EnableService( 'GerenciaNet.dll' ); \n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \n GerenciaNetAuthorize();\n \n PaymentParams := CreateRequestParams( [ 'id='+Id ] ).Text;\n Result := ExecuteGerenciaNetRequest( 'payCharge',PaymentParams,'',Body );\nend;\n")))),Object(r.b)("br",null),Object(r.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(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),'"id": "/Pay",\n "payment"\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 "installments"\n "discount"\n "type"\n "percentage",\n "currency"\n "value"\n "billing_address"\n "street"\n "number"\n "neighborhood"\n "zipcode"\n "city"\n "complement"\n "state"\n "payment_token"\n "message"\n')),Object(r.b)("p",null,"Para verificar mais detalhes, ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../AmbienteTestes/PlaygroundTransacoes"}),"acesse aqui")," e explore em nosso Playground."),Object(r.b)("br",null),Object(r.b)("h3",{id:"b-atributos-relacionados-ao-pagamento-com-cart\xe3o-de-cr\xe9dito"},"b) Atributos relacionados ao pagamento com cart\xe3o de cr\xe9dito:"),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Par\xe2metros da url")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"id")),Object(r.b)("td",{align:"left"},"Identificador da transa\xe7\xe3o (",Object(r.b)("em",null,"charge_id"),")"),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Objeto ",Object(r.b)("b",null,"ID"))))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Objeto")," ",Object(r.b)("strong",{parentName:"p"},"ID")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"payment")),Object(r.b)("td",{align:"left"},"Tag raiz"),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Objeto ",Object(r.b)("b",null,"Payment"))))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Objeto")," ",Object(r.b)("strong",{parentName:"p"},"Payment")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"credit_card")),Object(r.b)("td",{align:"left"},"Objeto contendo as informa\xe7\xf5es necess\xe1rias para o pagamento via cart\xe3o de cr\xe9dito, como por exemplo, o n\xfamero de parcelas e os dados do cliente."),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Objeto ",Object(r.b)("b",null,"Credit_Card"))))),Object(r.b)("br",null),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Objeto")," ",Object(r.b)("strong",{parentName:"p"},"Credit_Card")),Object(r.b)("table",null,Object(r.b)("tbody",null,Object(r.b)("tr",null,Object(r.b)("th",null,"Atributo"),Object(r.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(r.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(r.b)("th",{align:"center"},"Tipo")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"customer")),Object(r.b)("td",{align:"left"},"Dados pessoais do pagador.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de customer:"),Object(r.b)("br",null),Object(r.b)("code",null,"name*")," // Nome ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"cpf*")," // CPF do cliente (sem pontos, v\xedrgulas ou h\xedfen).",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"email*")," // Endere\xe7o de email v\xe1lido do cliente. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"phone_number*")," // Telefone v\xe1lido do cliente, sem caracteres especiais. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"birth*")," // Data de Nascimento do cliente (data v\xe1lida em formato YYYY-MM-DD). ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"address")," // Endere\xe7o de Entrega. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)")," (mais informa\xe7\xf5es)",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("code",null,"juridical_person")," // Dados de pessoa jur\xeddica. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)")," (mais informa\xe7\xf5es)"),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"installments")),Object(r.b)("td",{align:"left"},"N\xfamero de parcelas em que o pagamento deve ser dividido.",Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"M\xednimo 1 e m\xe1ximo 12. Integer.")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Integer")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"discount")),Object(r.b)("td",{align:"left"},"Define dados de desconto sobre a cobran\xe7a.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de discount:"),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"type*"),"// Tipo do desconto (String). Valores permitidos: ",Object(r.b)("br",null),Object(r.b)("code",null,"currency"),": o desconto ser\xe1 informado em centavos. ",Object(r.b)("code",null,"percentage"),": o desconto ser\xe1 informado em porcentagem.",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"cnpj*"),"// CNPJ da empresa. ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"Tamanho: 14 caracteres. String."),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"value*"),"// Valor do desconto (Integer). Se o tipo do desconto for ",Object(r.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(r.b)("code",null,"percentage"),", o valor dever\xe1 ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos: ",Object(r.b)("br",null),"1)",Object(r.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(r.b)("code",null,"599"),";",Object(r.b)("br",null)," 2)",Object(r.b)("code",null,"percentage")," // deve ser informado em centavos, ou seja, se o desconto \xe9 de 15%, o integrador deve informar ",Object(r.b)("code",null,"1500"),".",Object(r.b)("br",null),Object(r.b)("br",null)),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"billing_address")),Object(r.b)("td",{align:"left"},"Endere\xe7o de cobran\xe7a (mais informa\xe7\xf5es)",Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("em",null,"Atributos de billing_address:"),Object(r.b)("br",null),Object(r.b)("code",null,"street*"),"// Nome da rua ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"number*"),"// N\xfamero ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String/Integer)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"neighborhood*"),"// Bairro ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"zipcode*"),"// CEP (sem pontos ou h\xedfen) ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"city*"),"// Cidade ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"complement"),"// Complemento ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(String/null)"),Object(r.b)("br",null),Object(r.b)("br",null)," ",Object(r.b)("code",null,"state*"),"// Estado (2 caracteres) ",Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"(Object)")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"Object")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"payment_token")),Object(r.b)("td",{align:"left"},"Token \xfanico de pagamento obtido na primeira etapa da gera\xe7\xe3o da transa\xe7\xe3o."),Object(r.b)("td",{align:"center"},"Sim"),Object(r.b)("td",{align:"center"},"String")),Object(r.b)("tr",null,Object(r.b)("td",null,Object(r.b)("code",null,"message")),Object(r.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(r.b)("br",null),Object(r.b)(d,{color:"#009615",mdxType:"Highlight"},"At\xe9 4 linhas contendo 100 caracteres em cada linha. String. ",Object(r.b)("br",null),"O operador ",Object(r.b)("code",null,"\\n"),"\xe9 utilizado para efetuar a quebra de linha.")),Object(r.b)("td",{align:"center"},"N\xe3o"),Object(r.b)("td",{align:"center"},"String")))),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(r.b)("br",null),Object(r.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.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(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"O cliente associado \xe0 transa\xe7\xe3o 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(r.b)("inlineCode",{parentName:"p"},"juridical_person"),"."),Object(r.b)("p",{parentName:"div"},'Veja detalhes neste link sobre como gerar um pagamento cuja forma de pagamento seja "cart\xe3o de cr\xe9dito" para um cliente que seja Pessoa Jur\xeddica (PJ).'))),Object(r.b)("br",null),Object(r.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.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 transa\xe7\xe3o")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"O cliente associado \xe0 transa\xe7\xe3o 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(r.b)("inlineCode",{parentName:"p"},"juridical_person"),"."),Object(r.b)("p",{parentName:"div"},'Veja detalhes neste link sobre como gerar um pagamento cuja forma de pagamento seja "cart\xe3o de cr\xe9dito" para um cliente que seja Pessoa Jur\xeddica (PJ).'))),Object(r.b)("br",null),Object(r.b)("div",{className:"admonition admonition-important alert alert--info"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Callbacks (notifica\xe7\xf5es) das transa\xe7\xf5es da API para seu sistema")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"As notifica\xe7\xf5es permitem que voc\xea seja informado quando uma transa\xe7\xe3o tiver seu status alterado. Dessa forma, voc\xea poder\xe1 identificar quando uma cobran\xe7a for paga, por exemplo."),Object(r.b)("p",{parentName:"div"},"Confira neste link todos os detalhes sobre como implementar a sua URL de notifica\xe7\xe3o."))),Object(r.b)("br",null),Object(r.b)("hr",null),Object(r.b)("h2",{id:"3-outros-endpoints"},"3. Outros endpoints"),Object(r.b)("p",null,"Existem outros endpoints e m\xe9todos relacionados a pagamento via cart\xe3o de cr\xe9dito que est\xe3o dispon\xedveis na API e podem ser explorados pelo integrador. Confira a rela\xe7\xe3o completa:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../PagamentoCartao/EndpointsCartao"}),"Cancelar determinada transa\xe7\xe3o"))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../PagamentoCartao/EndpointsCartao"}),"Alterar URL de notifica\xe7\xe3o (notification_url) e/ou custom_id de transa\xe7\xe3o"))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../PagamentoCartao/EndpointsCartao"}),"Acrescentar informa\xe7\xf5es ao hist\xf3rico da transa\xe7\xe3o"))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../PagamentoCartao/EndpointsCartao"}),"Retornar informa\xe7\xf5es sobre transa\xe7\xe3o"))),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"../PagamentoCartao/EndpointsCartao"}),"Listar parcelas, de acordo com a bandeira do cart\xe3o de cr\xe9dito")))),Object(r.b)("br",null),Object(r.b)("hr",null),Object(r.b)("h2",{id:"4-v\xeddeos-criando-transa\xe7\xe3o-e-pagando-via-cart\xe3o-de-cr\xe9dito"},"4. V\xeddeos: Criando transa\xe7\xe3o e pagando via cart\xe3o de cr\xe9dito"),Object(r.b)("p",null,'Pensando em oferecer novos meios de transmitir informa\xe7\xf5es, a Gerencianet disponibiliza os v\xeddeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como criar uma transa\xe7\xe3o via integra\xe7\xe3o e associ\xe1-la \xe0 forma de pagamento por "cart\xe3o de cr\xe9dito".'),Object(r.b)("h3",{id:"41-criando-transa\xe7\xe3o-via-playground-ambiente-de-testessandbox"},"4.1. Criando transa\xe7\xe3o via Playground (ambiente de testes/sandbox)"),Object(r.b)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/ylqJUpHqwfY",frameborder:"0",allowfullscreen:!0}),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("h3",{id:"42-definindo-m\xe9todo-de-pagamento-por-cart\xe3o-de-cr\xe9dito-via-playground"},"4.2. Definindo m\xe9todo de pagamento por Cart\xe3o de Cr\xe9dito (via Playground)"),Object(r.b)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/vxhkSXV_aX8",frameborder:"0",allowfullscreen:!0}),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("h3",{id:"43-criando-uma-transa\xe7\xe3o-por-integra\xe7\xe3o---pagamento-por-cart\xe3o-de-cr\xe9dito"},"4.3. Criando uma transa\xe7\xe3o por integra\xe7\xe3o - Pagamento por Cart\xe3o de Cr\xe9dito"),Object(r.b)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/ucEr_sjp9wQ",frameborder:"0",allowfullscreen:!0}),Object(r.b)("br",null),Object(r.b)("br",null),Object(r.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(a.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"})))),"DICA")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Para acesso as demais aulas, de outros assuntos, acesse a p\xe1gina Curso Online de Integra\xe7\xf5es."))),Object(r.b)("br",null),Object(r.b)("hr",null),Object(r.b)("h2",{id:"5-pr\xf3ximos-passos"},"5. Pr\xf3ximos Passos"),Object(r.b)("p",null,"Existem outras solu\xe7\xf5es da API que permitem a utiliza\xe7\xe3o de pagamento por cart\xe3o de cr\xe9dito, quer conhec\xea-las?"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"../Assinaturas/CriandoAssinatura"}),"Assinaturas (cobran\xe7a recorrente)")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"../Carnes/CriandoCarne"}),"Carn\xeas")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"../Marketplace/DividindoRecebimentos"}),"Marketplace (split)")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"../LinkdePagamento/CriandoLink"}),"Link de Pagamento")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://gerencianet.com.br/artigo/sistemas-integrados/"}),"M\xf3dulos e Plugins Gerencianet")))))}p.isMDXComponent=!0},229:function(e,n,t){"use strict";t.d(n,"a",(function(){return d})),t.d(n,"b",(function(){return p}));var a=t(0),o=t.n(a);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function b(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=o.a.createContext({}),s=function(e){var n=o.a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):b(b({},n),e)),t},d=function(e){var n=s(e.components);return o.a.createElement(l.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},m=o.a.forwardRef((function(e,n){var t=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),d=s(t),m=a,p=d["".concat(c,".").concat(m)]||d[m]||u[m]||r;return t?o.a.createElement(p,b(b({ref:n},l),{},{components:t})):o.a.createElement(p,b({ref:n},l))}));function p(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=t.length,c=new Array(r);c[0]=m;var b={};for(var i in n)hasOwnProperty.call(n,i)&&(b[i]=n[i]);b.originalType=e,b.mdxType="string"==typeof e?e:a,c[1]=b;for(var l=2;l<r;l++)c[l]=t[l];return o.a.createElement.apply(null,c)}return o.a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},233:function(e,n,t){"use strict";function a(e){var n,t,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(n=0;n<e.length;n++)e[n]&&(t=a(e[n]))&&(o&&(o+=" "),o+=t);else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}n.a=function(){for(var e,n,t=0,o="";t<arguments.length;)(e=arguments[t++])&&(n=a(e))&&(o&&(o+=" "),o+=n);return o}},234:function(e,n,t){"use strict";var a=t(0);const o=Object(a.createContext)({tabGroupChoices:{},setTabGroupChoices:()=>{},isAnnouncementBarClosed:!1,closeAnnouncementBar:()=>{}});n.a=o},235:function(e,n,t){"use strict";var a=t(0),o=t(234);n.a=function(){return Object(a.useContext)(o.a)}},236:function(e,n,t){"use strict";var a=t(0),o=t.n(a),r=t(235),c=t(233),b=t(92),i=t.n(b);const l=37,s=39;n.a=function(e){const{block:n,children:t,defaultValue:b,values:d,groupId:u}=e,{tabGroupChoices:m,setTabGroupChoices:p}=Object(r.a)(),[O,j]=Object(a.useState)(b);if(null!=u){const e=m[u];null!=e&&e!==O&&d.some(n=>n.value===e)&&j(e)}const g=e=>{j(e),null!=u&&p(u,e)},h=[];return o.a.createElement("div",null,o.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:Object(c.a)("tabs",{"tabs--block":n})},d.map(({value:e,label:n})=>o.a.createElement("li",{role:"tab",tabIndex:"0","aria-selected":O===e,className:Object(c.a)("tabs__item",i.a.tabItem,{"tabs__item--active":O===e}),key:e,ref:e=>h.push(e),onKeyDown:e=>((e,n,t)=>{switch(t.keyCode){case s:((e,n)=>{const t=e.indexOf(n)+1;e[t]?e[t].focus():e[0].focus()})(e,n);break;case l:((e,n)=>{const t=e.indexOf(n)-1;e[t]?e[t].focus():e[e.length-1].focus()})(e,n)}})(h,e.target,e),onFocus:()=>g(e),onClick:()=>g(e)},n))),o.a.createElement("div",{role:"tabpanel",className:"margin-vert--md"},a.Children.toArray(t).filter(e=>e.props.value===O)[0]))}},237:function(e,n,t){"use strict";var a=t(0),o=t.n(a);n.a=function(e){return o.a.createElement("div",null,e.children)}},94:function(e,n,t){"use strict";t.r(n);var a=t(0),o=t.n(a);class r extends o.a.Component{constructor(e){super(e),this.state={value:"",desenvolvimento:"",producao:""},this.handleChange=this.handleChange.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}handleChange(e){this.setState({value:e.target.value})}handleSubmit(e){var n=this.state.value;if(null!==n&&""!==n){var t="<script type='text/javascript'>var s=document.createElement('script');s.type='text/javascript';var v=parseInt(Math.random()*1000000);s.src='https://sandbox.gerencianet.com.br/v1/cdn/"+n+"/'+v;s.async=false;s.id='"+n+"';if(!document.getElementById('"+n+"')){document.getElementsByTagName('head')[0].appendChild(s);};$gn={validForm:true,processed:false,done:{},ready:function(fn){$gn.done=fn;}};<\/script>",a="<script type='text/javascript'>var s=document.createElement('script');s.type='text/javascript';var v=parseInt(Math.random()*1000000);s.src='https://api.gerencianet.com.br/v1/cdn/"+n+"/'+v;s.async=false;s.id='"+n+"';if(!document.getElementById('"+n+"')){document.getElementsByTagName('head')[0].appendChild(s);};$gn={validForm:true,processed:false,done:{},ready:function(fn){$gn.done=fn;}};<\/script>",r=o.a.createElement("h2",null,"Desenvolvimento"),c=o.a.createElement("h2",null,"Produ\xe7\xe3o");this.updateContent(t,a,r,c)}else alert("Insira um identificador v\xe1lido");e.preventDefault(),console.log(n)}updateContent(e,n,t,a){this.setState({desenvolvimento:e}),this.setState({producao:n}),this.setState({hdesenvolvimento:t}),this.setState({hproducao:a})}render(){return o.a.createElement("div",null,o.a.createElement("form",{onSubmit:this.handleSubmit},o.a.createElement("label",null,o.a.createElement("input",{type:"text",placeholder:"Identificador da conta",className:"input_account",value:this.state.value,onChange:this.handleChange})),o.a.createElement("input",{type:"submit",className:"button1",value:"Gerar"})),o.a.createElement("div",null,this.state.hdesenvolvimento,this.state.desenvolvimento,o.a.createElement("hr",null),this.state.hproducao,this.state.producao))}}n.default=r}}]);