{"__v":539,"_id":"575ea374e7089c0e006d0cb4","category":{"__v":0,"_id":"575aeffae12cf20e002f3070","project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","sync":{"url":"","isSync":false},"reference":true,"createdAt":"2016-06-10T16:51:06.098Z","from_sync":false,"order":0,"slug":"documentation","title":"Visão Geral da API"},"parentDoc":null,"project":"575aeffae12cf20e002f306c","user":"575b077ae12cf20e002f30a3","version":{"__v":29,"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","categories":["575aeffae12cf20e002f3070","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","57602fe5b82256240055c657","57602ff6c811102000cef302","576030909b1a9a220067ca40","57604518b82256240055c722","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","577680bf3cee3a0e00a000bc","577ff3b1ff48990e000c6806","5783f78c5cbce30e0074e2b7","5783f86292edb92200e6101c","5783f86dbfbba719003f0d8b","5783f8755cbce30e0074e2b8","5783f8b65cbce30e0074e2b9","5783f8bf5cbce30e0074e2ba","5783f8d8ce802f0e0087d574","578529f887c9280e0090394b","57852aeb87c9280e0090394d","57866e72b2f4060e00fa39ca","57ab6d5c39c2fd1900191879","57f39451ab0ee12000bef915","582499a0d90fa027009b259e"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-06-13T12:13:40.478Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"order":3,"body":"Para acessar o ambiente de testes você precisa de uma conta Gerencianet. <a href=\"https://gerencianet.com.br/#abrirconta\" title=\"Cadastro ao nosso sistema, seja nosso cliente\" target=\"_blank\">Crie sua conta</a>.\n\nAntes de colocar uma aplicação em produção, é muito importante certificar-se que sua implementação está correta e suas integrações estão comunicando da forma como deveriam.\n\nPara evitar que os integradores tenham que fazer esses testes em produção, a Gerencianet oferece um ambiente de desenvolvimento/testes (sandbox), no qual chamamos de “Playground”. Este é um local no qual o integrador, independente da operação a ser realizada, pode utilizar para conhecer o mecanismo e o fluxo de pagamento em um ambiente 100% de teste e descomplicado. \n\nNeste ambiente, por oferecer uma paridade com os recursos suportados pela API no ambiente de produção, é possível efetuar testes de integração antes de ir para produção, podendo assim fazer uma experiência com nossa API sem fazer alterações em sua conta Gerencianet.\n[block:html]\n{\n  \"html\": \"<p>Para iniciar a utilização do \\\"Playground\\\", siga as instruções:</p>\\n<ol>\\n  <li><p>Acesse <a href=\\\"http://www.gerencianet.com.br\\\" target=\\\"_blank\\\">nosso site</a>, clique em \\\"<a href=\\\"https://gerencianet.com.br/#login\\\" target=\\\"_blank\\\">Entrar</a>\\\" (menu superior), logue em sua conta;</p></li>\\n  \\n  <li><p>Clique em <em>\\\"API\\\"</em>, depois <em>\\\"Minhas Aplicações > Nova aplicação\\\"</em> (<a href=\\\"http://image.prntscr.com/image/80b55642a21c4837b6fee00e7ed0758a.png\\\" target=\\\"_blank\\\">?</a>), definindo um nome para a sua aplicação.</p></li>\\n</ol>\\n<p>Estando dentro da aplicação criada, é possível observar todos os endpoints disponibilizados pela API, ou seja, tudo que é possível fazer via integração. Através do Playground, o integrador pode conhecer as informações que podem ser enviadas em cada situação, quais são obrigatórias, em quais formatos devem ser enviadas, etc.</p>\\n\\n<p>Para acompanhar os procedimentos realizados no Playground, utilize a aba \\\"Desenvolvimento\\\", especificamente nas sub-abas <abbr title=\\\"Toda cobrança que for criada poderá ser vista nesta aba\\\">Transações</abbr>, <abbr title=\\\"Lista todas as assinaturas criadas\\\">Assinaturas</abbr>, <abbr title=\\\"Lista todos os carnês criados\\\">Carnês</abbr>, <abbr title=\\\"Mostra todas as requisições do seu sistema, tenha tido sucesso ou falha\\\">Histórico de Requisições</abbr> e <abbr title=\\\"Mostra toda notificação enviada pelo sistema Gerencianet e a resposta da URL que recebeu o POST\\\">Histórico de Notificações</abbr>.</p>\\n\\n<p>Cada <em>endpoint</em> possui um campo editável para informar os <abbr title=\\\"JSON com as informações que o endpoint deve receber para realizar a ação\\\">dados de entrada</abbr> e um campo não-editável para mostrar o <abbr title=\\\"JSON que descreve a estrutura dos dados, incluindo todas as informações que podem ser enviadas e as especificidades de cada uma\\\">Schema</abbr>. Os <em>endpoints</em> estão divididos em 5 (cinco) grupos principais: Transações, Carnês, Notificações, Assinaturas e Outros.</p>\"\n}\n[/block]\n## GET, POST, PUT e DELETE\n<hr>\n\nA API é RESTful, isso significa que os *endpoints* criados seguem práticas específicas para que sejam intuitivos para os integradores que a utilizam.\n\nTodo *endpoint* do tipo **GET** é um *endpoint* de consulta, ou seja, o integrador nunca estará criando ou alterando um registro quando fizer um consumo desse tipo.\n\nOs *endpoints* do tipo **POST** sempre estão relacionados à criação de algum registro. O <code>POST /charge</code> cria uma cobrança; o <code>POST /charge/:id/pay</code> cria um pagamento para uma determinada cobrança, e assim por diante.\n\nOs *endpoints* do tipo **PUT** realizam a alteração de algum registro já existente. Quando o integrador utiliza <code>PUT /charge/:id/cancel</code>, por exemplo, ele está alterando o status de uma cobrança para <code>canceled</code>.\n\nPor fim, os *endpoints* do tipo **DELETE** são responsáveis por deletar um registro. Esse tipo de consumo sempre vai solicitar um identificador para deleção. Na API, apenas planos de assinaturas podem ser deletados.\n\n\n## Interpretando as Respostas da API\n<hr>\n\nA Gerencianet utiliza respostas HTTP para indicar sucesso ou falha nas requisições. Comumente, quando retornamos respostas com status <code>2xx</code> significa que houve sucesso na requisição; status <code>4xx</code> indicam falhas no envio de dados por parte do cliente; status <code>5xx</code> indicam erros internos de servidor.\n\n  * **200 Ok** - Requisição ocorreu com sucesso;\n  * **400 Bad Request** - Algum parâmetro obrigatório não foi enviado ou é inválido;\n  * **401 Unauthorized** - Sem autorização ([confira credenciais](https://dev.gerencianet.com.br/docs/pagar-boleto-problemas-frequentes#section-1-estou-me-deparando-com-a-mensagem-de-unauthorized-sem-autoriza-o-por-que-) Client_Id, Client_Secret e variável \"sandbox\");\n  * **404 Not Found** - O recurso requisitado não foi encontrado;\n  * **500 Internal Server Error** - Erro interno do servidor.\n\nAo enviar um POST para a rota <code>/charge</code>, o integrador estará criando uma cobrança com status <code>new</code> (novo). Esta cobrança somente terá seu status alterado quando o integrador definir sua forma de pagamento. Este endpoint é o equivalente à utilização da função <code>createCharge()</code> em qualquer SDK.\n\nUm JSON simples que pode ser utilizado para criar uma cobrança no Playground é:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"items\\\":[  \\n      {  \\n         \\\"name\\\":\\\"Bola de Futebol\\\",\\n         \\\"value\\\":1000,\\n         \\\"amount\\\":3\\n      }\\n   ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nEste JSON define que a cobrança deve possuir um produto de nome \"Bola de Futebol\", valor R$ 10,00 e quantidade 3, ou seja, o valor total dessa cobrança será R$ 30,00.\n\nA resposta deste consumo será:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200,\\n  \\\"data\\\": {\\n    \\\"charge_id\\\": 148915,\\n    \\\"status\\\": \\\"new\\\",\\n    \\\"total\\\": 3000,\\n    \\\"custom_id\\\": null,\\n    \\\"created_at\\\": \\\"2016-12-15 16:31:23\\\"\\n  }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nEm <code>\"code\":200</code>, este \"200\" indica que o consumo foi realizado com sucesso. O valor de data mostra informações básicas sobre a cobrança criada. O integrador deve ter uma atenção especial com a informação de <code>charge_id</code>. Esse é o identificador da cobrança na API. Isso significa que, depois da criação, qualquer ação sobre a cobrança deverá ser realizada utilizando esse identificador.\n\nPara definir uma forma de pagamento para a cobrança, o integrador deve optar entre boleto bancário ou cartão de crédito e utilizar o endpoint <code>POST /charge/:id/pay</code>. O identificador da URL é o identificador da cobrança recebido no consumo anterior (no exemplo, <code>charge_id: 148915</code>).\n\nUm exemplo de JSON que pode ser utilizado para definir o pagamento de uma cobrança como sendo boleto bancário:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"payment\\\": {\\n      \\\"banking_billet\\\": {\\n         \\\"customer\\\": {  \\n            \\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n            \\\"cpf\\\": \\\"94271564656\\\",\\n            \\\"phone_number\\\": \\\"5144916523\\\"\\n         },\\n         \\\"expire_at\\\": \\\"2020-12-20\\\",\\n         \\\"discount\\\": {  \\n            \\\"type\\\": \\\"percentage\\\",\\n            \\\"value\\\": 500\\n         }\\n      }\\n   }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nNeste exemplo, o integrador deseja que a cobrança <code>148915</code> seja paga via boleto bancário - definido pelo <code>banking_billet</code> - com data de vencimento para o dia 20/12/2020 (atributo <code>expire_at</code>). O exemplo solicita 5% de desconto no valor total da cobrança e informa os dados obrigatórios do comprador.\n\nA resposta desse consumo será:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200,\\n  \\\"data\\\": {\\n    \\\"barcode\\\": \\\"00000.00000 00000.000000 00000.000000 0 00000000000000\\\",\\n    \\\"link\\\": \\\"https://visualizacaosandbox.gerencianet.com.br/emissao/93084_468_BRAENA9/A4XB-93084-109565-CADA6\\\",\\n    \\\"expire_at\\\": \\\"2020-12-20\\\",\\n    \\\"charge_id\\\": 148915,\\n    \\\"status\\\": \\\"waiting\\\",\\n    \\\"total\\\": 2850,\\n    \\\"payment\\\": \\\"banking_billet\\\"\\n  }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nDentre outras informações, a API informa o link do boleto bancário gerado e sua linha digitável. Neste momento, a cobrança <code>148915</code> tem o status alterado para <code>waiting</code> (aguardando) - isso significa que ela está aguardando o pagamento.\n\n\n## Possíveis Erros na API\n<hr>\n\nTodo endpoint tem uma lista de códigos de erros que podem ser retornados em determinadas situações. Esta lista é importante para que o integrador consiga preparar sua integração para tratar todos os erros possíveis.\n\nPara simular um erro, tente criar uma cobrança cujo valor total seja inferior a R$ 5,00:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"items\\\":[  \\n      {  \\n         \\\"name\\\":\\\"Bola de Futebol\\\",\\n         \\\"value\\\":1,\\n         \\\"amount\\\":1\\n      }\\n   ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nNeste exemplo, a resposta será:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"code\\\":3500034,\\n   \\\"error\\\":\\\"validation_error\\\",\\n   \\\"error_description\\\":\\\"O valor total da cobrança deve ser maior ou igual a R$ 5,00.\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nA resposta possui <code>code</code> diferente de <code>200</code>, ou seja, o consumo não teve sucesso. A API exige que o valor mínimo de uma cobrança seja de R$ 5,00, por isso, o erro <code>3500034</code> será retornado sempre que o integrador violar essa condição.\n \n\n## Vídeos Explicativos: Playground\n<hr>\n\nPensando em oferecer novos meios de transmitir informações, a Gerencianet disponibiliza os vídeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como utilizar o nosso Playground (sandbox).\n\n### Métodos do Playground (ambiente de testes/sandbox da Gerencianet)\n[block:html]\n{\n  \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/nKPb0rU8j4Q\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n### Criando uma transação via Playground (ambiente de testes/sandbox da Gerencianet)\n[block:html]\n{\n  \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/ylqJUpHqwfY\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\nPara acesso às demais aulas, de outros assuntos, acesse a seção \"[Curso Online de Integrações](https://dev.gerencianet.com.br/docs/curso-online-gerencianet)\".\n\n\n## Próximos Passos\n<hr>\n\nAgora que você conheceu sobre nosso Playground, é interessante que conheça mais sobre os 5 endpoints disponíveis em nossa área de testes: [Transações](https://dev.gerencianet.com.br/docs/playground-transacoes), [Carnês](https://dev.gerencianet.com.br/docs/playground-carnes), [Notificações](https://dev.gerencianet.com.br/docs/playground-notificacoes), [Assinaturas](https://dev.gerencianet.com.br/docs/playground-assinaturas) e [Outros](https://dev.gerencianet.com.br/docs/playground-outros).","excerpt":"Você está em: *\"Visão Geral da API > Playground (sandbox)\"*","slug":"playground","type":"basic","title":"Playground (sandbox)"}

Playground (sandbox)

Você está em: *"Visão Geral da API > Playground (sandbox)"*

Para acessar o ambiente de testes você precisa de uma conta Gerencianet. <a href="https://gerencianet.com.br/#abrirconta" title="Cadastro ao nosso sistema, seja nosso cliente" target="_blank">Crie sua conta</a>. Antes de colocar uma aplicação em produção, é muito importante certificar-se que sua implementação está correta e suas integrações estão comunicando da forma como deveriam. Para evitar que os integradores tenham que fazer esses testes em produção, a Gerencianet oferece um ambiente de desenvolvimento/testes (sandbox), no qual chamamos de “Playground”. Este é um local no qual o integrador, independente da operação a ser realizada, pode utilizar para conhecer o mecanismo e o fluxo de pagamento em um ambiente 100% de teste e descomplicado. Neste ambiente, por oferecer uma paridade com os recursos suportados pela API no ambiente de produção, é possível efetuar testes de integração antes de ir para produção, podendo assim fazer uma experiência com nossa API sem fazer alterações em sua conta Gerencianet. [block:html] { "html": "<p>Para iniciar a utilização do \"Playground\", siga as instruções:</p>\n<ol>\n <li><p>Acesse <a href=\"http://www.gerencianet.com.br\" target=\"_blank\">nosso site</a>, clique em \"<a href=\"https://gerencianet.com.br/#login\" target=\"_blank\">Entrar</a>\" (menu superior), logue em sua conta;</p></li>\n \n <li><p>Clique em <em>\"API\"</em>, depois <em>\"Minhas Aplicações > Nova aplicação\"</em> (<a href=\"http://image.prntscr.com/image/80b55642a21c4837b6fee00e7ed0758a.png\" target=\"_blank\">?</a>), definindo um nome para a sua aplicação.</p></li>\n</ol>\n<p>Estando dentro da aplicação criada, é possível observar todos os endpoints disponibilizados pela API, ou seja, tudo que é possível fazer via integração. Através do Playground, o integrador pode conhecer as informações que podem ser enviadas em cada situação, quais são obrigatórias, em quais formatos devem ser enviadas, etc.</p>\n\n<p>Para acompanhar os procedimentos realizados no Playground, utilize a aba \"Desenvolvimento\", especificamente nas sub-abas <abbr title=\"Toda cobrança que for criada poderá ser vista nesta aba\">Transações</abbr>, <abbr title=\"Lista todas as assinaturas criadas\">Assinaturas</abbr>, <abbr title=\"Lista todos os carnês criados\">Carnês</abbr>, <abbr title=\"Mostra todas as requisições do seu sistema, tenha tido sucesso ou falha\">Histórico de Requisições</abbr> e <abbr title=\"Mostra toda notificação enviada pelo sistema Gerencianet e a resposta da URL que recebeu o POST\">Histórico de Notificações</abbr>.</p>\n\n<p>Cada <em>endpoint</em> possui um campo editável para informar os <abbr title=\"JSON com as informações que o endpoint deve receber para realizar a ação\">dados de entrada</abbr> e um campo não-editável para mostrar o <abbr title=\"JSON que descreve a estrutura dos dados, incluindo todas as informações que podem ser enviadas e as especificidades de cada uma\">Schema</abbr>. Os <em>endpoints</em> estão divididos em 5 (cinco) grupos principais: Transações, Carnês, Notificações, Assinaturas e Outros.</p>" } [/block] ## GET, POST, PUT e DELETE <hr> A API é RESTful, isso significa que os *endpoints* criados seguem práticas específicas para que sejam intuitivos para os integradores que a utilizam. Todo *endpoint* do tipo **GET** é um *endpoint* de consulta, ou seja, o integrador nunca estará criando ou alterando um registro quando fizer um consumo desse tipo. Os *endpoints* do tipo **POST** sempre estão relacionados à criação de algum registro. O <code>POST /charge</code> cria uma cobrança; o <code>POST /charge/:id/pay</code> cria um pagamento para uma determinada cobrança, e assim por diante. Os *endpoints* do tipo **PUT** realizam a alteração de algum registro já existente. Quando o integrador utiliza <code>PUT /charge/:id/cancel</code>, por exemplo, ele está alterando o status de uma cobrança para <code>canceled</code>. Por fim, os *endpoints* do tipo **DELETE** são responsáveis por deletar um registro. Esse tipo de consumo sempre vai solicitar um identificador para deleção. Na API, apenas planos de assinaturas podem ser deletados. ## Interpretando as Respostas da API <hr> A Gerencianet utiliza respostas HTTP para indicar sucesso ou falha nas requisições. Comumente, quando retornamos respostas com status <code>2xx</code> significa que houve sucesso na requisição; status <code>4xx</code> indicam falhas no envio de dados por parte do cliente; status <code>5xx</code> indicam erros internos de servidor. * **200 Ok** - Requisição ocorreu com sucesso; * **400 Bad Request** - Algum parâmetro obrigatório não foi enviado ou é inválido; * **401 Unauthorized** - Sem autorização ([confira credenciais](https://dev.gerencianet.com.br/docs/pagar-boleto-problemas-frequentes#section-1-estou-me-deparando-com-a-mensagem-de-unauthorized-sem-autoriza-o-por-que-) Client_Id, Client_Secret e variável "sandbox"); * **404 Not Found** - O recurso requisitado não foi encontrado; * **500 Internal Server Error** - Erro interno do servidor. Ao enviar um POST para a rota <code>/charge</code>, o integrador estará criando uma cobrança com status <code>new</code> (novo). Esta cobrança somente terá seu status alterado quando o integrador definir sua forma de pagamento. Este endpoint é o equivalente à utilização da função <code>createCharge()</code> em qualquer SDK. Um JSON simples que pode ser utilizado para criar uma cobrança no Playground é: [block:code] { "codes": [ { "code": "{ \n \"items\":[ \n { \n \"name\":\"Bola de Futebol\",\n \"value\":1000,\n \"amount\":3\n }\n ]\n}", "language": "json" } ] } [/block] Este JSON define que a cobrança deve possuir um produto de nome "Bola de Futebol", valor R$ 10,00 e quantidade 3, ou seja, o valor total dessa cobrança será R$ 30,00. A resposta deste consumo será: [block:code] { "codes": [ { "code": "{\n \"code\": 200,\n \"data\": {\n \"charge_id\": 148915,\n \"status\": \"new\",\n \"total\": 3000,\n \"custom_id\": null,\n \"created_at\": \"2016-12-15 16:31:23\"\n }\n}", "language": "json" } ] } [/block] Em <code>"code":200</code>, este "200" indica que o consumo foi realizado com sucesso. O valor de data mostra informações básicas sobre a cobrança criada. O integrador deve ter uma atenção especial com a informação de <code>charge_id</code>. Esse é o identificador da cobrança na API. Isso significa que, depois da criação, qualquer ação sobre a cobrança deverá ser realizada utilizando esse identificador. Para definir uma forma de pagamento para a cobrança, o integrador deve optar entre boleto bancário ou cartão de crédito e utilizar o endpoint <code>POST /charge/:id/pay</code>. O identificador da URL é o identificador da cobrança recebido no consumo anterior (no exemplo, <code>charge_id: 148915</code>). Um exemplo de JSON que pode ser utilizado para definir o pagamento de uma cobrança como sendo boleto bancário: [block:code] { "codes": [ { "code": "{ \n \"payment\": {\n \"banking_billet\": {\n \"customer\": { \n \"name\": \"Gorbadoc Oldbuck\",\n \"cpf\": \"94271564656\",\n \"phone_number\": \"5144916523\"\n },\n \"expire_at\": \"2020-12-20\",\n \"discount\": { \n \"type\": \"percentage\",\n \"value\": 500\n }\n }\n }\n}", "language": "json" } ] } [/block] Neste exemplo, o integrador deseja que a cobrança <code>148915</code> seja paga via boleto bancário - definido pelo <code>banking_billet</code> - com data de vencimento para o dia 20/12/2020 (atributo <code>expire_at</code>). O exemplo solicita 5% de desconto no valor total da cobrança e informa os dados obrigatórios do comprador. A resposta desse consumo será: [block:code] { "codes": [ { "code": "{\n \"code\": 200,\n \"data\": {\n \"barcode\": \"00000.00000 00000.000000 00000.000000 0 00000000000000\",\n \"link\": \"https://visualizacaosandbox.gerencianet.com.br/emissao/93084_468_BRAENA9/A4XB-93084-109565-CADA6\",\n \"expire_at\": \"2020-12-20\",\n \"charge_id\": 148915,\n \"status\": \"waiting\",\n \"total\": 2850,\n \"payment\": \"banking_billet\"\n }\n}", "language": "json" } ] } [/block] Dentre outras informações, a API informa o link do boleto bancário gerado e sua linha digitável. Neste momento, a cobrança <code>148915</code> tem o status alterado para <code>waiting</code> (aguardando) - isso significa que ela está aguardando o pagamento. ## Possíveis Erros na API <hr> Todo endpoint tem uma lista de códigos de erros que podem ser retornados em determinadas situações. Esta lista é importante para que o integrador consiga preparar sua integração para tratar todos os erros possíveis. Para simular um erro, tente criar uma cobrança cujo valor total seja inferior a R$ 5,00: [block:code] { "codes": [ { "code": "{ \n \"items\":[ \n { \n \"name\":\"Bola de Futebol\",\n \"value\":1,\n \"amount\":1\n }\n ]\n}", "language": "json" } ] } [/block] Neste exemplo, a resposta será: [block:code] { "codes": [ { "code": "{ \n \"code\":3500034,\n \"error\":\"validation_error\",\n \"error_description\":\"O valor total da cobrança deve ser maior ou igual a R$ 5,00.\"\n}", "language": "json" } ] } [/block] A resposta possui <code>code</code> diferente de <code>200</code>, ou seja, o consumo não teve sucesso. A API exige que o valor mínimo de uma cobrança seja de R$ 5,00, por isso, o erro <code>3500034</code> será retornado sempre que o integrador violar essa condição. ## Vídeos Explicativos: Playground <hr> Pensando em oferecer novos meios de transmitir informações, a Gerencianet disponibiliza os vídeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como utilizar o nosso Playground (sandbox). ### Métodos do Playground (ambiente de testes/sandbox da Gerencianet) [block:html] { "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/nKPb0rU8j4Q\" frameborder=\"0\" allowfullscreen></iframe>" } [/block] ### Criando uma transação via Playground (ambiente de testes/sandbox da Gerencianet) [block:html] { "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ylqJUpHqwfY\" frameborder=\"0\" allowfullscreen></iframe>" } [/block] Para acesso às demais aulas, de outros assuntos, acesse a seção "[Curso Online de Integrações](https://dev.gerencianet.com.br/docs/curso-online-gerencianet)". ## Próximos Passos <hr> Agora que você conheceu sobre nosso Playground, é interessante que conheça mais sobre os 5 endpoints disponíveis em nossa área de testes: [Transações](https://dev.gerencianet.com.br/docs/playground-transacoes), [Carnês](https://dev.gerencianet.com.br/docs/playground-carnes), [Notificações](https://dev.gerencianet.com.br/docs/playground-notificacoes), [Assinaturas](https://dev.gerencianet.com.br/docs/playground-assinaturas) e [Outros](https://dev.gerencianet.com.br/docs/playground-outros).