-
Notifications
You must be signed in to change notification settings - Fork 0
/
839d5549.e1ef71ec.js
1 lines (1 loc) · 108 KB
/
839d5549.e1ef71ec.js
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{168:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return r})),t.d(a,"metadata",(function(){return i})),t.d(a,"rightToc",(function(){return d})),t.d(a,"Highlight",(function(){return s})),t.d(a,"Highlight2",(function(){return u})),t.d(a,"default",(function(){return p}));var n=t(2),o=t(6),b=(t(0),t(229)),c=t(236),l=t(237),r={id:"Pix",title:"Pix",hide_title:!0,sidebar_label:"Pix"},i={id:"PIX/Pix",isDocsHomePage:!1,title:"Pix",description:"API de recebimentos",source:"@site/docs\\PIX\\pix.md",permalink:"/docs/PIX/Pix",sidebar_label:"Pix",sidebar:"someSidebar",next:{title:"Introdu\xe7\xe3o",permalink:"/docs/VisaoGeral/introducao"}},d=[{value:"GN API Pix",id:"gn-api-pix",children:[]},{value:"Evolu\xe7\xe3o da API Pix",id:"evolu\xe7\xe3o-da-api-pix",children:[]},{value:"Collection Postman Gerencianet API Pix",id:"collection-postman-gerencianet-api-pix",children:[{value:"Rota base",id:"rota-base",children:[]},{value:"OAuth2",id:"oauth2",children:[]}]},{value:"CobPayload",id:"cobpayload",children:[{value:"Descri\xe7\xe3o do Retorno",id:"descri\xe7\xe3o-do-retorno",children:[]}]},{value:"Criar cobran\xe7a.",id:"criar-cobran\xe7a",children:[{value:"Dados para gera\xe7\xe3o da cobran\xe7a.",id:"dados-para-gera\xe7\xe3o-da-cobran\xe7a",children:[]}]},{value:"Revisar cobran\xe7a",id:"revisar-cobran\xe7a",children:[{value:"Dados para gera\xe7\xe3o da cobran\xe7a",id:"dados-para-gera\xe7\xe3o-da-cobran\xe7a-1",children:[]}]},{value:"Consultar cobran\xe7a",id:"consultar-cobran\xe7a",children:[]},{value:"Consultar lista de cobran\xe7as",id:"consultar-lista-de-cobran\xe7as",children:[]},{value:"Pix",id:"pix",children:[{value:"Consultar Pix.",id:"consultar-pix",children:[]},{value:"Consultar Pix recebidos.",id:"consultar-pix-recebidos",children:[]},{value:"Requisitar envio de Pix.",id:"requisitar-envio-de-pix",children:[]},{value:"Solicitar devolu\xe7\xe3o.",id:"solicitar-devolu\xe7\xe3o",children:[]},{value:"Consultar devolu\xe7\xe3o.",id:"consultar-devolu\xe7\xe3o",children:[]}]},{value:"Webhook",id:"webhook",children:[{value:"Configurar o Webhook Pix.",id:"configurar-o-webhook-pix",children:[]},{value:"Callbacks",id:"callbacks",children:[]},{value:"Exibir informa\xe7\xf5es acerca do Webhook Pix.",id:"exibir-informa\xe7\xf5es-acerca-do-webhook-pix",children:[]},{value:"Cancelar o webhook Pix.",id:"cancelar-o-webhook-pix",children:[]}]},{value:"Schemas",id:"schemas",children:[]}],s=function(e){var a=e.children;e.color;return Object(b.b)("span",{style:{borderRadius:"2px",color:"#009615",padding:"0.2rem"}},a)},u=function(e){var a=e.children,t=e.color;return Object(b.b)("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"}},a)},O={rightToc:d,Highlight:s,Highlight2:u};function p(e){var a=e.components,t=Object(o.a)(e,["components"]);return Object(b.b)("wrapper",Object(n.a)({},O,t,{components:a,mdxType:"MDXLayout"}),Object(b.b)("h1",{className:"titulo"},"API de recebimentos"),Object(b.b)("div",{className:"subtitulo"},Object(b.b)("h2",{id:"gn-api-pix"},"GN API Pix"),Object(b.b)("p",null,"A GN API Pix Gerencianet disponibiliza servi\xe7os oferecidos pela Gerencianet no contexto do arranjo Pix, como cria\xe7\xe3o de cobran\xe7a, verifica\xe7\xe3o de Pix recebidos, devolu\xe7\xe3o e concilia\xe7\xe3o. Os servi\xe7os expostos por essa API permitem ao usu\xe1rio recebedor estabelecer integra\xe7\xe3o de sua automa\xe7\xe3o com os servi\xe7os Pix da Gerencianet."),Object(b.b)("br",null),Object(b.b)("h2",{id:"evolu\xe7\xe3o-da-api-pix"},"Evolu\xe7\xe3o da API Pix"),Object(b.b)("p",null,"As seguintes mudan\xe7as s\xe3o esperadas e consideradas retro-compat\xedveis (backwards-compatibility):"),Object(b.b)("ul",null,Object(b.b)("li",{parentName:"ul"},"Adi\xe7\xe3o de novos recursos na API Pix."),Object(b.b)("li",{parentName:"ul"},"Adi\xe7\xe3o de novos par\xe2metros opcionais a cobran\xe7as."),Object(b.b)("li",{parentName:"ul"},"Adi\xe7\xe3o de novos campos em respostas da API Pix."),Object(b.b)("li",{parentName:"ul"},"Altera\xe7\xe3o da ordem de campos."),Object(b.b)("li",{parentName:"ul"},"Adi\xe7\xe3o de novos elementos em enumera\xe7\xf5es.")),Object(b.b)("p",null,"Mudan\xe7as compat\xedveis n\xe3o geram nova vers\xe3o da GN API Pix. Clientes devem estar preparados para lidar com essas mudan\xe7as sem quebrar."),Object(b.b)("p",null,"Mudan\xe7as incompat\xedveis geram nova vers\xe3o da GN API Pix."),Object(b.b)("p",null,"Se voc\xea quer saber mais sobre a implementa\xe7\xe3o da API Pix ou deseja receber uma proposta comercial, consulte um de nossos especialistas pelo e-mail ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"mailto:[email protected]"}),"[email protected]")," ou clique no bot\xe3o abaixo."),Object(b.b)("a",{href:"https://cta-redirect.hubspot.com/cta/redirect/3324438/0ae588cb-c51b-4c19-a281-827f2262d2d1",target:"_blank",alt:"QUERO UMA CONSULTORIA T\xc9CNICA"},Object(b.b)("button",{type:"button",className:"buttonCTA buttonorange"},"QUERO SER CLIENTE GERENCIANET")),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("p",null,"O time T\xe9cnico e Comercial tamb\xe9m est\xe1 dispon\xedvel na Plataforma ",Object(b.b)("strong",{parentName:"p"},"Discord"),". ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://discord.com/invite/ptGHMtczcV"}),"Clique aqui")," para acessar o servidor."),Object(b.b)("h2",{id:"collection-postman-gerencianet-api-pix"},"Collection Postman Gerencianet API Pix"),Object(b.b)("p",null,"Este \xe9 o ",Object(b.b)("a",{href:"https://documenter.getpostman.com/view/13574984/TVetcm6R",target:"_blank",alt:"Collection Pix"},"link")," da nossa Collection que manteremos atualizada com o endpoints da API Pix."),Object(b.b)("p",null,Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://documenter.getpostman.com/view/13574984/TVetcm6R"}),Object(b.b)("img",Object(n.a)({parentName:"a"},{src:"https://run.pstmn.io/button.svg",alt:"Run in Postman"})))),Object(b.b)("br",null),Object(b.b)("h3",{id:"rota-base"},"Rota base"),Object(b.b)(c.a,{defaultValue:"sandbox",values:[{label:"Desenvolvimento",value:"sandbox"},{label:"Produ\xe7\xe3o",value:"production"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"sandbox",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),' "URL": {\n "sandbox": "https://api-pix-h.gerencianet.com.br"\n }\n'))),Object(b.b)(l.a,{value:"production",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'"URL": {\n "production": "https://api-pix.gerencianet.com.br"\n }\n')))),Object(b.b)("br",null),Object(b.b)("h3",{id:"oauth2"},"OAuth2"),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Security Scheme Type"),Object(b.b)("th",{align:"center"},"OAuth2")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"clientCredentials OAuth Flow")),Object(b.b)("td",{align:"left"},Object(b.b)("b",null,"Produ\xe7\xe3o"),Object(b.b)("br",null),Object(b.b)("b",null,"Token URL:")," https://api-pix.gerencianet.com.br/oauth/token ",Object(b.b)("br",null),Object(b.b)("b",null,"Refresh URL:")," https://api-pix.gerencianet.com.br/oauth/token ",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("b",null,"Desenvolvimento"),Object(b.b)("br",null),Object(b.b)("b",null,"Token URL:")," https://api-pix-h.gerencianet.com.br/oauth/token ",Object(b.b)("br",null),Object(b.b)("b",null,"Refresh URL:")," https://api-pix-h.gerencianet.com.br/oauth/token ",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("b",null,"Scopes:")," ",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("ul",null,Object(b.b)("li",null," ",Object(b.b)("code",null,"cob.write")," - Permiss\xe3o para altera\xe7\xe3o de cobran\xe7as"),Object(b.b)("br",null)," ",Object(b.b)("li",null,Object(b.b)("code",null,"cob.read")," - Permiss\xe3o para consulta de cobran\xe7as"),Object(b.b)("br",null),Object(b.b)("li",null," ",Object(b.b)("code",null,"pix.write")," - Permiss\xe3o para altera\xe7\xe3o de Pix"),Object(b.b)("br",null),Object(b.b)("li",null," ",Object(b.b)("code",null,"pix.read")," - Permiss\xe3o para consulta de Pix"),Object(b.b)("br",null),Object(b.b)("li",null," ",Object(b.b)("code",null,"webhook.read")," - Permiss\xe3o para consulta do webhook"),Object(b.b)("br",null),Object(b.b)("li",null," ",Object(b.b)("code",null,"webhook.write")," - Permiss\xe3o para altera\xe7\xe3o do webhook"),Object(b.b)("br",null)))))),Object(b.b)("p",null,"Todas as requisi\xe7\xf5es devem conter um certificado de seguran\xe7a que ser\xe1 fornecido pela Gerencianet dentro da sua conta, no formato ",Object(b.b)("inlineCode",{parentName:"p"},"PFX(.p12)"),". Essa exig\xeancia est\xe1 descrita na integra no ",Object(b.b)("a",{href:"https://www.bcb.gov.br/estabilidadefinanceira/comunicacaodados",target:"_blank",alt:"manual de seguran\xe7a do pix"},"manual de seguran\xe7a do PIX"),"."),Object(b.b)("p",null,"Para gerar o seu certificado abra um ticket ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://sistema.gerencianet.com.br/tickets/criar"}),"aqui")," informando o n\xfamero de sua conta, o nome de sua aplica\xe7\xe3o(Menu API) e para qual ambiente ",Object(b.b)("inlineCode",{parentName:"p"},"homologa\xe7\xe3o")," ou ",Object(b.b)("inlineCode",{parentName:"p"},"produ\xe7\xe3o")," voc\xea deseja o certificado. Nossa equipe ira retornar com o certificado para voc\xea realizar o consumo dos endpoints."),Object(b.b)("p",null,Object(b.b)("strong",{parentName:"p"},"Obs"),": Em algumas linguagens voc\xea deve converter o certificado .p12 para o formato .pem. Abaixo alguns exemplos utilizando o OpenSSL para a convers\xe3o."),Object(b.b)("h4",{id:"convers\xe3o-chave-p12-para-chave-pem"},"Convers\xe3o chave P12 para chave PEM"),Object(b.b)(c.a,{defaultValue:"1",values:[{label:"Comando 1",value:"1"},{label:"Comando 2",value:"2"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"1",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-php"}),"# Gerar certificado e chave em \xfanico arquivo\nopenssl pkcs12 -in certificado.p12 -out certificado.pem -nodes\n"))),Object(b.b)(l.a,{value:"2",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-php"}),"# Gerar certificado e chave separadas\nopenssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys #certificado\nopenssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes #chave privada\n")))),Object(b.b)("br",null),Object(b.b)("h4",{id:"exemplos-de-autentica\xe7\xe3o-utilizando-o-certificado"},"Exemplos de autentica\xe7\xe3o utilizando o certificado"),Object(b.b)("p",null,"Para fazer requisi\xe7\xf5es HTTP utilizando certificados ",Object(b.b)("inlineCode",{parentName:"p"},".P12")," ou ",Object(b.b)("inlineCode",{parentName:"p"},".PEM")," para autentica\xe7\xe3o do PIX \xe9 necess\xe1rio que a chave seja inserida na requisi\xe7\xe3o."),Object(b.b)("p",null,"Para a utiliza\xe7\xe3o do PIX \xe9 necess\xe1rio que um cliente e um servidor se comuniquem em uma conex\xe3o verificada um com o outro. A verifica\xe7\xe3o \xe9 feita pelo certificado bidirecional (",Object(b.b)("inlineCode",{parentName:"p"},".PEM")," ou ",Object(b.b)("inlineCode",{parentName:"p"},".P12"),"). Um servidor e um cliente implementaram um certificado de chave privada e um certificado de chave p\xfablica."),Object(b.b)("p",null,"Abaixo, trazemos exemplos de como consumir o PIX Gerencianet incorporando esse certificado na requisi\xe7\xe3o."),Object(b.b)(c.a,{defaultValue:"php",values:[{label:"PHP",value:"php"},{label:"Python",value:"python"},{label:"NodeJS",value:"js"},{label:".NET",value:"c"},{label:"Java",value:"java"},{label:"Ruby",value:"ruby"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"php",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-php"}),'//Desenvolvido pela Consultoria T\xe9cnica da Gerencianet\n\n<?php\n\n$config = [\n "certificado" => "./certificado.pem",\n "client_id" => "YOUR-CLIENT-ID",\n "client_secret" => "YOUR-CLIENT-SECRET"\n];\n$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, desenvolvimento ou produ\xe7\xe3o\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => "",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => "POST",\n CURLOPT_POSTFIELDS => \'{"grant_type": "client_credentials"}\',\n CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado\n CURLOPT_SSLCERTPASSWD => "",\n CURLOPT_HTTPHEADER => array(\n "Authorization: Basic $autorizacao",\n "Content-Type: application/json"\n ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\n\necho "<pre>";\necho $response;\necho "</pre>";\n'))),Object(b.b)(l.a,{value:"python",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'#Desenvolvido pela Consultoria T\xe9cnica da Gerencianet\n\nimport requests\nimport base64\n\ncredentials = {\n "client_id": "YOUR-CLIENT-ID",\n "client_secret": "YOUR-CLIENT-SECRET",\n}\n\ncertificado = \'./certificado.pem\' # A vari\xe1vel certificado \xe9 o diret\xf3rio em que seu certificado em formato .pem deve ser inserido\n\nauth = base64.b64encode(\n (f"{credentials[\'client_id\']}:{credentials[\'client_secret\']}"\n ).encode()).decode()\n\nurl = "https://api-pix-h.gerencianet.com.br/oauth/token" #Para ambiente de Desenvolvimento\n\npayload="{\\r\\n \\"grant_type\\": \\"client_credentials\\"\\r\\n}"\nheaders = {\n \'Authorization\': f"Basic {auth}",\n \'Content-Type\': \'application/json\'\n}\n\nresponse = requests.request("POST",\n url,\n headers=headers,\n data=payload,\n cert=certificado)\n\nprint(response.text)\n'))),Object(b.b)(l.a,{value:"js",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'//Desenvolvido pela Consultoria T\xe9cnica da Gerencianet\n\n"use strict";\nconst https = require("https");\nvar axios = require("axios");\nvar fs = require("fs");\n\n//Insira o caminho de seu certificado .p12 dentro de seu projeto\nvar certificado = fs.readFileSync("./certificado.p12");\n\n//Insira os valores de suas credenciais em desenvolvimento do pix\nvar credenciais = {\n client_id: "YOUR-CLIENT-ID",\n client_secret: "YOUR-CLIENT-SECRET",\n};\n\nvar data = JSON.stringify({ grant_type: "client_credentials" });\nvar data_credentials = credenciais.client_id + ":" + credenciais.client_secret;\n\n// Codificando as credenciais em base64\nvar auth = Buffer.from(data_credentials).toString("base64");\n\nconst agent = new https.Agent({\n pfx: certificado,\n passphrase: "",\n});\n//Consumo em desenvolvimento da rota post oauth/token\nvar config = {\n method: "POST",\n url: "https://api-pix-h.gerencianet.com.br/oauth/token",\n headers: {\n Authorization: "Basic " + auth,\n "Content-Type": "application/json",\n },\n httpsAgent: agent,\n data: data,\n};\n\naxios(config)\n .then(function (response) {\n console.log(JSON.stringify(response.data));\n })\n .catch(function (error) {\n console.log(error);\n });\n'))),Object(b.b)(l.a,{value:"c",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'//Desenvolvido pela Consultoria T\xe9cnica da Gerencianet\n\nusing System;\nusing System.Security.Cryptography.X509Certificates;\nusing System.Collections.Generic;\nusing RestSharp;\n\nnamespace PixGerencianet\n{\n class Authorize\n {\n public static string Base64Encode(string plainText)\n {\n var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);\n return System.Convert.ToBase64String(plainTextBytes);\n }\n\n static void Main(string[] args)\n {\n\n var credencials = new Dictionary<string, string>{\n {"client_id", "YOUR-CLIENT-ID"},\n {"client_secret", "YOUR-CLIENT-SECRET"}\n };\n var authorization = Base64Encode(credencials["client_id"] + ":" + credencials["client_secret"]);\n var client = new RestSharp.RestClient("https://api-pix-h.gerencianet.com.br/oauth/token");\n var request = new RestRequest(Method.POST);\n\n X509Certificate2 uidCert = new X509Certificate2("./certificado.p12", "");\n client.ClientCertificates = new X509CertificateCollection() { uidCert };\n\n request.AddHeader("Authorization", "Basic " + authorization);\n request.AddHeader("Content-Type", "application/json");\n request.AddParameter("application/json", "{\\r\\n \\"grant_type\\": \\"client_credentials\\"\\r\\n}", ParameterType.RequestBody);\n \n IRestResponse restResponse = client.Execute(request);\n string response = restResponse.Content;\n\n Console.WriteLine(response);\n }\n }\n}\n'))),Object(b.b)(l.a,{value:"java",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-java"}),'//Desenvolvido pela Consultoria T\xe9cnica da Gerencianet\n\nimport java.io.BufferedReader;\nimport java.io.InputStreamReader;\nimport java.io.OutputStream;\nimport java.net.URL;\nimport java.util.Base64;\n\nimport javax.net.ssl.HttpsURLConnection;\nimport javax.net.ssl.SSLSocketFactory;\n\npublic class Auth {\n public static void main(String[] args) throws Exception {\n String client_id = "YOUR-CLIENT-ID";\n String client_secret = "YOUR-CLIENT-SECRET";;\n String basicAuth = Base64.getEncoder().encodeToString(((client_id+\':\'+client_secret).getBytes()));\n \n //Diret\xf3rio em que seu certificado em formato .p12 deve ser inserido\n System.setProperty("javax.net.ssl.keyStore", "certificado.p12"); \n SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();\n \n URL url = new URL ("https://api-pix-h.gerencianet.com.br/oauth/token"); //Para ambiente de Desenvolvimento \n HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();\n conn.setDoOutput(true);\n conn.setRequestMethod("POST");\n conn.setRequestProperty("Content-Type", "application/json");\n conn.setRequestProperty("Authorization", "Basic "+ basicAuth);\n conn.setSSLSocketFactory(sslsocketfactory);\n String input = "{\\"grant_type\\": \\"client_credentials\\"}";\n \n OutputStream os = conn.getOutputStream();\n os.write(input.getBytes());\n os.flush(); \n\n InputStreamReader reader = new InputStreamReader(conn.getInputStream());\n BufferedReader br = new BufferedReader(reader);\n\n String response;\n while ((response = br.readLine()) != null) {\n System.out.println(response);\n }\n conn.disconnect();\n\n }\n}\n'))),Object(b.b)(l.a,{value:"ruby",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'#Desenvolvido pela Consultoria T\xe9cnica da Gerencianet\n\nrequire "uri"\nrequire "net/http"\nrequire "openssl"\n\nclient_id = "YOUR-CLIENT-ID";\nclient_secret = "YOUR-CLIENT-SECRET";\n\ncertfile = File.read("certificado.pem") # A vari\xe1vel certfile \xe9 o diret\xf3rio em que seu certificado em formato .pem deve ser inserido\n\nurl = URI("https://api-pix-h.gerencianet.com.br/oauth/token") #Para ambiente de Desenvolvimento\n\nhttps = Net::HTTP.new(url.host, url.port);\nhttps.use_ssl = true\nhttps.cert = OpenSSL::X509::Certificate.new(certfile)\nhttps.key = OpenSSL::PKey::RSA.new(certfile)\n\nrequest = Net::HTTP::Post.new(url)\nrequest.basic_auth(client_id, client_secret)\nrequest["Content-Type"] = "application/json"\nrequest.body = "{\\r\\n \\"grant_type\\": \\"client_credentials\\"\\r\\n}"\n\nresponse = https.request(request)\nputs response.read_body\n')))),Object(b.b)("br",null),Object(b.b)("p",null,"A seguir, confira todos os endpints presentes em nossa API-Pix:"),Object(b.b)("ul",null,Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#fcaf17",mdxType:"Highlight2"},"PUT")," ",Object(b.b)("a",{href:"#criar-cobran\xe7a"},"/v2/cob/{txid}"),"(Criar cobran\xe7a) "),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#fcaf17",mdxType:"Highlight2"},"PATCH")," ",Object(b.b)("a",{href:"#revisar-cobran\xe7a"},"/v2/cob/{txid}"),"(Revisar cobran\xe7a)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#00BBCE",mdxType:"Highlight2"},"GET")," ",Object(b.b)("a",{href:"#consultar-cobran\xe7a"},"/v2/cob\u200b/{txid}"),"(Consultar cobran\xe7a)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#00BBCE",mdxType:"Highlight2"},"GET")," ",Object(b.b)("a",{href:"#consultar-lista-de-cobran\xe7as"},"/v2/cob\u200b/"),"(Consultar lista de cobran\xe7as)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#00BBCE",mdxType:"Highlight2"},"GET")," ",Object(b.b)("a",{href:""},"/v2/pix/{e2eId}")," (Consultar Pix)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#00BBCE",mdxType:"Highlight2"},"GET")," ",Object(b.b)("a",{href:""},"/v2/pix\u200b/"),"(Consultar Pix recebidos)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#009615",mdxType:"Highlight2"},"POST")," ",Object(b.b)("a",{href:""},"/v2/pix"),"(Requisitar envio de Pix)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#fcaf17",mdxType:"Highlight2"},"PUT")," ",Object(b.b)("a",{href:"#solicitar-devolu\xe7\xe3o"},"/v2/pix/e2eId/devolucao/id{id}"),"(Solicitar devolu\xe7\xe3o)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#00BBCE",mdxType:"Highlight2"},"GET")," ",Object(b.b)("a",{href:"#consultar-devolu\xe7\xe3o"},"/v2/pix/e2eId/devolucao/id{id}"),"(Consultar devolu\xe7\xe3o)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#fcaf17",mdxType:"Highlight2"},"PUT")," ",Object(b.b)("a",{href:"#configurar-o-webhook-pix"},"/v2\u200b/webhook/:chave"),"(Configurar o Webhook Pix)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#00BBCE",mdxType:"Highlight2"},"GET")," ",Object(b.b)("a",{href:"#exibir-informa\xe7\xf5es-acerca-do-webhook-pix"},"/v2/webhook/:chave"),"(Exibir informa\xe7\xf5es acerca do Wehook Pix)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#00BBCE",mdxType:"Highlight2"},"GET")," ",Object(b.b)("a",{href:""},"/v2/webhook/"),"(Consultar lista de webhooks)"),Object(b.b)("li",{parentName:"ul"},Object(b.b)(u,{color:"#b50000",mdxType:"Highlight2"},"DELETE")," ",Object(b.b)("a",{href:"#cancelar-o-webhook-pix"},"/v2\u200b/webhook/:chave"),"(Cancelar o webhook Pix)")),Object(b.b)("br",null),Object(b.b)("h2",{id:"cobpayload"},"CobPayload"),Object(b.b)("h4",{id:"endpoint-location-que-serve-um-payload-que-representa-uma-cobran\xe7a"},"Endpoint (location) que serve um payload que representa uma cobran\xe7a."),Object(b.b)("p",null,Object(b.b)("inlineCode",{parentName:"p"},"GET /{pixUrlAcessToken}")),Object(b.b)("p",null,"No momento que o usu\xe1rio pagador efetua a leitura de um QR Code din\xe2mico gerado pelo recebedor, esta URL ser\xe1 acessada e seu conte\xfado consiste em uma estrutura JWS. As informa\xe7\xf5es sobre a seguran\xe7a no acesso \xe0s urls encontram-se no Manual de Seguran\xe7a do Pix dispon\xedvel em nesse ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://www.bcb.gov.br/estabilidadefinanceira/comunicacaodados"}),"link"),"."),Object(b.b)("p",null,"Obs: A url para acesso do payload \xe9 diferente da API."),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"pixUrlAcessToken")),Object(b.b)("td",{align:"center"},"pixUrlAcessToken"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string")))),Object(b.b)("br",null),Object(b.b)("h3",{id:"descri\xe7\xe3o-do-retorno"},"Descri\xe7\xe3o do Retorno"),Object(b.b)("p",null,"O retorno desse endpoint \xe9 um objeto que apresenta estrutura JWS, conforme especificado no manual de seguran\xe7a. Segue um exemplo:"),Object(b.b)(c.a,{defaultValue:"jws",values:[{label:"Objeto JWS",value:"jws"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"jws",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{}),"eyJhbGciOiJQUzI1NiIsInR5cCI6IkpXUyJ9.\neyJ0eElkIjoiNTJjNDMzNjEtY2FhMS00ZGRiLTkxNTItNzA4NDI2YTI1ZGIzIiwicmV2aXNhbyI6IjMiLCJjYWxl\nbmRhcmlvIjp7ImNyaWFjYW8iOiIyMDIwLTA5LTE1VDE5OjM5OjU0LjAxM1oiLCJhcHJlc2VudGFjYW8iOiIyMDIw\nLTA0LTAxVDE4OjAwOjAwWiIsImV4cGlyYWNhbyI6IjEyMDAifSwidmFsb3IiOnsib3JpZ2luYWwiOiI1MDAuMDAi\nfSwiY2hhdmUiOiI3NDA3YzljOC1mNzhiLTExZWEtYWRjMS0wMjQyYWMxMjAwMDIiLCJzb2xpY2l0YWNhb1BhZ2Fk\nb3IiOiJJbmZvcm1hciBjYXJ0w6NvIGZpZGVsaWRhZGUiLCJpbmZvQWRpY2lvbmFpcyI6W3sibm9tZSI6InF1YW50\naWRhZGUiLCJ2YWxvciI6IjIifV19.\nkhlLEW4Q4W6zIYlacIaSHzwg_q9JrIkeinmvRDcUUD3120oXXew_xqSEAWsefY28g4MhUmK-RuaZgn1_rR22ZVM1\npDbblw7Sk6dlHGxEc8PbMzMgEJPLdOZRumzMLx6YBYLAYsxT-HZp_vmBT713biN3jJf3V55z9RK6Xyo1CeWvemt81\n_O4kyGZ9lbp7p0VhmdJ9u6_EquEyP2n0uWy2ikbe7AFobkAdBRoF8gtp891WG5-gZmk4ZzATORNQOTrytQYMyprWV\n7o_prVjwT308RUo9Si-FRPTvYRGqyKo-voGoQVaZgCMUjc0jLr9WqYCRMyeCJZHTJmpaCFSNQnhw \n")))),Object(b.b)("p",null,"Este objeto JWS assinado deve ser validado pelo pagador. Maiores detalhes t\xe9cnicos a respeito da especifica\xe7\xe3o de seguran\xe7a encontram-se no Manual de Seguran\xe7a do Pix."),Object(b.b)("p",null,"Conforme pode-se verificar no exemplo acima, o objeto JWS apresenta tr\xeas fragmentos separados pelo caractere . (ponto). S\xe3o eles: ",Object(b.b)("inlineCode",{parentName:"p"},"header"),", ",Object(b.b)("inlineCode",{parentName:"p"},"payload")," e ",Object(b.b)("inlineCode",{parentName:"p"},"signature"),"."),Object(b.b)("p",null,"Em termos de funcionalidade, o fragmento que interessa ao pagador \xe9 o ",Object(b.b)("inlineCode",{parentName:"p"},"payload"),", que apresenta estrutura conforme especificada pelo ",Object(b.b)("inlineCode",{parentName:"p"},"schema")," do presente endpoint, contendo detalhes concernentes \xe0 cobran\xe7a."),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"},{label:"400",value:"400"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "txId": "fc9a4366-ff3d-4964-b5db-c6c91a8722d3",\n "revisao": "3",\n "calendario": {\n "criacao": "2020-09-15T19:39:54.013Z",\n "apresentacao": "2020-04-01T18:00:00Z",\n "expiracao": "3600"\n },\n "status": "ATIVA",\n "valor": {\n "original": "500.00"\n },\n "chave": "7407c9c8-f78b-11ea-adc1-0242ac120002",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade",\n "infoAdicionais": [\n {\n "nome": "quantidade",\n "valor": "2"\n }\n ]\n}\n'))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'UnknownRegisterError\n{\n "nome": "cobranca_nao_encontrada",\n "mensagem": "Nenhuma cobran\xe7a encontrada para o location informado"\n}\n\nInvalidOperationError\n{\n "nome": "status_cobranca_invalido",\n "mensagem": "A cobran\xe7a n\xe3o est\xe1 mais com o status ATIVA"\n}\n\nOu\n\n{\n "nome": "cobranca_expirada",\n "mensagem": "A cobran\xe7a expirou"\n}\n')))),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txid")),Object(b.b)("td",{align:"left"},Object(b.b)("b",null,"Identificador da transa\xe7\xe3o"),Object(b.b)("br",null),"O campo txid, obrigat\xf3rio, determina o identificador da transa\xe7\xe3o. O objetivo desse campo \xe9 ser um elemento que possibilite ao PSP do recebedor apresentar ao usu\xe1rio recebedor a funcionalidade de concilia\xe7\xe3o de pagamentos, mais detallhes ",Object(b.b)("a",{href:"#id-da-transa\xe7\xe3o"},"veja aqui"),"."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Id da Transa\xe7\xe3o) ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"revisao")),Object(b.b)("td",{align:"left"},"Revis\xe3o da cobran\xe7a. Sempre come\xe7a em zero. Sempre varia em acr\xe9scimos de 1."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"Integer (int32) (Revis\xe3o)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"calendario")),Object(b.b)("td",{align:"left"},"Os campos aninhados sob o identificador calend\xe1rio organizam informa\xe7\xf5es a respeito de controle de tempo da cobran\xe7a. ",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"calendario:"),Object(b.b)("br",null),Object(b.b)("code",null,"criacao*"),"// Timestamp que indica o momento em que foi criada a cobran\xe7a. Respeita o formato definido na RFC 3339. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String)."),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"apresentacao*"),"// Timestamp que indica o momento em que o payload JSON que representa a cobran\xe7a foi recuperado. Ou seja, idealmente, \xe9 o momento em que o usu\xe1rio realizou a captura do QR Code para verificar os dados de pagamento. Respeita o formato definido na RFC 3339. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string date-time (Timestamp de apresenta\xe7\xe3o do QR Code)"),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"expiracao"),"// Tempo de vida da cobran\xe7a, especificado em segundos a partir da data de cria\xe7\xe3o (Calendario.criacao). ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"integer <int32>")),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"object (Calend\xe1rio)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"status")),Object(b.b)("td",{align:"left"},"Enum: ",Object(b.b)("code",null,'"ATIVA"'),",",Object(b.b)("code",null,'"CONCLUIDA"'),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,'"REMOVIDA_PELO_USUARIO_RECEBEDOR"'),",",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,'"REMOVIDA_PELO_PSP"')),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Status da Cobran\xe7a)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"devedor")),Object(b.b)("td",{align:"left"},"Os campos aninhados sob o objeto devedor s\xe3o opcionais e identificam o devedor, ou seja, a pessoa ou a institui\xe7\xe3o a quem a cobran\xe7a est\xe1 endere\xe7ada. N\xe3o identifica, necessariamente, quem ir\xe1 efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobran\xe7a, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. N\xe3o \xe9 permitido que o campo pagador.cpf e campo pagador.cnpj estejam preenchidos ao mesmo tempo. Se o campo pagador.cnpj est\xe1 preenchido, ent\xe3o o campo pagador.cpf n\xe3o pode estar preenchido, e vice-versa. Se o campo pagador.nome est\xe1 preenchido, ent\xe3o deve existir ou um pagador.cpf ou um campo pagador.cnpj preenchido.",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"devedor:"),Object(b.b)("br",null),Object(b.b)("code",null,"cpf*"),"// CPF do usu\xe1rio pagador.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string"),Object(b.b)("code",null,"/^\\d{11}$/"),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"nome*"),"// Nome do usu\xe1rio pagador. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Nome) ",Object(b.b)("code",null,"\u2264 200 characters"))),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Pessoa F\xedsica (object) or Pessoa Jur\xeddica (object)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"valor")),Object(b.b)("td",{align:"left"},"Todos os campos que indicam valores monet\xe1rios obedecem ao formato do ID 54 da especifica\xe7\xe3o EMV/BR Code para QR Codes. O separador decimal \xe9 o caractere ponto. N\xe3o \xe9 aplic\xe1vel utilizar separador de milhar. Exemplos de valores aderentes ao padr\xe3o: \u201c0.00\u201d, \u201c1.00\u201d, \u201c123.99\u201d, \u201c123456789.23\u201d",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"valor:"),Object(b.b)("br",null),Object(b.b)("code",null,"original*"),"// Valor original da cobran\xe7a.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string ",Object(b.b)("code",null,"\\d{1,10}\\.\\d{2}"))),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"object")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"chave")),Object(b.b)("td",{align:"left"},"O campo chave, obrigat\xf3rio, determina a chave Pix registrada no DICT que ser\xe1 utilizada para a cobran\xe7a. Essa chave ser\xe1 lida pelo aplicativo do PSP do pagador para consulta ao DICT, que retornar\xe1 a informa\xe7\xe3o que identificar\xe1 o recebedor da cobran\xe7a."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Chave DICT do recebedor) ",Object(b.b)("code",null,"\u2264 77 characters"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"solicitacaoPagador")),Object(b.b)("td",{align:"left"},"O campo solicitacaoPagador, opcional, determina um texto a ser apresentado ao pagador para que ele possa digitar uma informa\xe7\xe3o correlata, em formato livre, a ser enviada ao recebedor. Esse texto ser\xe1 preenchido, na pacs.008, pelo PSP do pagador, no campo RemittanceInformation . O tamanho do campo na pacs.008 est\xe1 limitado a 140 caracteres."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string (Solicita\xe7\xe3o ao pagador)",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 140 characters"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"infoAdicionais")),Object(b.b)("td",{align:"left"},"Cada respectiva informa\xe7\xe3o adicional contida na lista (nome e valor) deve ser apresentada ao pagador.",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"infoAdicionais:"),Object(b.b)("br",null),Object(b.b)("code",null,"nome*"),"// Nome do campo ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Nome) ",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 50 characters")),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"valor*"),"// Dados do campo ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Valor)",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 200 characters"))),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Array of objects (Informa\xe7\xf5es adicionais) ",Object(b.b)("code",null,"\u2264 50"))))),Object(b.b)("p",null,Object(b.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(b.b)("br",null),Object(b.b)("h2",{id:"criar-cobran\xe7a"},"Criar cobran\xe7a."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"cob.write"),")"),Object(b.b)("p",null,"Endpoint para criar uma cobran\xe7a ",Object(b.b)("inlineCode",{parentName:"p"},"PUT /v2/cob/{txid}"),"."),Object(b.b)(c.a,{defaultValue:"exemplo1",values:[{label:"Exemplo 1",value:"exemplo1"},{label:"Exemplo 2",value:"exemplo2"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"exemplo1",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),' {\n "calendario": {\n "expiracao": 3600\n },\n "devedor": {\n "cpf": "12345678909",\n "nome": "Francisco da Silva"\n },\n "valor": {\n "original": "123.45"\n },\n "chave": "71cdf9ba-c695-4e3c-b010-abb521a3f1be",\n "solicitacaoPagador": "Cobran\xe7a dos servi\xe7os prestados."\n}\n'))),Object(b.b)(l.a,{value:"exemplo2",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "calendario": {\n "expiracao": 3600\n },\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "37.00"\n },\n "chave": "ac107ed7-97cd-4fe7-8df5-a5f5659bf2f3",\n "solicitacaoPagador": "Servi\xe7o realizado.",\n "infoAdicionais": [\n {\n "nome": "Campo 1",\n "valor": "Informa\xe7\xe3o Adicional1 do PSP-Recebedor"\n },\n {\n "nome": "Campo 2",\n "valor": "Informa\xe7\xe3o Adicional2 do PSP-Recebedor"\n }\n ]\n}\n')))),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",null,"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txid")),Object(b.b)("td",{align:"left"},Object(b.b)("b",null,"Identificador da transa\xe7\xe3o"),Object(b.b)("br",null),"O campo txid, obrigat\xf3rio, determina o identificador da transa\xe7\xe3o. O objetivo desse campo \xe9 ser um elemento que possibilite ao PSP do recebedor apresentar ao usu\xe1rio recebedor a funcionalidade de concilia\xe7\xe3o de pagamentos, mais detallhes ",Object(b.b)("a",{href:"#id-da-transa\xe7\xe3o"},"veja aqui"),"."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Id da Transa\xe7\xe3o) ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))))),Object(b.b)("br",null),Object(b.b)("h3",{id:"dados-para-gera\xe7\xe3o-da-cobran\xe7a"},"Dados para gera\xe7\xe3o da cobran\xe7a."),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",null,"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"calendario")),Object(b.b)("td",{align:"left"},"Os campos aninhados sob o identificador calend\xe1rio organizam informa\xe7\xf5es a respeito de controle de tempo da cobran\xe7a. ",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"calendario:"),Object(b.b)("br",null),Object(b.b)("code",null,"criacao*"),"// Timestamp que indica o momento em que foi criada a cobran\xe7a. Respeita o formato definido na RFC 3339. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String)."),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"apresentacao*"),"// Timestamp que indica o momento em que o payload JSON que representa a cobran\xe7a foi recuperado. Ou seja, idealmente, \xe9 o momento em que o usu\xe1rio realizou a captura do QR Code para verificar os dados de pagamento. Respeita o formato definido na RFC 3339. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string date-time (Timestamp de apresenta\xe7\xe3o do QR Code)"),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"expiracao"),"// Tempo de vida da cobran\xe7a, especificado em segundos a partir da data de cria\xe7\xe3o (Calendario.criacao). ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"integer <int32>")),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"object (Calend\xe1rio)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"devedor")),Object(b.b)("td",{align:"left"},"Os campos aninhados sob o objeto devedor s\xe3o opcionais e identificam o devedor, ou seja, a pessoa ou a institui\xe7\xe3o a quem a cobran\xe7a est\xe1 endere\xe7ada. N\xe3o identifica, necessariamente, quem ir\xe1 efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobran\xe7a, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. N\xe3o \xe9 permitido que o campo pagador.cpf e campo pagador.cnpj estejam preenchidos ao mesmo tempo. Se o campo pagador.cnpj est\xe1 preenchido, ent\xe3o o campo pagador.cpf n\xe3o pode estar preenchido, e vice-versa. Se o campo pagador.nome est\xe1 preenchido, ent\xe3o deve existir ou um pagador.cpf ou um campo pagador.cnpj preenchido.",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"devedor:"),Object(b.b)("br",null),Object(b.b)("code",null,"cpf*"),"// CPF do usu\xe1rio pagador.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string /^\\d{11}$/"),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"nome*"),"// Nome do usu\xe1rio pagador. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Nome) ",Object(b.b)("code",null,"\u2264 200 characters"))),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Pessoa F\xedsica (object) or Pessoa Jur\xeddica (object)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"valor")),Object(b.b)("td",{align:"left"},"Todos os campos que indicam valores monet\xe1rios obedecem ao formato do ID 54 da especifica\xe7\xe3o EMV/BR Code para QR Codes. O separador decimal \xe9 o caractere ponto. N\xe3o \xe9 aplic\xe1vel utilizar separador de milhar. Exemplos de valores aderentes ao padr\xe3o: \u201c0.00\u201d, \u201c1.00\u201d, \u201c123.99\u201d, \u201c123456789.23\u201d",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"valor:"),Object(b.b)("br",null),Object(b.b)("code",null,"original*"),"// Valor original da cobran\xe7a.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string ",Object(b.b)("code",null,"\\d{1,10}\\.\\d{2}"))),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"object")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"chave")),Object(b.b)("td",{align:"left"},"O campo chave, obrigat\xf3rio, determina a chave Pix registrada no DICT que ser\xe1 utilizada para a cobran\xe7a. Essa chave ser\xe1 lida pelo aplicativo do PSP do pagador para consulta ao DICT, que retornar\xe1 a informa\xe7\xe3o que identificar\xe1 o recebedor da cobran\xe7a."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Chave DICT do recebedor) ",Object(b.b)("code",null,"\u2264 77 characters"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"solicitacaoPagador")),Object(b.b)("td",{align:"left"},"O campo solicitacaoPagador, opcional, determina um texto a ser apresentado ao pagador para que ele possa digitar uma informa\xe7\xe3o correlata, em formato livre, a ser enviada ao recebedor. Esse texto ser\xe1 preenchido, na pacs.008, pelo PSP do pagador, no campo RemittanceInformation . O tamanho do campo na pacs.008 est\xe1 limitado a 140 caracteres."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string (Solicita\xe7\xe3o ao pagador)",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 140 characters"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"infoAdicionais")),Object(b.b)("td",{align:"left"},"Cada respectiva informa\xe7\xe3o adicional contida na lista (nome e valor) deve ser apresentada ao pagador.",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"infoAdicionais:"),Object(b.b)("br",null),Object(b.b)("code",null,"nome*"),"// Nome do campo ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Nome) ",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 50 characters")),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"valor*"),"// Dados do campo ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Valor)",Object(b.b)("br",null),Object(b.b)("code",null," \u2264 200 characters"))),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Array of objects (Informa\xe7\xf5es adicionais) ",Object(b.b)("code",null,"\u2264 50"))))),Object(b.b)("p",null,Object(b.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"},{label:"400",value:"400"},{label:"409",value:"409"},{label:"500",value:"500"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "calendario": {\n "criacao": "2020-09-09T20:15:00.358Z",\n "expiracao": 3600\n },\n "txid": "7978c0c97ea847e78e8849634473c1f1",\n "revisao": 0,\n "loc": {\n "id": 789,\n "location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",\n "tipoCob": "cob"\n },\n "location": "pix.example.com/qr/v2/9d36b84fc70b478fb95c12729b90ca25",\n "status": "ATIVA",\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "567.89"\n },\n "chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade"\n}\n'))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'InvalidOperationError\n{\n "nome": "documento_bloqueado",\n "mensagem": "O documento desta conta tem bloqueios que impedem a emiss\xe3o"\n}\n\nOu\n\n{\n "nome": "chave_invalida",\n "mensagem": "A chave informada n\xe3o faz refer\xeancia \xe0 conta Gerencianet autenticada"\n}\n\nInvalidValueError\n{\n "nome": "valor_invalido",\n "mensagem": "Campo valor.original deve ser maior que zero"\n}\n\nOu\n\n{\n "nome": "valor_invalido",\n "mensagem": "Campo calendario.expiracao deve ser maior que zero"\n}\n\nOu\n\n{\n "nome": "valor_invalido",\n "mensagem": "Documento CPF em devedor.cpf \xe9 inv\xe1lido"\n}\n\n{\n "nome": "valor_invalido",\n "mensagem": "Documento CNPJ em devedor.cnpj \xe9 inv\xe1lido"\n}\n'))),Object(b.b)(l.a,{value:"409",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'DuplicatedRegisterError\n{\n "nome": "txid_duplicado",\n "mensagem": "Campo txid informado j\xe1 foi utilizado em outra cobran\xe7a"\n}\n'))),Object(b.b)(l.a,{value:"500",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'ApplicationError\n{\n "nome": "erro_aplicacao",\n "mensagem": "Ocorreu um erro ao validar a chave"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h2",{id:"revisar-cobran\xe7a"},"Revisar cobran\xe7a"),Object(b.b)("br",null),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"cob.write"),")"),Object(b.b)("p",null,"PATCH para revisar cobran\xe7a ",Object(b.b)("inlineCode",{parentName:"p"},"PATCH /v2/cob/{txid}")),Object(b.b)(c.a,{defaultValue:"exemplo1",values:[{label:"Exemplo",value:"exemplo1"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"exemplo1",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),' {\n "status": "REMOVIDA_PELO_USUARIO_RECEBEDOR"\n}\n')))),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",null,"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txid")),Object(b.b)("td",{align:"left"},Object(b.b)("b",null,"Identificador da transa\xe7\xe3o"),Object(b.b)("br",null),"O campo txid, obrigat\xf3rio, determina o identificador da transa\xe7\xe3o. O objetivo desse campo \xe9 ser um elemento que possibilite ao PSP do recebedor apresentar ao usu\xe1rio recebedor a funcionalidade de concilia\xe7\xe3o de pagamentos, mais detallhes ",Object(b.b)("a",{href:"#id-da-transa\xe7\xe3o"},"veja aqui"),"."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Id da Transa\xe7\xe3o) ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))))),Object(b.b)("br",null),Object(b.b)("h3",{id:"dados-para-gera\xe7\xe3o-da-cobran\xe7a-1"},"Dados para gera\xe7\xe3o da cobran\xe7a"),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"calendario")),Object(b.b)("td",{align:"left"},"Os campos aninhados sob o identificador calend\xe1rio organizam informa\xe7\xf5es a respeito de controle de tempo da cobran\xe7a. ",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"calendario:"),Object(b.b)("br",null),Object(b.b)("code",null,"criacao*"),"// Timestamp que indica o momento em que foi criada a cobran\xe7a. Respeita o formato definido na RFC 3339. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"M\xednimo de 1 caractere e m\xe1ximo de 255 caracteres (String)."),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"apresentacao*"),"// Timestamp que indica o momento em que o payload JSON que representa a cobran\xe7a foi recuperado. Ou seja, idealmente, \xe9 o momento em que o usu\xe1rio realizou a captura do QR Code para verificar os dados de pagamento. Respeita o formato definido na RFC 3339. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string date-time (Timestamp de apresenta\xe7\xe3o do QR Code)"),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"expiracao"),"// Tempo de vida da cobran\xe7a, especificado em segundos a partir da data de cria\xe7\xe3o (Calendario.criacao). ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"integer <int32>")),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"object (Calend\xe1rio)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"status")),Object(b.b)("td",{align:"left"},"Enum: ",Object(b.b)("code",null,'"ATIVA"'),",",Object(b.b)("code",null,'"CONCLUIDA"'),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,'"REMOVIDA_PELO_USUARIO_RECEBEDOR"'),",",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,'"REMOVIDA_PELO_PSP"')),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string (Status da Cobran\xe7a)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"devedor")),Object(b.b)("td",{align:"left"},"Os campos aninhados sob o objeto devedor s\xe3o opcionais e identificam o devedor, ou seja, a pessoa ou a institui\xe7\xe3o a quem a cobran\xe7a est\xe1 endere\xe7ada. N\xe3o identifica, necessariamente, quem ir\xe1 efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobran\xe7a, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. N\xe3o \xe9 permitido que o campo pagador.cpf e campo pagador.cnpj estejam preenchidos ao mesmo tempo. Se o campo pagador.cnpj est\xe1 preenchido, ent\xe3o o campo pagador.cpf n\xe3o pode estar preenchido, e vice-versa. Se o campo pagador.nome est\xe1 preenchido, ent\xe3o deve existir ou um pagador.cpf ou um campo pagador.cnpj preenchido.",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"devedor:"),Object(b.b)("br",null),Object(b.b)("code",null,"cpf*"),"// CPF do usu\xe1rio pagador.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string /^\\d{11}$/"),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"nome*"),"// Nome do usu\xe1rio pagador. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Nome) ",Object(b.b)("code",null,"\u2264 200 characters"))),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Pessoa F\xedsica (object) or Pessoa Jur\xeddica (object)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"valor")),Object(b.b)("td",{align:"left"},"Todos os campos que indicam valores monet\xe1rios obedecem ao formato do ID 54 da especifica\xe7\xe3o EMV/BR Code para QR Codes. O separador decimal \xe9 o caractere ponto. N\xe3o \xe9 aplic\xe1vel utilizar separador de milhar. Exemplos de valores aderentes ao padr\xe3o: \u201c0.00\u201d, \u201c1.00\u201d, \u201c123.99\u201d, \u201c123456789.23\u201d",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"valor:"),Object(b.b)("br",null),Object(b.b)("code",null,"origina*"),"// Valor original da cobran\xe7a.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string ",Object(b.b)("code",null,"\\d{1,10}\\.\\d{2}"))," {26,35}"),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"object")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"chave")),Object(b.b)("td",{align:"left"},"O campo chave, obrigat\xf3rio, determina a chave Pix registrada no DICT que ser\xe1 utilizada para a cobran\xe7a. Essa chave ser\xe1 lida pelo aplicativo do PSP do pagador para consulta ao DICT, que retornar\xe1 a informa\xe7\xe3o que identificar\xe1 o recebedor da cobran\xe7a."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string (Chave DICT do recebedor) ",Object(b.b)("code",null,"\u2264 77 characters"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"solicitacaoPagador")),Object(b.b)("td",{align:"left"},"O campo solicitacaoPagador, opcional, determina um texto a ser apresentado ao pagador para que ele possa digitar uma informa\xe7\xe3o correlata, em formato livre, a ser enviada ao recebedor. Esse texto ser\xe1 preenchido, na pacs.008, pelo PSP do pagador, no campo RemittanceInformation . O tamanho do campo na pacs.008 est\xe1 limitado a 140 caracteres."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string (Solicita\xe7\xe3o ao pagador)",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 140 characters"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"infoAdicionais")),Object(b.b)("td",{align:"left"},"Cada respectiva informa\xe7\xe3o adicional contida na lista (nome e valor) deve ser apresentada ao pagador.",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"infoAdicionais:"),Object(b.b)("br",null),Object(b.b)("code",null,"nome*"),"// Nome do campo ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Nome) ",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 50 characters")),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"valor*"),"// Dados do campo ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Valor) ",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 200 characters"))),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Array of objects (Informa\xe7\xf5es adicionais) ",Object(b.b)("code",null,"\u2264 50"))))),Object(b.b)("p",null,Object(b.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-1"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"},{label:"400",value:"400"},{label:"409",value:"409"},{label:"500",value:"500"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "status": "ATIVA",\n "calendario": {\n "criacao": "2020-09-09T20:15:00.358Z",\n "expiracao": 3600\n },\n "location": "pix.example.com/qr/9d36b84f-c70b-478f-b95c-12729b90ca25",\n "txid": "7978c0c9-7ea8-47e7-8e88-49634473c1f1",\n "revisao": 1,\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "567.89"\n },\n "chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade"\n}\n'))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'UnknownRegisterError\n{\n "nome": "cobranca_nao_encontrada",\n "mensagem": "Nenhuma cobran\xe7a encontrada para o txid informado"\n}\n\nInvalidOperationError\n{\n "nome": "status_cobranca_invalido",\n "mensagem": "A cobran\xe7a n\xe3o est\xe1 mais com o status ATIVA"\n}\n\nOu\n\n{\n "nome": "chave_invalida",\n "mensagem": "A chave informada n\xe3o faz refer\xeancia \xe0 conta Gerencianet autenticada"\n}\n\n\nInvalidValueError\n{\n "nome": "valor_invalido",\n "mensagem": "Campo calendario.expiracao deve ser maior que zero"\n}\n\nOu\n\n{\n "nome": "valor_invalido",\n "mensagem": "Documento CPF em devedor.cpf \xe9 inv\xe1lido"\n}\n\nOu\n\n{\n "nome": "valor_invalido",\n "mensagem": "Documento CNPJ em devedor.cnpj \xe9 inv\xe1lido"\n}\n'))),Object(b.b)(l.a,{value:"409",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'DuplicatedRegisterError\n{\n "nome": "txid_duplicado",\n "mensagem": "Campo txid informado j\xe1 foi utilizado em outra cobran\xe7a"\n}\n'))),Object(b.b)(l.a,{value:"500",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'ApplicationError\n{\n "nome": "erro_aplicacao",\n "mensagem": "Ocorreu um erro ao validar a chave"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h2",{id:"consultar-cobran\xe7a"},"Consultar cobran\xe7a"),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"cob.read"),")"),Object(b.b)("p",null,"Endpoint para consultar uma cobran\xe7a atrav\xe9s de um determinado TxID, o par\xe2metro deve ser inserido na query ",Object(b.b)("inlineCode",{parentName:"p"},"GET /v2/cob\u200b/{txid}"),"."),Object(b.b)("p",null,"Permite recuperar revis\xf5es anteriores de uma cobran\xe7a. Na aus\xeancia desse par\xe2metro, sempre ser\xe1 retornada a cobran\xe7a conforme consta em sua \xfaltima revis\xe3o."),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"Exemplo",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{}),"{{gn-pix-api}}/v2/cob/:fc9a4366773d496ab4dbc6c91a8722d7\n")))),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",null,"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txid")),Object(b.b)("td",{align:"left"},Object(b.b)("b",null,"Identificador da transa\xe7\xe3o"),Object(b.b)("br",null),"O campo txid, obrigat\xf3rio, determina o identificador da transa\xe7\xe3o. O objetivo desse campo \xe9 ser um elemento que possibilite ao PSP do recebedor apresentar ao usu\xe1rio recebedor a funcionalidade de concilia\xe7\xe3o de pagamentos, mais detallhes ",Object(b.b)("a",{href:"#id-da-transa\xe7\xe3o"},"veja aqui"),"."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Id da Transa\xe7\xe3o) ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"revisao")),Object(b.b)("td",null,"Permite recuperar revis\xf5es anteriores de uma cobran\xe7a. Na aus\xeancia desse par\xe2metro, sempre ser\xe1 retornada a cobran\xe7a conforme consta em sua \xfaltima revis\xe3o."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Integer <int32> (Revis\xe3o)")))),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-2"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida1",values:[{label:"Exemplo 1",value:"saida1"},{label:"Exemplo 2",value:"saida2"},{label:"400",value:"400"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida1",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "status": "ATIVA",\n "calendario": {\n "criacao": "2020-09-09T20:15:00.358Z",\n "expiracao": 3600\n },\n "location": "pix.example.com/qr/9d36b84f-c70b-478f-b95c-12729b90ca25",\n "txid": "7978c0c9-7ea8-47e7-8e88-49634473c1f1",\n "revisao": 1,\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "567.89"\n },\n "chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade"\n}\n'))),Object(b.b)(l.a,{value:"saida2",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "status": "CONCLUIDA",\n "calendario": {\n "criacao": "2020-09-09T20:15:00.358Z",\n "expiracao": 3600\n },\n "location": "qrcodes-pix.gerencianet.com.br/1dd7f893-a58e-4172-8702-8dc33e21a403",\n "txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",\n "revisao": 1,\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "100.00"\n },\n "chave": "40a0932d-1918-4eee-845d-35a2da1690dc",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade",\n "pix": [\n {\n "endToEndId": "E12345678202009091221kkkkkkkkkkk",\n "txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",\n "valor": "110.00",\n "horario": "2020-09-09T20:15:00.358Z",\n "pagador": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "infoPagador": "0123456789",\n "devolucoes": [\n {\n "id": "123ABC",\n "rtrId": "Dxxxxxxxx202009091221kkkkkkkkkkk",\n "valor": "10.00",\n "horario": {\n "solicitacao": "2020-09-09T20:15:00.358Z"\n },\n "status": "EM_PROCESSAMENTO"\n }\n ]\n }\n ]\n}\n'))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'UnknownRegisterError\n{\n "nome": "cobranca_nao_encontrada",\n "mensagem": "Nenhuma cobran\xe7a encontrada para o txid informado"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h2",{id:"consultar-lista-de-cobran\xe7as"},"Consultar lista de cobran\xe7as"),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"cob.read"),")"),Object(b.b)("p",null,"Endpoint para consultar cobran\xe7as atrav\xe9s de par\xe2metros como in\xedcio, fim, cpf, cnpj e status",Object(b.b)("inlineCode",{parentName:"p"},"GET /v2/cob\u200b/"),". Os atributos s\xe3o inseridos no par\xe2metro da query."),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"Exemplo",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{}),"{{gn-pix-api}}/v2/cob?inicio=2020-10-22T16:01:35Z&fim=2020-11-30T20:10:00Z\n")))),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"inicio")),Object(b.b)("td",{align:"left"},"Filtra os registros cuja data de cria\xe7\xe3o seja maior ou igual que a data de in\xedcio. Respeita RFC 3339"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("br",null)," <date-time>")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"fim")),Object(b.b)("td",{align:"left"},"Filtra os registros cuja data de cria\xe7\xe3o seja maior ou igual que a data de in\xedcio. Respeita RFC 3339."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("br",null),"<date-time>")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"cpf")),Object(b.b)("td",{align:"left"},"Filtro pelo CPF do pagador. N\xe3o pode ser utilizado ao mesmo tempo que o CNPJ."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,Object(b.b)("code",null,"string /^\\d{11}$/"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"cnpj")),Object(b.b)("td",{align:"left"},"Filtro pelo CNPJ do pagador. N\xe3o pode ser utilizado ao mesmo tempo que o CPF."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"/^\\d{14}$/"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"status")),Object(b.b)("td",{align:"left"},"Enum: ",Object(b.b)("code",null,'"ATIVA"'),",",Object(b.b)("code",null,'"CONCLUIDA"'),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,'"REMOVIDA_PELO_USUARIO_RECEBEDOR"'),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,'"REMOVIDA_PELO_PSP"'),Object(b.b)("br",null),Object(b.b)("br",null),"Filtro pelo status da cobran\xe7a."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"paginacao.paginaAtual")),Object(b.b)("td",{align:"left"},"Default: ",Object(b.b)("code",null,"0"),Object(b.b)("br",null)," P\xe1gina a ser retornada pela consulta. Se n\xe3o for informada, o PSP assumir\xe1 que ser\xe1 0."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"integer <int32> (P\xe1gina atual) ",Object(b.b)("code",null,"\u2265 0"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"paginacao.itensPorPagina")),Object(b.b)("td",{align:"left"},"Default: ",Object(b.b)("code",null,"100"),Object(b.b)("br",null)," Quantidade m\xe1xima de registros retornados em cada p\xe1gina. Apenas a \xfaltima p\xe1gina pode conter uma quantidade menor de registros."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"integer <int32>(Itens por P\xe1gina)",Object(b.b)("code",null,"[1 .. 1000]"))))),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-3"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"Exemplo 1 (200)",value:"saida"},{label:"Exemplo 2 (200)",value:"saida2"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "parametros": {\n "inicio": "2020-04-01T00:00:00Z",\n "fim": "2020-04-02T10:00:00Z",\n "paginacao": {\n "paginaAtual": 0,\n "itensPorPagina": 100,\n "quantidadeDePaginas": 1,\n "quantidadeTotalDeItens": 2\n }\n },\n "cobs": [\n {\n "status": "ATIVA",\n "calendario": {\n "criacao": "2020-09-09T20:15:00.358Z",\n "expiracao": "3600"\n },\n "location": "qrcodes-pix.gerencianet.com.br/9d36b84f-c70b-478f-b95c-12729b90ca25",\n "txid": "7978c0c9-7ea8-47e7-8e88-49634473c1f1",\n "revisao": 1,\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "567.89"\n },\n "chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade"\n },\n {\n "status": "CONCLUIDA",\n "calendario": {\n "criacao": "2020-09-09T20:15:00.358Z",\n "expiracao": 3600\n },\n "location": "qrcodes-pix.gerencianet.com.br/1dd7f893-a58e-4172-8702-8dc33e21a403",\n "txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",\n "revisao": 1,\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "100.00"\n },\n "chave": "40a0932d-1918-4eee-845d-35a2da1690dc",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade",\n "pix": [\n {\n "endToEndId": "E12345678202009091221kkkkkkkkkkk",\n "txid": "655dfdb1-a451-4b8f-bb58-254b958913fb",\n "valor": "110.00",\n "horario": "2020-09-09T20:15:00.358Z",\n "pagador": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "infoPagador": "0123456789",\n "devolucoes": [\n {\n "id": "123ABC",\n "rtrId": "Dxxxxxxxx202009091221kkkkkkkkkkk",\n "valor": "10.00",\n "horario": {\n "solicitacao": "2020-09-09T20:15:00.358Z"\n },\n "status": "EM_PROCESSAMENTO"\n }\n ]\n }\n ]\n }\n ]\n}\n'))),Object(b.b)(l.a,{value:"saida2",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "parametros": {\n "inicio": "2020-04-01T00:00:00Z",\n "fim": "2020-04-01T23:59:59Z",\n "paginacao": {\n "paginaAtual": 0,\n "itensPorPagina": 100,\n "quantidadeDePaginas": 1,\n "quantidadeTotalDeItens": 1\n }\n },\n "cobs": [\n {\n "status": "ATIVA",\n "calendario": {\n "criacao": "2020-09-09T20:15:00.358Z",\n "expiracao": 3600\n },\n "location": "qrcodes-pix.gerencianet.com.br/9d36b84f-c70b-478f-b95c-12729b90ca25",\n "txid": "7978c0c9-7ea8-47e7-8e88-49634473c1f1",\n "revisao": 1,\n "devedor": {\n "cnpj": "12345678000195",\n "nome": "Empresa de Servi\xe7os SA"\n },\n "valor": {\n "original": "567.89"\n },\n "chave": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",\n "solicitacaoPagador": "Informar cart\xe3o fidelidade"\n }\n ]\n}\n')))),Object(b.b)("br",null),Object(b.b)("h2",{id:"pix"},"Pix"),Object(b.b)("p",null,"Reune endpoints destinados a lidar com gerenciamento de Pix recebidos."),Object(b.b)("br",null),Object(b.b)("h3",{id:"consultar-pix"},"Consultar Pix."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"pix.read"),")"),Object(b.b)("p",null,"Endpoint para consultar um Pix atrav\xe9s de um e2eid ",Object(b.b)("inlineCode",{parentName:"p"},"GET /v2/pix/{e2eId}"),"."),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"e2eid")),Object(b.b)("td",{align:"left"},"e2eid do Pix"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Id fim a fim da transa\xe7\xe3o) ",Object(b.b)("code",null,"32 characters"),Object(b.b)("code",null,"[A-Z0-9-]{32}"))))),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-4"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"},{label:"403",value:"403"},{label:"404",value:"404"},{label:"503",value:"503"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "endToEndId": "E12345678202009091221abcdef12345",\n "txid": "cd1fe328c875481285a6f233ae41b662",\n "valor": "100.00",\n "horario": "2020-09-10T13:03:33.902Z",\n "infoPagador": "Reforma da casa",\n "devolucoes": [\n {\n "id": "000AAA111",\n "rtrId": "D12345678202009091000abcde123456",\n "valor": "11.00",\n "horario": {\n "solicitacao": "2020-09-10T13:03:33.902Z"\n },\n "status": "EM_PROCESSAMENTO"\n }\n ]\n}\n'))),Object(b.b)(l.a,{value:"403",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "https://pix.bcb.gov.br/api/v2/error/AcessoNegado",\n "title": "Acesso Negado",\n "status": 403,\n "detail": "Requisi\xe7\xe3o de participante autenticado que viola alguma regra de autoriza\xe7\xe3o."\n}\n'))),Object(b.b)(l.a,{value:"404",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n"type": "https://pix.bcb.gov.br/api/v2/error/NaoEncontrado",\n"title": "N\xe3o Encontrado",\n"status": 404,\n"detail": "Entidade n\xe3o encontrada."\n}\n'))),Object(b.b)(l.a,{value:"503",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "https://pix.bcb.gov.br/api/v2/error/ServicoIndisponivel",\n "title": "Servi\xe7o Indispon\xedvel",\n "status": 503,\n "detail": "Servi\xe7o n\xe3o est\xe1 dispon\xedvel no momento. Servi\xe7o solicitado pode estar em manuten\xe7\xe3o ou fora da janela de funcionamento."\n}\n')))),Object(b.b)("br",null),Object(b.b)("h3",{id:"consultar-pix-recebidos"},"Consultar Pix recebidos."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"pix.read"),")"),Object(b.b)("p",null,"Endpoint para consultar Pix recebidos ",Object(b.b)("inlineCode",{parentName:"p"},"GET /v2/pix\u200b/"),"."),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"inicio")),Object(b.b)("td",{align:"left"},"Filtra os registros cuja data de cria\xe7\xe3o seja maior ou igual que a data de in\xedcio. Respeita RFC 3339"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("br",null)," <date-time>")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"fim")),Object(b.b)("td",{align:"left"},"Filtra os registros cuja data de cria\xe7\xe3o seja maior ou igual que a data de in\xedcio. Respeita RFC 3339."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("br",null),"<date-time>")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txid")),Object(b.b)("td",{align:"left"},Object(b.b)("b",null,"Identificador da transa\xe7\xe3o"),Object(b.b)("br",null),"O campo txid, obrigat\xf3rio, determina o identificador da transa\xe7\xe3o. O objetivo desse campo \xe9 ser um elemento que possibilite ao PSP do recebedor apresentar ao usu\xe1rio recebedor a funcionalidade de concilia\xe7\xe3o de pagamentos, mais detallhes ",Object(b.b)("a",{href:"#id-da-transa\xe7\xe3o"},"veja aqui"),"."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string (Id da Transa\xe7\xe3o) ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txidPresente")),Object(b.b)("td",{align:"left"},"Boolean."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null)),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"devolucaoPresente")),Object(b.b)("td",{align:"left"},"Boolean."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null)),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"cpf")),Object(b.b)("td",{align:"left"},"Filtro pelo CPF do pagador. N\xe3o pode ser utilizado ao mesmo tempo que o CNPJ."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,Object(b.b)("code",null,"string /^\\d{11}$/"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"cnpj")),Object(b.b)("td",{align:"left"},"Filtro pelo CNPJ do pagador. N\xe3o pode ser utilizado ao mesmo tempo que o CPF."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"/^\\d{14}$/"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"paginacao.paginaAtual")),Object(b.b)("td",{align:"left"},"Default: ",Object(b.b)("code",null,"0"),Object(b.b)("br",null)," P\xe1gina a ser retornada pela consulta. Se n\xe3o for informada, o PSP assumir\xe1 que ser\xe1 0."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"integer <int32> (P\xe1gina atual) ",Object(b.b)("code",null,"\u2265 0"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"paginacao.itensPorPagina")),Object(b.b)("td",{align:"left"},"Default: ",Object(b.b)("code",null,"100"),Object(b.b)("br",null)," Quantidade m\xe1xima de registros retornados em cada p\xe1gina. Apenas a \xfaltima p\xe1gina pode conter uma quantidade menor de registros."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"integer <int32>(Itens por P\xe1gina)",Object(b.b)("code",null,"[1 .. 1000]"))))),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-5"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"},{label:"403",value:"403"},{label:"503",value:"503"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "parametros": {\n "inicio": "2020-04-01T00:00:00Z",\n "fim": "2020-04-01T23:59:59Z",\n "paginacao": {\n "paginaAtual": 0,\n "itensPorPagina": 100,\n "quantidadeDePaginas": 1,\n "quantidadeTotalDeItens": 2\n }\n },\n "pix": [\n {\n "allOf": [\n {\n "$ref": "#/components/examples/pixResponse1/value"\n }\n ]\n },\n {\n "allOf": [\n {\n "$ref": "#/components/examples/pixResponse2/value"\n }\n ]\n }\n ]\n}\n'))),Object(b.b)(l.a,{value:"403",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "https://pix.bcb.gov.br/api/v2/error/AcessoNegado",\n "title": "Acesso Negado",\n "status": 403,\n "detail": "Requisi\xe7\xe3o de participante autenticado que viola alguma regra de autoriza\xe7\xe3o."\n}\n'))),Object(b.b)(l.a,{value:"503",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "https://pix.bcb.gov.br/api/v2/error/ServicoIndisponivel",\n "title": "Servi\xe7o Indispon\xedvel",\n "status": 503,\n "detail": "Servi\xe7o n\xe3o est\xe1 dispon\xedvel no momento. Servi\xe7o solicitado pode estar em manuten\xe7\xe3o ou fora da janela de funcionamento."\n}\n')))),Object(b.b)("br",null),Object(b.b)("h3",{id:"requisitar-envio-de-pix"},"Requisitar envio de Pix."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")),Object(b.b)("p",null,"Endpoint destinado a realizar o envio direto de um Pix para uma chave Pix cadastrada em um PSP seja da Gerencianet ou outro. ",Object(b.b)("inlineCode",{parentName:"p"},"POST /v2/pix")),Object(b.b)("p",null,Object(b.b)("strong",{parentName:"p"},"Para habilitar o end-point pix/enviar \xe9 necess\xe1rio entrar em contato com a equipe Comercial da Gerencianet para novo anexo contratual.")),Object(b.b)("p",null,Object(b.b)("strong",{parentName:"p"},"O endpoint poder\xe1 sofrer altera\xe7\xf5es quando entrar no escopo de padroniza\xe7\xe3o do BACEN. Os clientes habilitados ser\xe3o avisados com anteced\xeancia.")),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"Exemplo 1",value:"saida"},{label:"Exemplo 2",value:"2"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "valor": "12.34",\n "pagador": {\n "chave": "19974764017"\n },\n "favorecido": {\n "chave": "jo\[email protected]"\n }\n}\n'))),Object(b.b)(l.a,{value:"2",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "valor": "99.99",\n "pagador": {\n "chave": "19974764017",\n "infoPagador": "Segue o pagamento da conta"\n },\n "favorecido": {\n "contaBanco": {\n "nome": "JOSE CARVALHO",\n "cpf": "10519952057",\n "codigoBanco": "09089356",\n "agencia": "1",\n "conta": "123453",\n "tipoConta": "cacc"\n }\n }\n}\n')))),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"valor")),Object(b.b)("td",{align:"left"},"Valores monet\xe1rios referentes \xe0 cobran\xe7a."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"\\d{1,10}.\\d{2}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"pagador")),Object(b.b)("td",{align:"left"},"O campo pagador, obrigat\xf3rio, cont\xe9m a chave Pix associada a conta autenticada que ser\xe1 debitado o valor definido.",Object(b.b)("br",null),Object(b.b)("br",null),"pagador:",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"chave*")," // O campo chave, obrigat\xf3rio, determina a chave Pix registrada no DICT que ser\xe1 utilizada identificar o pagador do Pix.string (Chave DICT do pagador) ",Object(b.b)("code",null,"\u2264 77 characters"),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"infoPagador")," // Informa\xe7\xe3o do pagador sobre o Pix a ser enviado. string ",Object(b.b)("code",null,"\u2264 140 characters"),Object(b.b)("br",null),Object(b.b)("br",null)),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"object")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"favorecido")),Object(b.b)("td",{align:"left"},"O campo favorecido, obrigat\xf3rio, cont\xe9m a chave Pix que ser\xe1 creditado o valor definido.",Object(b.b)("br",null),Object(b.b)("br",null),"Atributos favorecido:",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"chave")," // O campo chave, obrigat\xf3rio, determina a chave Pix registrada no DICT que ser\xe1 utilizada identificar o recebedor do Pix. string (Chave DICT do recebedor) ",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 77 characters"),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"contaBanco")," // O campo contaBanco, obrigat\xf3rio, determina os dados banc\xe1rios do recebedor do Pix.",Object(b.b)("br",null),"Atributos contaBanco:",Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"nome (Obrigat\xf3rio)")," // ISPB do Banco do recebedor (string) ",Object(b.b)("code",null,"\u2264 200 characters "),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"cpf")," // CPF do recebedor (string) ",Object(b.b)("code",null,"^[0-9]{11}$"),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"cnpj")," // CNPJ do recebedor (string) ",Object(b.b)("code",null,"^[0-9]{14}$"),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"codigoBanco (Obrigat\xf3rio)")," // ISPB do Banco do recebedor (string) ",Object(b.b)("code",null,"^[0-9]{8}$"),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"agencia (Obrigat\xf3rio)")," // Ag\xeancia do recebedor no seu Banco (string) ",Object(b.b)("code",null,"^[0-9]{1,4}$"),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"conta (Obrigat\xf3rio)")," // Conta do recebedor no seu Banco (string)",Object(b.b)("code",null,"^[0-9]+"),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"tipoConta (Obrigat\xf3rio)")," // Tipo da conta do recebedor no seu Banco (string)",Object(b.b)("code",null,"^[0-9]+"),Object(b.b)("br",null)," * Enum: ",Object(b.b)("code",null,'"cacc"'),"(Conta corrente), ",Object(b.b)("code",null,'"slry"'),"(Conta sal\xe1rio), ",Object(b.b)("code",null,'"svgs"'),"(poupan\xe7a)"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"object")))),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-6"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"},{label:"400",value:"400"},{label:"422",value:"422"},{label:"500",value:"500"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "e2eId": "E09089356202011251226APIff82f2e5",\n "valor": "12.31",\n "horario": {\n "solicitacao": "2020-11-25T12:26:42.905Z"\n },\n "status": {\n "type": "EM_PROCESSAMENTO"\n }\n}\n'))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "chave_invalida",\n "mensagem": "A chave informada n\xe3o faz refer\xeancia \xe0 conta Gerencianet autenticada"\n}\n'))),Object(b.b)(l.a,{value:"422",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "saldo_insuficiente",\n "mensagem": "Saldo insuficiente para realizar o pagamento"\n}\n\nOu\n\n{\n "nome": "pagamento_negado",\n "mensagem": "Pagamento negado por an\xe1lises"\n}\n'))),Object(b.b)(l.a,{value:"500",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "erro_aplicacao",\n "mensagem": "Ocorreu um erro ao requisitar o pix"\n}\n\nOu\n//InvalidKey\n{\n "nome": "erro_aplicacao",\n "mensagem": "Ocorreu um erro ao buscar os dados da chave"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h3",{id:"solicitar-devolu\xe7\xe3o"},"Solicitar devolu\xe7\xe3o."),Object(b.b)("p",null,'Endpoint para solicitar uma devolu\xe7\xe3o atrav\xe9s de um e2eid do Pix e do ID da devolu\xe7\xe3o. O motivo que ser\xe1 atribu\xeddo \xe0 PACS.004 ser\xe1 "Devolu\xe7\xe3o solicitada pelo usu\xe1rio recebedor do pagamento original" cuja sigla \xe9 "MD06" de acordo com a aba RTReason da PACS.004 que consta no Cat\xe1logo de Mensagens do Pix. '),Object(b.b)("p",null,"Solicitar devolu\xe7\xe3o ",Object(b.b)("inlineCode",{parentName:"p"},"PUT /v2/pix\u200b/{e2eid}\u200b/devolucao\u200b/{id}"),"."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"e2eid")),Object(b.b)("td",{align:"left"},"e2eid do Pix"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"[A-Z0-9-]{32}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"id")),Object(b.b)("td",{align:"left"},"ID da devolu\xe7\xe3o"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))))),Object(b.b)("br",null),Object(b.b)("h4",{id:"requisi\xe7\xe3o"},"Requisi\xe7\xe3o"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"Exemplo de solicita\xe7\xe3o de devolu\xe7\xe3o",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "valor": "7.89"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-7"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"201",value:"saida"},{label:"400",value:"400"},{label:"409",value:"409"},{label:"500",value:"500"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "123456",\n "rtrId": "D12345678202009091000abcde123456",\n "valor": "7.89",\n "horario": {\n "solicitacao": "2020-09-11T15:25:59.411Z"\n },\n "status": "EM_PROCESSAMENTO"\n}\n'))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "pix_nao_encontrado",\n "mensagem": "Nenhum pix encontrado para o identificador informado"\n}\n'))),Object(b.b)(l.a,{value:"409",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "devolucao_id_duplicado",\n "mensagem": "O id informado j\xe1 foi utilizado em outra devolu\xe7\xe3o"\n}\n'))),Object(b.b)(l.a,{value:"500",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "erro_aplicacao",\n "mensagem": "Ocorreu um erro ao solicitar devolu\xe7\xe3o"\n}\n')))),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("h3",{id:"consultar-devolu\xe7\xe3o"},"Consultar devolu\xe7\xe3o."),Object(b.b)("p",null,"Endpoint para consultar uma devolu\xe7\xe3o atrav\xe9s de um End To End ID do Pix e do ID da devolu\xe7\xe3o"),Object(b.b)("p",null,"Consultar devolu\xe7\xe3o ",Object(b.b)("inlineCode",{parentName:"p"},"GET /v2/pix\u200b/{e2eid}\u200b/devolucao\u200b/{id}"),"."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"e2eid")),Object(b.b)("td",{align:"left"},"e2eid do Pix"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"[A-Z0-9-]{32}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"id")),Object(b.b)("td",{align:"left"},"ID da devolu\xe7\xe3o"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))))),Object(b.b)("br",null),Object(b.b)("h4",{id:"respostas-8"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"},{label:"400",value:"400"},{label:"409",value:"409"},{label:"500",value:"500"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "123456",\n "rtrId": "D12345678202009091000abcde123456",\n "valor": "7.89",\n "horario": {\n "solicitacao": "2020-09-11T15:25:59.411Z"\n },\n "status": "EM_PROCESSAMENTO"\n}\n'))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "devolucao_nao_encontrada",\n "mensagem": "Nenhuma devolu\xe7\xe3o encontrada para o identificador informado"\n}\n'))),Object(b.b)(l.a,{value:"500",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "nome": "erro_aplicacao",\n "mensagem": "Ocorreu um erro ao buscar devolu\xe7\xe3o"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h2",{id:"webhook"},"Webhook"),Object(b.b)("p",null,"Reune endpoints para gerenciamento de notifica\xe7\xf5es por parte do PSP recebedor ao usu\xe1rio recebedor."),Object(b.b)("br",null),Object(b.b)("h3",{id:"configurar-o-webhook-pix"},"Configurar o Webhook Pix."),Object(b.b)("p",null,"Endpoint para configura\xe7\xe3o do servi\xe7o de notifica\xe7\xf5es acerca de Pix recebidos. Somente PIX associados a um txid ser\xe3o notificados."),Object(b.b)("p",null,"Configurar o Webhook Pix ",Object(b.b)("inlineCode",{parentName:"p"},"PUT /v2\u200b/webhook/:chave"),"."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"webhook.write"),")"),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"webhookUrl")),Object(b.b)("td",{align:"left"},"Url para onde a notifica\xe7\xe3o vai ser enviada"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,Object(b.b)("code",null,"string <uri>"))))),Object(b.b)("br",null),Object(b.b)("h4",{id:"requisi\xe7\xe3o-1"},"Requisi\xe7\xe3o"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"Exemplo",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n"webhookUrl": "https://gn-pix-webhook.gerencianet.com.br/webhook"\n}\n')))),Object(b.b)("h4",{id:"respostas-9"},"Respostas"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"201",value:"saida"},{label:"400",value:"400"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),"Webhook para notifica\xe7\xf5es acerca de Pix recebidos associados a um txid.\n"))),Object(b.b)(l.a,{value:"400",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'InvalidValueError\n{\n "nome": "valor_invalido",\n "mensagem": "URL inv\xe1lida"\n}\n\nOu\n\n{\n "nome": "valor_invalido",\n "mensagem": "A URL do webhook deve usar o protocolo HTTPS"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h3",{id:"callbacks"},"Callbacks"),Object(b.b)("p",null,"Esse servi\xe7o est\xe1 protegido por uma camada de autentica\xe7\xe3o mTLS.Os callbacks s\xe3o enviados pela Gerencianet via ",Object(b.b)("inlineCode",{parentName:"p"},"POST {$request.body#\u200b/webhookUrl}\u200b/pix")," quando h\xe1 uma altera\xe7\xe3o no status do PIX."),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"Exemplo",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "pix": [\n {\n "endToEndId": "E12345678202009091221kkkkkkkkkkk",\n "txid": "c3e0e7a4-e7f1-469a-9f78-2d3d4999343c",\n "valor": "110.00",\n "horario": "2020-09-09T20:15:00.358Z",\n "infoPagador": "0123456789",\n "devolucoes": {\n "id": "123ABC",\n "rtrId": "D12345678202009091221abcdf098765",\n "valor": "10.00",\n "horario": {\n "solicitacao": "2020-09-09T20:15:00.358Z"\n },\n "status": "EM_PROCESSAMENTO"\n }\n }\n ]\n}\n')))),Object(b.b)("br",null),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",null,"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio"),Object(b.b)("th",{align:"center"},"Tipo")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"endToEndId")),Object(b.b)("td",null,"EndToEndIdentification que transita na PACS002, PACS004 e PACS008"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string (Id fim a fim da transa\xe7\xe3o) ",Object(b.b)("br",null),Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txid")),Object(b.b)("td",{align:"left"},Object(b.b)("b",null,"Identificador da transa\xe7\xe3o"),Object(b.b)("br",null),"O campo txid, obrigat\xf3rio, determina o identificador da transa\xe7\xe3o. O objetivo desse campo \xe9 ser um elemento que possibilite ao PSP do recebedor apresentar ao usu\xe1rio recebedor a funcionalidade de concilia\xe7\xe3o de pagamentos, mais detallhes ",Object(b.b)("a",{href:"#id-da-transa\xe7\xe3o"},"veja aqui"),"."),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Array of objects (Pix)",Object(b.b)("br",null)," ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"valor")),Object(b.b)("td",null,"Valor do Pix."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("code",null,"\\d{1,10}\\.\\d{2}"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"horario")),Object(b.b)("td",null,"Hor\xe1rio em que o Pix foi processado no PSP."),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string <date-time> (Hor\xe1rio)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"pagador")),Object(b.b)("td",{align:"left"}," Um CPF ou um CNPJ pode ser o pagador de uma cobran\xe7a. N\xe3o \xe9 permitido que o campo pagador.cpf e campo pagador.cnpj estejam preenchidos ao mesmo tempo. Se o campo pagador.cnpj est\xe1 preenchido, ent\xe3o o campo pagador.cpf n\xe3o pode estar preenchido, e vice-versa.",Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("em",null,"pagador:"),Object(b.b)("br",null),Object(b.b)("code",null,"cpf*"),"// CPF do usu\xe1rio pagador.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string ",Object(b.b)("code",null,"/^\\d{11}$/")),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"nome*"),"// Nome do usu\xe1rio pagador. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Nome) ",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264 200 characters"))),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Pessoa F\xedsica (object) or Pessoa Jur\xeddica (object)")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"infoPagador")),Object(b.b)("td",null,"Informa\xe7\xe3o livre do pagador"),Object(b.b)("td",{align:"center"},"Sim"),Object(b.b)("td",null,"string ",Object(b.b)("br",null),Object(b.b)("code",null,"\u2264140 characters"))),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"devolucoes")),Object(b.b)("td",{align:"left"},Object(b.b)("em",null,"devolucoes:"),Object(b.b)("br",null),Object(b.b)("code",null,"id*"),"// Id gerado pelo cliente para representar unicamente uma devolu\xe7\xe3o.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Id da Devolu\xe7\xe3o) ",Object(b.b)("code",null,"[A-Z0-9-]{26,35}")),Object(b.b)("br",null),Object(b.b)("br",null)," ",Object(b.b)("code",null,"rtrId*"),"// ReturnIdentification que transita na PACS004. ",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (RtrId) ",Object(b.b)("code",null,"\u2264 32 characters")),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"valor*"),"// Valor a devolver.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string ",Object(b.b)("code",null,"\\d{1,10}\\.\\d{2}")),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"horario*"),"// Atributos de hor\xe1rio",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"object"),Object(b.b)("ul",null,Object(b.b)("li",null,Object(b.b)("code",null,"solicitacao*"),": //Hor\xe1rio no qual a devolu\xe7\xe3o foi solicitada no PSP.",Object(b.b)("br",null),Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string <date-time> (Hor\xe1rio de solicita\xe7\xe3o)")),Object(b.b)("li",null,Object(b.b)("code",null,"liquidacao"),": //Hor\xe1rio no qual a devolu\xe7\xe3o foi liquidada no PSP.",Object(b.b)("br",null),Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string <date-time> (Hor\xe1rio de liquidacao)"))),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("code",null,"status*"),"// Status da devolu\xe7\xe3o. Enum: ",Object(b.b)("code",null,'"EM_PROCESSAMENTO"'),",",Object(b.b)("code",null,'"DEVOLVIDO"'),",",Object(b.b)("br",null),Object(b.b)("code",null,'"NAO_REALIZADO"'),"Status da devolu\xe7\xe3o.",Object(b.b)(s,{color:"#009615",mdxType:"Highlight"},"string (Status)")),Object(b.b)("td",{align:"center"},"N\xe3o"),Object(b.b)("td",null,"Array ()")))),Object(b.b)("p",null,Object(b.b)("strong",{parentName:"p"},"Os campos com * representam valores obrigat\xf3rios")),Object(b.b)("h4",{id:"resposta"},"Resposta"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),"Notifica\xe7\xe3o recebida com sucesso\n")))),Object(b.b)("br",null),Object(b.b)("h3",{id:"exibir-informa\xe7\xf5es-acerca-do-webhook-pix"},"Exibir informa\xe7\xf5es acerca do Webhook Pix."),Object(b.b)("p",null,"Endpoint para recupera\xe7\xe3o de informa\xe7\xf5es sobre o webhook pix ",Object(b.b)("inlineCode",{parentName:"p"},"GET \u200b/v2/webhook"),"."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"webhook.read"),")"),Object(b.b)("br",null),Object(b.b)("h4",{id:"resposta-200-dados-da-location-do-payload"},"Resposta (200 Dados da location do Payload)"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"200",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "webhookUrl": "https://gn-pix-webhook.gerencianet.com.br/webhook"\n}\n')))),Object(b.b)("br",null),Object(b.b)("h3",{id:"cancelar-o-webhook-pix"},"Cancelar o webhook Pix."),Object(b.b)("p",null,"Endpoint para cancelamento do webhook Pix ",Object(b.b)("inlineCode",{parentName:"p"},"DELETE /v2\u200b/webhook/:chave"),"."),Object(b.b)("p",null,"AUTHORIZATIONS: ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#oauth2"}),"OAUTH2")," (",Object(b.b)("inlineCode",{parentName:"p"},"webhook.write"),")"),Object(b.b)("br",null),Object(b.b)("h4",{id:"resposta-1"},"Resposta"),Object(b.b)(c.a,{defaultValue:"saida",values:[{label:"204",value:"saida"}],mdxType:"Tabs"},Object(b.b)(l.a,{value:"saida",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),"Webhook para notifica\xe7\xf5es Pix foi cancelado\n")))),Object(b.b)("br",null),Object(b.b)("h2",{id:"schemas"},"Schemas"),Object(b.b)("h4",{id:"id-da-transa\xe7\xe3o"},"Id da Transa\xe7\xe3o"),Object(b.b)("table",null,Object(b.b)("tbody",null,Object(b.b)("tr",null,Object(b.b)("th",{align:"center"},"Atributo"),Object(b.b)("th",{align:"center"},"Descri\xe7\xe3o"),Object(b.b)("th",{align:"center"},"Obrigat\xf3rio")),Object(b.b)("tr",null,Object(b.b)("td",null,Object(b.b)("b",null,"txid")),Object(b.b)("td",null,"pattern: ",Object(b.b)("code",null,"[A-Z0-9-]{26,35} "),Object(b.b)("br",null),Object(b.b)("br",null),Object(b.b)("b",null,"Identificador da transa\xe7\xe3o "),Object(b.b)("br",null),Object(b.b)("br",null),"O campo txid, obrigat\xf3rio, determina o identificador da transa\xe7\xe3o. O objetivo desse campo \xe9 ser um elemento que possibilite ao PSP do recebedor apresentar ao usu\xe1rio recebedor a funcionalidade de concilia\xe7\xe3o de pagamentos.",Object(b.b)("br",null),Object(b.b)("br",null),"Na pacs.008, \xe9 referenciado como ",Object(b.b)("code",null,"TransactionIdentification <txId> ")," ou ",Object(b.b)("code",null,"idConciliacaoRecebedor"),". O preenchimento do campo txid \xe9 limitado a 35 caracteres na pacs.008.",Object(b.b)("br",null),Object(b.b)("br",null),"Em termos de fluxo de funcionamento, o txid \xe9 lido pelo aplicativo do PSP do pagador e, depois de confirmado o pagamento, \xe9 enviado para o SPI via pacs.008. Uma pacs.008 tamb\xe9m \xe9 enviada ao PSP do recebedor, contendo, al\xe9m de todas as informa\xe7\xf5es usuais do pagamento, o txid. Ao perceber um recebimento dotado de txid, o PSP do recebedor est\xe1 apto a se comunicar com o usu\xe1rio recebedor, informando que um pagamento espec\xedfico foi liquidado.",Object(b.b)("br",null),Object(b.b)("br",null),"O txid \xe9 criado exclusivamente pelo usu\xe1rio recebedor e est\xe1 sob sua responsabilidade. O txid, no contexto de representa\xe7\xe3o de uma cobran\xe7a, \xe9 \xfanico por CPF/CNPJ do usu\xe1rio recebedor. Cabe ao PSP recebedor validar essa regra na API PIX."),Object(b.b)("td",{align:"center"},"Sim")))),Object(b.b)("br",null),Object(b.b)("p",null,"Se voc\xea quer saber mais sobre a implementa\xe7\xe3o da API Pix ou deseja receber uma proposta comercial, consulte um de nossos especialistas pelo e-mail ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"mailto:[email protected]"}),"[email protected]")," ou clique no bot\xe3o abaixo."),Object(b.b)("a",{href:"https://cta-redirect.hubspot.com/cta/redirect/3324438/0ae588cb-c51b-4c19-a281-827f2262d2d1",target:"_blank",alt:"QUERO UMA CONSULTORIA T\xc9CNICA"},Object(b.b)("button",{type:"button",className:"buttonCTA buttonorange"},"QUERO SER CLIENTE GERENCIANET"))))}p.isMDXComponent=!0},229:function(e,a,t){"use strict";t.d(a,"a",(function(){return s})),t.d(a,"b",(function(){return p}));var n=t(0),o=t.n(n);function b(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function c(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?c(Object(t),!0).forEach((function(a){b(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function r(e,a){if(null==e)return{};var t,n,o=function(e,a){if(null==e)return{};var t,n,o={},b=Object.keys(e);for(n=0;n<b.length;n++)t=b[n],a.indexOf(t)>=0||(o[t]=e[t]);return o}(e,a);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(e);for(n=0;n<b.length;n++)t=b[n],a.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=o.a.createContext({}),d=function(e){var a=o.a.useContext(i),t=a;return e&&(t="function"==typeof e?e(a):l(l({},a),e)),t},s=function(e){var a=d(e.components);return o.a.createElement(i.Provider,{value:a},e.children)},u={inlineCode:"code",wrapper:function(e){var a=e.children;return o.a.createElement(o.a.Fragment,{},a)}},O=o.a.forwardRef((function(e,a){var t=e.components,n=e.mdxType,b=e.originalType,c=e.parentName,i=r(e,["components","mdxType","originalType","parentName"]),s=d(t),O=n,p=s["".concat(c,".").concat(O)]||s[O]||u[O]||b;return t?o.a.createElement(p,l(l({ref:a},i),{},{components:t})):o.a.createElement(p,l({ref:a},i))}));function p(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var b=t.length,c=new Array(b);c[0]=O;var l={};for(var r in a)hasOwnProperty.call(a,r)&&(l[r]=a[r]);l.originalType=e,l.mdxType="string"==typeof e?e:n,c[1]=l;for(var i=2;i<b;i++)c[i]=t[i];return o.a.createElement.apply(null,c)}return o.a.createElement.apply(null,t)}O.displayName="MDXCreateElement"},233:function(e,a,t){"use strict";function n(e){var a,t,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(a=0;a<e.length;a++)e[a]&&(t=n(e[a]))&&(o&&(o+=" "),o+=t);else for(a in e)e[a]&&(o&&(o+=" "),o+=a);return o}a.a=function(){for(var e,a,t=0,o="";t<arguments.length;)(e=arguments[t++])&&(a=n(e))&&(o&&(o+=" "),o+=a);return o}},234:function(e,a,t){"use strict";var n=t(0);const o=Object(n.createContext)({tabGroupChoices:{},setTabGroupChoices:()=>{},isAnnouncementBarClosed:!1,closeAnnouncementBar:()=>{}});a.a=o},235:function(e,a,t){"use strict";var n=t(0),o=t(234);a.a=function(){return Object(n.useContext)(o.a)}},236:function(e,a,t){"use strict";var n=t(0),o=t.n(n),b=t(235),c=t(233),l=t(92),r=t.n(l);const i=37,d=39;a.a=function(e){const{block:a,children:t,defaultValue:l,values:s,groupId:u}=e,{tabGroupChoices:O,setTabGroupChoices:p}=Object(b.a)(),[j,m]=Object(n.useState)(l);if(null!=u){const e=O[u];null!=e&&e!==j&&s.some(a=>a.value===e)&&m(e)}const g=e=>{m(e),null!=u&&p(u,e)},v=[];return o.a.createElement("div",null,o.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:Object(c.a)("tabs",{"tabs--block":a})},s.map(({value:e,label:a})=>o.a.createElement("li",{role:"tab",tabIndex:"0","aria-selected":j===e,className:Object(c.a)("tabs__item",r.a.tabItem,{"tabs__item--active":j===e}),key:e,ref:e=>v.push(e),onKeyDown:e=>((e,a,t)=>{switch(t.keyCode){case d:((e,a)=>{const t=e.indexOf(a)+1;e[t]?e[t].focus():e[0].focus()})(e,a);break;case i:((e,a)=>{const t=e.indexOf(a)-1;e[t]?e[t].focus():e[e.length-1].focus()})(e,a)}})(v,e.target,e),onFocus:()=>g(e),onClick:()=>g(e)},a))),o.a.createElement("div",{role:"tabpanel",className:"margin-vert--md"},n.Children.toArray(t).filter(e=>e.props.value===j)[0]))}},237:function(e,a,t){"use strict";var n=t(0),o=t.n(n);a.a=function(e){return o.a.createElement("div",null,e.children)}}}]);