{"__v":15,"_id":"57866ecb0413ad0e009e6251","category":{"project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","_id":"57866e72b2f4060e00fa39ca","__v":0,"sync":{"url":"","isSync":false},"reference":true,"createdAt":"2016-07-13T16:38:10.846Z","from_sync":false,"order":1,"slug":"ambiente-de-testes","title":"Ambiente de Testes"},"parentDoc":null,"project":"575aeffae12cf20e002f306c","user":"57601a13af3e090e00108059","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-07-13T16:39:39.291Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"order":0,"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\nO Playground (também chamado de \"sandbox\") é um ambiente de desenvolvimento/testes 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. [Conheça mais](https://dev.gerencianet.com.br/docs/playground) sobre o Playground oferecido pela Gerencianet.\n\nA integração com a Gerencianet possui duas etapas:\n\n1. Primeiro [gera a transação (ou cobrança)](https://dev.gerencianet.com.br/docs/playground-transacoes#charge) através do endpoint <code>POST /charge</code>;\n\n2. Por fim, [associa a transação gerada à uma forma de pagamento](https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_pay) através do endpoint <code>POST /charge/:id/pay</code>.\n\nApós utilizar o endpoint <code>POST /charge</code>, a transação já estará criada e, a partir deste momento, será possível associá-la à forma de pagamento como boleto bancário ou cartão de crédito.\n\n## Índice contendo os endpoints listados no Playground, modalidade *\"Transações\"*\n<hr>\n\n<ul><li><div class=\"\"><span class=\"post\">POST</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge\">/charge</a> <em>(criar nova transação)</em></div></li><li><div class=\"\"><span class=\"get\">GET</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id\">/charge/:id</a> <em>(retornar informações de transação existente)</em></div></li><li><div class=\"\"><span class=\"put\">PUT</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_metadata\">/charge/:id/metadata</a> <em>(incluir \"notification_url\" e \"custom_id\" em uma transação existente)</em></div></li><li><div class=\"\"><span class=\"put\">PUT</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_billet\">/charge/:id/billet</a> <em>(alterar data de vencimento de uma transação existente)</em></div></li><li><div class=\"\"><span class=\"put\">PUT</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_cancel\">/charge/:id/cancel</a> <em>(cancelar uma transação existente)</em></div></li><li><div class=\"\"><span class=\"post\">POST</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_pay\">/charge/:id/pay</a> <em>(associa método de pagamento à uma transação já criada)</em></div></li><li><div class=\"\"><span class=\"post\">POST</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_billet_resend\">/charge/:id/billet/resend</a> <em>(reenvio do boleto bancário para o email desejado)</em></div></li><li><div class=\"\"><span class=\"post\">POST</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_history\">/charge/:id/history</a> <em>(acrescentar descrição ao histórico de uma transação)</em></div></li><li><div class=\"\"><span class=\"post\">POST</span> <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_link\">/charge/:id/link</a> <em>(retorna um link para uma tela de pagamento da Gerencianet)</em></div></li></ul>\n\n<div  class=\"distancia_top\"><a name=\"charge\"><span class=\"post\">POST</span></a><strong class=\"text-endpoint\">/charge</strong></div>\n\n<hr>\n\nPermite criar uma nova transação; retorna um código identificador da transação denominado <code>charge_id</code>.\n\nSomente após a geração da transação (isto é, depois de gerada a cobrança) é que será associada a um método de pagamento (boleto bancário ou cartão de crédito).\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/QBI8zqUhR12Phw6CakOQ_fb8f3a1272454f32a7606c0e5f44df2a.png\",\n        \"fb8f3a1272454f32a7606c0e5f44df2a.png\",\n        \"1432\",\n        \"369\",\n        \"#518862\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para criar uma cobrança (ainda sem forma de pagamento definida) no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"items\\\": [\\n    {\\n      \\\"name\\\": \\\"Meu Produto\\\",\\n      \\\"value\\\": 8900,\\n      \\\"amount\\\": 1\\n    }\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n  \\\"data\\\": {\\n    \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n    \\\"status\\\": \\\"new\\\", // cobrança gerada, aguardando definição da forma de pagamento\\n    \\\"total\\\": 8900, // valor total da transação (em centavos, sendo 8900 = R$89,00)\\n    \\\"custom_id\\\": null, // identificador próprio opcional\\n    \\\"created_at\\\": \\\"2016-06-24 14:58:46\\\" // data e hora da criação da transação\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    },\n    {\n      \"code\": \"{\\n  \\\"id\\\": \\\"/Charge\\\",\\n  \\\"type\\\": \\\"object\\\",\\n  \\\"properties\\\": {\\n    \\\"items\\\": {\\n      \\\"id\\\": \\\"/MarketplaceItem\\\",\\n      \\\"type\\\": \\\"array\\\",\\n      \\\"minItems\\\": 1,\\n      \\\"items\\\": {\\n        \\\"type\\\": \\\"object\\\",\\n        \\\"properties\\\": {\\n          \\\"name\\\": {\\n            \\\"type\\\": \\\"string\\\",\\n            \\\"minLength\\\": 1,\\n            \\\"maxLength\\\": 255,\\n            \\\"pattern\\\": \\\"^[^<>]+$\\\"\\n          },\\n          \\\"value\\\": {\\n            \\\"type\\\": \\\"integer\\\",\\n            \\\"minimum\\\": 0\\n          },\\n          \\\"amount\\\": {\\n            \\\"type\\\": \\\"integer\\\",\\n            \\\"minimum\\\": 1,\\n            \\\"exclusiveMinimum\\\": false\\n          },\\n          \\\"marketplace\\\": {\\n            \\\"type\\\": \\\"object\\\",\\n            \\\"properties\\\": {\\n              \\\"repasses\\\": {\\n                \\\"id\\\": \\\"/Repass\\\",\\n                \\\"type\\\": \\\"array\\\",\\n                \\\"minItems\\\": 1,\\n                \\\"items\\\": {\\n                  \\\"type\\\": \\\"object\\\",\\n                  \\\"properties\\\": {\\n                    \\\"payee_code\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"pattern\\\": \\\"^[a-fA-F0-9]{32}$\\\"\\n                    },\\n                    \\\"percentage\\\": {\\n                      \\\"type\\\": \\\"integer\\\",\\n                      \\\"minimum\\\": 0,\\n                      \\\"maximum\\\": 10000\\n                    }\\n                  },\\n                  \\\"required\\\": [\\n                    \\\"payee_code\\\",\\n                    \\\"percentage\\\"\\n                  ]\\n                }\\n              }\\n            },\\n            \\\"required\\\": [\\n              \\\"repasses\\\"\\n            ]\\n          }\\n        },\\n        \\\"required\\\": [\\n          \\\"name\\\",\\n          \\\"value\\\"\\n        ]\\n      }\\n    },\\n    \\\"shippings\\\": {\\n      \\\"id\\\": \\\"/Shipping\\\",\\n      \\\"type\\\": \\\"array\\\",\\n      \\\"minItems\\\": 1,\\n      \\\"items\\\": {\\n        \\\"type\\\": \\\"object\\\",\\n        \\\"properties\\\": {\\n          \\\"name\\\": {\\n            \\\"type\\\": \\\"string\\\",\\n            \\\"maxLength\\\": 255\\n          },\\n          \\\"value\\\": {\\n            \\\"type\\\": \\\"integer\\\",\\n            \\\"minimum\\\": 0\\n          },\\n          \\\"payee_code\\\": {\\n            \\\"type\\\": \\\"string\\\",\\n            \\\"pattern\\\": \\\"^[a-fA-F0-9]{32}$\\\"\\n          }\\n        },\\n        \\\"required\\\": [\\n          \\\"name\\\",\\n          \\\"value\\\"\\n        ]\\n      }\\n    },\\n    \\\"metadata\\\": {\\n      \\\"type\\\": \\\"object\\\",\\n      \\\"properties\\\": {\\n        \\\"custom_id\\\": {\\n          \\\"type\\\": [\\n            \\\"string\\\",\\n            \\\"null\\\"\\n          ],\\n          \\\"maxLength\\\": \\\"255\\\"\\n        },\\n        \\\"notification_url\\\": {\\n          \\\"type\\\": [\\n            \\\"string\\\",\\n            \\\"null\\\"\\n          ],\\n          \\\"format\\\": \\\"uri\\\",\\n          \\\"maxLength\\\": \\\"255\\\"\\n        }\\n      }\\n    }\\n  },\\n  \\\"required\\\": [\\n    \\\"items\\\"\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Schema\"\n    }\n  ]\n}\n[/block]\nEsse JSON define que a cobrança deve possuir um produto de nome “Meu Produto”, valor R$ 89,00 e quantidade 1, ou seja, o valor total dessa cobrança será R$ 89,00.\n\n\n<div class=\"distancia_top\"><a name=\"charge_id\"><span class=\"get\">GET</span></a><strong class=\"text-endpoint\">/charge/:id</strong></div> \n\n<hr>\n\nPermite retornar informações de uma transação existente.\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>GET /charge/:id</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/XpBOW0A7QhyOPgV4bN5V_17ece4b2e2644a969110cbfe940f650f.png\",\n        \"17ece4b2e2644a969110cbfe940f650f.png\",\n        \"1433\",\n        \"127\",\n        \"#0eabbe\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para buscar informações de alguma transação no Playground. Além disso, é possível observar a saída prevista disponível para este método:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Parâmetro de entrada: informe a \\\"charge_id\\\" da transação desejada\",\n      \"language\": \"text\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n  \\\"data\\\": {\\n    \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n    \\\"total\\\": 8900, // valor total da transação (em centavos, sendo 8900 = R$89,00)\\n    \\\"status\\\": \\\"new\\\", // cobrança gerada, aguardando definição da forma de pagamento\\n    \\\"custom_id\\\": null, // identificador próprio opcional\\n    \\\"created_at\\\": \\\"2016-06-24 14:58:46\\\", // data e hora da criação da transação\\n    \\\"notification_url\\\": null,\\n    \\\"items\\\": [\\n      {\\n        \\\"name\\\": \\\"Teste do meu produto\\\", // nome de seu item, produto ou serviço\\n        \\\"value\\\": 8900, // valor, em centavos. Por exemplo: 8900 (equivale a R$ 89,00)\\n        \\\"amount\\\": 1 // quantidade do item ou produto\\n      }\\n    ],\\n    \\\"history\\\": [ // histórico da transação numero_id\\n      {\\n        \\\"message\\\": \\\"Cobrança criada\\\", // histórico inicial da transação que foi criada\\n        \\\"created_at\\\": \\\"2016-06-24 14:58:46\\\" // data e hora da transação criada\\n      }\\n    ]\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    }\n  ]\n}\n[/block]\nAo informar o parâmetro de entrada <code>charge_id</code>, serão retornadas informações da transação existente.\n\n<div class=\"distancia_top\"><a name=\"charge_id_metadata\"><span class=\"put\">PUT</span></a><strong class=\"text-endpoint\">/charge/:id/metadata</strong></div>\n\n<hr>\n\nPermite incluir informações como <code>notification_url</code> e <code>custom_id</code> à uma transação existente:\n\n- <code>notification_url</code>: é um endereço de sua URL válida que receberá as notificações de mudanças de status das transações\n\n- <code>custom_id</code>: permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la.\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>PUT /charge/:id/metadata</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/C5UZfgQoQG2vPraJwlOh_86757bd376b94b0ebd959d54174e08b0.png\",\n        \"86757bd376b94b0ebd959d54174e08b0.png\",\n        \"1419\",\n        \"398\",\n        \"#d69432\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para alterar a URL de notificação e o custom_id de uma transação já existente no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"notification_url\\\": null,\\n  \\\"custom_id\\\": null\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    },\n    {\n      \"code\": \"{\\n  \\\"type\\\": \\\"object\\\",\\n  \\\"minProperties\\\": 1,\\n  \\\"id\\\": \\\"/ChargeMetadataUpdate\\\",\\n  \\\"properties\\\": {\\n    \\\"notification_url\\\": {\\n      \\\"type\\\": \\\"string\\\",\\n      \\\"format\\\": \\\"uri\\\",\\n      \\\"minLength\\\": \\\"1\\\",\\n      \\\"maxLength\\\": \\\"255\\\"\\n    },\\n    \\\"custom_id\\\": {\\n      \\\"type\\\": \\\"string\\\",\\n      \\\"minLength\\\": \\\"1\\\",\\n      \\\"maxLength\\\": \\\"255\\\",\\n      \\\"pattern\\\": \\\"^[a-zA-Z0-9\\\\\\\\_\\\\\\\\-\\\\\\\\s]+$\\\"\\n    }\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Schema\"\n    }\n  ]\n}\n[/block]\nEsse JSON permite alterar a URL de notificação e o custom_id de uma determinada transação.\n\n<div class=\"distancia_top\"><a name=\"charge_id_billet\"><span class=\"put\">PUT</span></a><strong class=\"text-endpoint\">/charge/:id/billet</strong></div>\n\n<hr>\n\nPermite efetuar a alteração da data de vencimento de uma transação em que a forma de pagamento é boleto bancário (<code>banking_billet</code>) e que ainda não foi paga. O formato da data de vencimento deve seguir o seguinte padrão: <code>YYYY-MM-DD</code>.\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>PUT /charge/:id/billet</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/PcgW6aQQigQdXUNshAOA_50f778c1346340edb6cf6e9e46747794.png\",\n        \"50f778c1346340edb6cf6e9e46747794.png\",\n        \"1418\",\n        \"396\",\n        \"#d78d31\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para alterar a data de vencimento de um boleto no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"expire_at\\\": \\\"2016-12-30\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200 // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    },\n    {\n      \"code\": \"{\\n  \\\"id\\\": \\\"/ChargeBilletUpdate\\\",\\n  \\\"type\\\": \\\"object\\\",\\n  \\\"properties\\\": {\\n    \\\"expire_at\\\": {\\n      \\\"type\\\": \\\"string\\\",\\n      \\\"pattern\\\": \\\"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\\\"\\n    }\\n  },\\n  \\\"required\\\": [\\n    \\\"expire_at\\\"\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Schema\"\n    }\n  ]\n}\n[/block]\nEsse JSON realiza a alteração da data de vencimento de um boleto no Playground, alterando o  vencimento do referido boleto para 30/12/2016.\n\n<div class=\"distancia_top\"><a name=\"charge_id_cancel\"><span class=\"put\">PUT</span></a><strong class=\"text-endpoint\">/charge/:id/cancel</strong></div>\n\n<hr>\n\nAtravés deste *endpoint* é possível cancelar uma transação criada.\n\nSomente transações com status <code>new</code> (novo) ou <code>waiting</code> (aguardando) podem ser canceladas. A partir do momento que uma transação é cancelada, existe apenas uma condição para que esse status seja alterado novamente: se o cliente imprimir o boleto antes do integrador cancelar a transação, ele poderá realizar o pagamento normalmente em uma agência bancária.\n\nNeste caso, o integrador e o pagador recebem a confirmação do pagamento como já acontece normalmente e o status da cobrança é alterado de <code>canceled</code> (cancelado) para <code>paid</code> (pago).\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>PUT /charge/:id/cancel</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/eNdGSCnkQP6iaRqbMQ5h_748939b1334449ba8a63a2f2dd4bf3c3.png\",\n        \"748939b1334449ba8a63a2f2dd4bf3c3.png\",\n        \"1432\",\n        \"120\",\n        \"#f58822\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para cancelar uma transação criada em Playground. Além disso, é possível observar a saída prevista disponível para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Parâmetro de entrada: informe a \\\"charge_id\\\" da transação desejada\",\n      \"language\": \"text\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200 // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    }\n  ]\n}\n[/block]\nEsse JSON realiza o cancelamento de uma determinada transação criada no Playground.\n\n<div class=\"distancia_top\"><a name=\"charge_id_pay\"><span class=\"post\">POST</span></a><strong class=\"text-endpoint\">/charge/:id/pay</strong></div>\n\n<hr>\n\nPermite associar um método de pagamento à uma transação já criada.\n\nApós gerar uma transação através do endpoint <code>POST /charge</code>, esta fica classificada com o status de <code>new</code> (novo), ou seja, uma nova transação foi gerada, porém, nenhum método de pagamento foi atribuído a ela.\n\nPara definir uma forma de pagamento para a transação criada, o integrador pode escolher entre <code>banking_billet</code> ou <code>credit_card</code> (boleto bancário e cartão de crédito, respectivamente).\n\n- *Boleto Bancário*: a transação passa por um ciclo de alteração de status, sendo criada inicialmente com o status de <code>new</code> (novo) e, ao definir a forma de pagamento, o status passará a ser <code>waiting</code> (aguardando). Isso significa que o boleto foi gerado com sucesso, mas ainda não foi pago. Ao escolher boleto, a resposta do consumo já terá a linha digitável, código de barras e link para acesso ao boleto;\n\n- *Cartão de Crédito*: a principal diferença para o boleto está relacionada à necessidade de utilização de um código denominado “payment_token”. No Playground, você pode gerar seu token clicando no botão *“Gerar payment token”* e colá-lo dentro do atributo <code>payment_token</code>. Já no ambiente de produção, a obtenção do \"payment_token\" se dá pelo consumo de um código Javascript disponível em sua conta.\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/pay</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/acgRGmadTzyqJ0tb7EP4_2365183b119b4572aa1a7590263a48ec.png\",\n        \"2365183b119b4572aa1a7590263a48ec.png\",\n        \"1436\",\n        \"434\",\n        \"#369db0\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para associar um método de pagamento à uma transação já criada em Playground - o integrador pode escolher entre <code>banking_billet</code> ou <code>credit_card</code>. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"payment\\\": {\\n    \\\"credit_card\\\": {\\n      \\\"customer\\\": {\\n        \\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n        \\\"cpf\\\": \\\"94271564656\\\",\\n        \\\"email\\\": \\\"email_do_cliente:::at:::servidor.com.br\\\",\\n        \\\"birth\\\": \\\"1990-08-29\\\",\\n        \\\"phone_number\\\": \\\"5144916523\\\"\\n      },\\n      \\\"installments\\\": 1,\\n      \\\"payment_token\\\": \\\"\\\",\\n      \\\"billing_address\\\": {\\n        \\\"street\\\": \\\"Avenida Juscelino Kubitschek\\\",\\n        \\\"number\\\": \\\"909\\\",\\n        \\\"neighborhood\\\": \\\"Bauxita\\\",\\n        \\\"zipcode\\\": \\\"35400000\\\",\\n        \\\"city\\\": \\\"Ouro Preto\\\",\\n        \\\"complement\\\": \\\"\\\",\\n        \\\"state\\\": \\\"MG\\\"\\n      }\\n    }\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada (cartão)\"\n    },\n    {\n      \"code\": \"{\\n  \\\"payment\\\": {\\n    \\\"banking_billet\\\": {\\n      \\\"customer\\\": {\\n        \\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n        \\\"cpf\\\": \\\"94271564656\\\",\\n        \\\"email\\\": \\\"email_do_cliente@servidor.com.br\\\",\\n        \\\"phone_number\\\": \\\"5144916523\\\",\\n        \\\"address\\\": {\\n          \\\"street\\\": \\\"Avenida Juscelino Kubitschek\\\",\\n          \\\"number\\\": \\\"909\\\",\\n          \\\"neighborhood\\\": \\\"Bauxita\\\",\\n          \\\"zipcode\\\": \\\"35400000\\\",\\n          \\\"city\\\": \\\"Ouro Preto\\\",\\n          \\\"complement\\\": \\\"\\\",\\n          \\\"state\\\": \\\"MG\\\"\\n        }\\n      },\\n      \\\"expire_at\\\": \\\"2016-12-30\\\",\\n      \\\"configurations\\\": {\\n        \\\"fine\\\": 200,\\n        \\\"interest\\\": 33\\n      },\\n      \\\"message\\\": \\\"Este é um espaço de até 80 caracteres para informar algo a seu cliente\\\"\\n    }\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada (boleto)\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n  \\\"data\\\": {\\n    \\\"installments\\\": 1, // número de parcelas em que o pagamento deve ser dividido\\n    \\\"installment_value\\\": 8900, // valor da parcela. Por exemplo: 8900 (equivale a R$ 89,00)\\n    \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n    \\\"status\\\": \\\"waiting\\\", // forma de pagamento selecionada, aguardando a confirmação do pagamento (\\\"waiting\\\" equivale a \\\"aguardando\\\")\\n    \\\"total\\\": 8900, // valor, em centavos. Por exemplo: 8900 (equivale a R$ 89,00)\\n    \\\"payment\\\": \\\"credit_card\\\" // forma de pagamento associada à esta transação (\\\"credit_card\\\" equivale a \\\"cartão de crédito\\\")\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída (cartão)\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n  \\\"data\\\": {\\n    \\\"barcode\\\": \\\"codigo_barras_do_boleto\\\", // código de barras do boleto\\n    \\\"link\\\": \\\"link_para_acesso_ao_boleto\\\", // link do boleto gerado\\n    \\\"expire_at\\\": \\\"2016-12-30\\\", // data de vencimento do boleto no seguinte formato: 2016-12-30 (ou seja, equivale a 30/12/2016)\\n    \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n    \\\"status\\\": \\\"waiting\\\", // forma de pagamento selecionada, aguardando a confirmação do pagamento (\\\"waiting\\\" equivale a \\\"aguardando\\\")\\n    \\\"total\\\": 8900, // valor, em centavos. Por exemplo: 8900 (equivale a R$ 89,00)\\n    \\\"payment\\\": \\\"banking_billet\\\" // forma de pagamento associada à esta transação (\\\"banking_billet\\\" equivale a \\\"boleto bancário\\\")\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída (boleto)\"\n    },\n    {\n      \"code\": \"{\\n  \\\"type\\\": \\\"object\\\",\\n  \\\"id\\\": \\\"/Pay\\\",\\n  \\\"properties\\\": {\\n    \\\"payment\\\": {\\n      \\\"type\\\": \\\"object\\\",\\n      \\\"maxProperties\\\": 1,\\n      \\\"minProperties\\\": 1,\\n      \\\"properties\\\": {\\n        \\\"banking_billet\\\": {\\n          \\\"type\\\": \\\"object\\\",\\n          \\\"id\\\": \\\"/Billet\\\",\\n          \\\"properties\\\": {\\n            \\\"customer\\\": {\\n              \\\"type\\\": \\\"object\\\",\\n              \\\"id\\\": \\\"/BasicCustomer\\\",\\n              \\\"properties\\\": {\\n                \\\"name\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"minLength\\\": 1,\\n                  \\\"maxLength\\\": 255,\\n                  \\\"pattern\\\": \\\"^[ ]*(.+[ ]+)+.+[ ]*$\\\"\\n                },\\n                \\\"cpf\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"minLength\\\": 11,\\n                  \\\"maxLength\\\": 11\\n                },\\n                \\\"email\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"maxLength\\\": 255,\\n                  \\\"pattern\\\": \\\"^[A-Za-z0-9_\\\\\\\\-]+(?:[.][A-Za-z0-9_\\\\\\\\-]+)*@[A-Za-z0-9_]+(?:[-.][A-Za-z0-9_]+)*\\\\\\\\.[A-Za-z0-9_]+$\\\"\\n                },\\n                \\\"phone_number\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"pattern\\\": \\\"^[1-9]{2}9?[0-9]{8}$\\\"\\n                },\\n                \\\"birth\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"pattern\\\": \\\"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\\\"\\n                },\\n                \\\"address\\\": {\\n                  \\\"type\\\": \\\"object\\\",\\n                  \\\"id\\\": \\\"/Address\\\",\\n                  \\\"properties\\\": {\\n                    \\\"street\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 200\\n                    },\\n                    \\\"number\\\": {\\n                      \\\"type\\\": [\\n                        \\\"string\\\",\\n                        \\\"integer\\\"\\n                      ],\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 55\\n                    },\\n                    \\\"neighborhood\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 255\\n                    },\\n                    \\\"zipcode\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"pattern\\\": \\\"^[0-9]{8}$\\\"\\n                    },\\n                    \\\"city\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 255\\n                    },\\n                    \\\"complement\\\": {\\n                      \\\"type\\\": [\\n                        \\\"string\\\",\\n                        \\\"null\\\"\\n                      ],\\n                      \\\"minLength\\\": 0,\\n                      \\\"maxLength\\\": 45\\n                    },\\n                    \\\"state\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"pattern\\\": \\\"^(?:A[CLPM]|BA|CE|DF|ES|GO|M[ATSG]|P[RBAEI]|R[JNSOR]|S[CEP]|TO)$\\\"\\n                    }\\n                  },\\n                  \\\"required\\\": [\\n                    \\\"street\\\",\\n                    \\\"number\\\",\\n                    \\\"neighborhood\\\",\\n                    \\\"zipcode\\\",\\n                    \\\"city\\\",\\n                    \\\"state\\\"\\n                  ]\\n                },\\n                \\\"juridical_person\\\": {\\n                  \\\"type\\\": \\\"object\\\",\\n                  \\\"id\\\": \\\"/JuridicalPerson\\\",\\n                  \\\"properties\\\": {\\n                    \\\"corporate_name\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 255,\\n                      \\\"pattern\\\": \\\"^[ ]*(.+[ ]+)+.+[ ]*$\\\"\\n                    },\\n                    \\\"cnpj\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 14,\\n                      \\\"maxLength\\\": 14\\n                    }\\n                  },\\n                  \\\"required\\\": [\\n                    \\\"corporate_name\\\",\\n                    \\\"cnpj\\\"\\n                  ]\\n                }\\n              },\\n              \\\"required\\\": [\\n                \\\"phone_number\\\"\\n              ]\\n            },\\n            \\\"expire_at\\\": {\\n              \\\"type\\\": \\\"string\\\",\\n              \\\"pattern\\\": \\\"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\\\"\\n            },\\n            \\\"discount\\\": {\\n              \\\"type\\\": \\\"object\\\",\\n              \\\"id\\\": \\\"/Discount\\\",\\n              \\\"properties\\\": {\\n                \\\"type\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"enum\\\": [\\n                    \\\"percentage\\\",\\n                    \\\"currency\\\"\\n                  ]\\n                },\\n                \\\"value\\\": {\\n                  \\\"type\\\": \\\"integer\\\",\\n                  \\\"minimum\\\": 1\\n                }\\n              },\\n              \\\"required\\\": [\\n                \\\"type\\\",\\n                \\\"value\\\"\\n              ]\\n            },\\n            \\\"instructions\\\": {\\n              \\\"type\\\": \\\"array\\\",\\n              \\\"minItems\\\": 1,\\n              \\\"maxItems\\\": 4,\\n              \\\"items\\\": {\\n                \\\"type\\\": \\\"string\\\",\\n                \\\"minLength\\\": 1,\\n                \\\"maxLength\\\": 90\\n              }\\n            },\\n            \\\"configurations\\\": {\\n              \\\"type\\\": \\\"object\\\",\\n              \\\"minProperties\\\": 1,\\n              \\\"properties\\\": {\\n                \\\"fine\\\": {\\n                  \\\"type\\\": \\\"integer\\\",\\n                  \\\"minimum\\\": 1,\\n                  \\\"maximum\\\": 1000\\n                },\\n                \\\"interest\\\": {\\n                  \\\"type\\\": \\\"integer\\\",\\n                  \\\"minimum\\\": 1,\\n                  \\\"maximum\\\": 330\\n                }\\n              }\\n            },\\n            \\\"message\\\": {\\n              \\\"type\\\": \\\"string\\\",\\n              \\\"minLength\\\": 3,\\n              \\\"maxLength\\\": 80\\n            }\\n          },\\n          \\\"required\\\": [\\n            \\\"customer\\\",\\n            \\\"expire_at\\\"\\n          ]\\n        },\\n        \\\"credit_card\\\": {\\n          \\\"type\\\": \\\"object\\\",\\n          \\\"id\\\": \\\"/CreditCard\\\",\\n          \\\"properties\\\": {\\n            \\\"customer\\\": {\\n              \\\"type\\\": \\\"object\\\",\\n              \\\"id\\\": \\\"/FullCustomer\\\",\\n              \\\"properties\\\": {\\n                \\\"name\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"minLength\\\": 1,\\n                  \\\"maxLength\\\": 255,\\n                  \\\"pattern\\\": \\\"^[ ]*(.+[ ]+)+.+[ ]*$\\\"\\n                },\\n                \\\"cpf\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"minLength\\\": 11,\\n                  \\\"maxLength\\\": 11\\n                },\\n                \\\"email\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"maxLength\\\": 255,\\n                  \\\"pattern\\\": \\\"^[A-Za-z0-9_\\\\\\\\-]+(?:[.][A-Za-z0-9_\\\\\\\\-]+)*@[A-Za-z0-9_]+(?:[-.][A-Za-z0-9_]+)*\\\\\\\\.[A-Za-z0-9_]+$\\\"\\n                },\\n                \\\"phone_number\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"pattern\\\": \\\"^[1-9]{2}9?[0-9]{8}$\\\"\\n                },\\n                \\\"birth\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"pattern\\\": \\\"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\\\"\\n                },\\n                \\\"address\\\": {\\n                  \\\"type\\\": \\\"object\\\",\\n                  \\\"id\\\": \\\"/Address\\\",\\n                  \\\"properties\\\": {\\n                    \\\"street\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 200\\n                    },\\n                    \\\"number\\\": {\\n                      \\\"type\\\": [\\n                        \\\"string\\\",\\n                        \\\"integer\\\"\\n                      ],\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 55\\n                    },\\n                    \\\"neighborhood\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 255\\n                    },\\n                    \\\"zipcode\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"pattern\\\": \\\"^[0-9]{8}$\\\"\\n                    },\\n                    \\\"city\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 255\\n                    },\\n                    \\\"complement\\\": {\\n                      \\\"type\\\": [\\n                        \\\"string\\\",\\n                        \\\"null\\\"\\n                      ],\\n                      \\\"minLength\\\": 0,\\n                      \\\"maxLength\\\": 45\\n                    },\\n                    \\\"state\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"pattern\\\": \\\"^(?:A[CLPM]|BA|CE|DF|ES|GO|M[ATSG]|P[RBAEI]|R[JNSOR]|S[CEP]|TO)$\\\"\\n                    }\\n                  },\\n                  \\\"required\\\": [\\n                    \\\"street\\\",\\n                    \\\"number\\\",\\n                    \\\"neighborhood\\\",\\n                    \\\"zipcode\\\",\\n                    \\\"city\\\",\\n                    \\\"state\\\"\\n                  ]\\n                },\\n                \\\"juridical_person\\\": {\\n                  \\\"type\\\": \\\"object\\\",\\n                  \\\"id\\\": \\\"/JuridicalPerson\\\",\\n                  \\\"properties\\\": {\\n                    \\\"corporate_name\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 1,\\n                      \\\"maxLength\\\": 255,\\n                      \\\"pattern\\\": \\\"^[ ]*(.+[ ]+)+.+[ ]*$\\\"\\n                    },\\n                    \\\"cnpj\\\": {\\n                      \\\"type\\\": \\\"string\\\",\\n                      \\\"minLength\\\": 14,\\n                      \\\"maxLength\\\": 14\\n                    }\\n                  },\\n                  \\\"required\\\": [\\n                    \\\"corporate_name\\\",\\n                    \\\"cnpj\\\"\\n                  ]\\n                }\\n              },\\n              \\\"required\\\": [\\n                \\\"email\\\",\\n                \\\"phone_number\\\",\\n                \\\"birth\\\"\\n              ]\\n            },\\n            \\\"installments\\\": {\\n              \\\"type\\\": \\\"integer\\\",\\n              \\\"minimum\\\": 1,\\n              \\\"maximum\\\": 12,\\n              \\\"exclusiveMinimum\\\": false,\\n              \\\"exclusiveMaximum\\\": false\\n            },\\n            \\\"discount\\\": {\\n              \\\"type\\\": \\\"object\\\",\\n              \\\"id\\\": \\\"/Discount\\\",\\n              \\\"properties\\\": {\\n                \\\"type\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"enum\\\": [\\n                    \\\"percentage\\\",\\n                    \\\"currency\\\"\\n                  ]\\n                },\\n                \\\"value\\\": {\\n                  \\\"type\\\": \\\"integer\\\",\\n                  \\\"minimum\\\": 1\\n                }\\n              },\\n              \\\"required\\\": [\\n                \\\"type\\\",\\n                \\\"value\\\"\\n              ]\\n            },\\n            \\\"billing_address\\\": {\\n              \\\"type\\\": \\\"object\\\",\\n              \\\"id\\\": \\\"/Address\\\",\\n              \\\"properties\\\": {\\n                \\\"street\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"minLength\\\": 1,\\n                  \\\"maxLength\\\": 200\\n                },\\n                \\\"number\\\": {\\n                  \\\"type\\\": [\\n                    \\\"string\\\",\\n                    \\\"integer\\\"\\n                  ],\\n                  \\\"minLength\\\": 1,\\n                  \\\"maxLength\\\": 55\\n                },\\n                \\\"neighborhood\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"minLength\\\": 1,\\n                  \\\"maxLength\\\": 255\\n                },\\n                \\\"zipcode\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"pattern\\\": \\\"^[0-9]{8}$\\\"\\n                },\\n                \\\"city\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"minLength\\\": 1,\\n                  \\\"maxLength\\\": 255\\n                },\\n                \\\"complement\\\": {\\n                  \\\"type\\\": [\\n                    \\\"string\\\",\\n                    \\\"null\\\"\\n                  ],\\n                  \\\"minLength\\\": 0,\\n                  \\\"maxLength\\\": 45\\n                },\\n                \\\"state\\\": {\\n                  \\\"type\\\": \\\"string\\\",\\n                  \\\"pattern\\\": \\\"^(?:A[CLPM]|BA|CE|DF|ES|GO|M[ATSG]|P[RBAEI]|R[JNSOR]|S[CEP]|TO)$\\\"\\n                }\\n              },\\n              \\\"required\\\": [\\n                \\\"street\\\",\\n                \\\"number\\\",\\n                \\\"neighborhood\\\",\\n                \\\"zipcode\\\",\\n                \\\"city\\\",\\n                \\\"state\\\"\\n              ]\\n            },\\n            \\\"payment_token\\\": {\\n              \\\"type\\\": \\\"string\\\",\\n              \\\"pattern\\\": \\\"^[a-fA-F0-9]{40}$\\\"\\n            },\\n            \\\"message\\\": {\\n              \\\"type\\\": \\\"string\\\",\\n              \\\"minLength\\\": 3,\\n              \\\"maxLength\\\": 80\\n            }\\n          },\\n          \\\"required\\\": [\\n            \\\"customer\\\",\\n            \\\"billing_address\\\",\\n            \\\"payment_token\\\"\\n          ]\\n        }\\n      }\\n    }\\n  },\\n  \\\"required\\\": [\\n    \\\"payment\\\"\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Schema\"\n    }\n  ]\n}\n[/block]\nEsse JSON associa uma determinada transação a uma forma de pagamento, podendo ser boleto bancário ou cartão de crédito.\n\nNo caso da aba <em>\"Dados de Entrada (boleto)\"</em>, está sendo gerado um boleto com vencimento para 30/12/2016, estamos usando uma mensagem de até 80 caracteres para informar algo ao cliente, e se o boleto for pago após o vencimento, será cobrado 2% de multa e 0,033% de juros por dia.\n\nNo caso da aba <em>\"Dados de Entrada (cartão)\"</em>, o <code>payment_token</code> é o token de pagamento necessário quando o pagamento é via cartão. No Playground, ele é obtido apenas clicando no botão <em>\"Gerar payment token\"</em> e colando dentro do atributo <code>payment_token</code>. Caso estivesse em ambiente de produção, seria obtido através de código Javascript disponível para cada conta Gerencianet - para boleto o \"payment_token\" não é necessário.\n\n<div class=\"distancia_top\"><a name=\"charge_id_billet_resend\"><span class=\"post\">POST</span></a><strong class=\"text-endpoint\">/charge/:id/billet/resend</strong></div>\n\n<hr>\n\nPermite o reenvio do boleto bancário para o e-mail desejado.\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/billet/resend</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ncNp3ENVRxyG6yY83nbu_80cf46babc1c431faf3930dd25e0aa04.png\",\n        \"80cf46babc1c431faf3930dd25e0aa04.png\",\n        \"1420\",\n        \"397\",\n        \"#518857\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para reenviar por email um boleto bancário criado em Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"email\\\": \\\"email_do_cliente@servidor.com.br\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200 // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    },\n    {\n      \"code\": \"{\\n  \\\"id\\\": \\\"/ChargeBilletResend\\\",\\n  \\\"type\\\": \\\"object\\\",\\n  \\\"properties\\\": {\\n    \\\"email\\\": {\\n      \\\"type\\\": \\\"string\\\",\\n      \\\"maxLength\\\": 255,\\n      \\\"pattern\\\": \\\"^[A-Za-z0-9_\\\\\\\\-]+(?:[.][A-Za-z0-9_\\\\\\\\-]+)*@[A-Za-z0-9_]+(?:[-.][A-Za-z0-9_]+)*\\\\\\\\.[A-Za-z0-9_]+$\\\"\\n    }\\n  },\\n  \\\"required\\\": [\\n    \\\"email\\\"\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Schema\"\n    }\n  ]\n}\n[/block]\nEsse JSON define que o endereço \"email_do_cliente@servidor.com.br\" receberá uma segunda via de um determinado boleto bancário que foi criado em Playground.\n\n<div class=\"distancia_top\"><a name=\"charge_id_history\"><span class=\"post\">POST</span></a><strong class=\"text-endpoint\">/charge/:id/history</strong></div>\n\n<hr>\n\nO histórico de uma transação representa todas as ações que ocorreram com esta transação até o presente momento. É possível adicionar mensagens personalizadas a este histórico utilizando o endpoint <code>/charge/:id/history</code>.\n\nAs mensagens personalizadas não influenciam na transação em si, apenas em seu histórico. Para tal, você deve informar a <code>charge_id</code> da transação desejada. Essa descrição deve possuir no mínimo um caractere e no máximo 255 caracteres.\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/history</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/8b68BsT9RIS9eIayarP7_7bbfcb09fab74766961ed16eec369bb0.png\",\n        \"7bbfcb09fab74766961ed16eec369bb0.png\",\n        \"1417\",\n        \"398\",\n        \"#4e8661\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para acrescentar uma descrição a uma determinada transação no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"description\\\": \\\"Camisa Polo tamanho G cor azul\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200 // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    },\n    {\n      \"code\": \"{\\n  \\\"type\\\": \\\"object\\\",\\n  \\\"id\\\": \\\"/ChargeHistory\\\",\\n  \\\"properties\\\": {\\n    \\\"description\\\": {\\n      \\\"type\\\": \\\"string\\\",\\n      \\\"maxLength\\\": \\\"255\\\",\\n      \\\"minLength\\\": \\\"1\\\"\\n    }\\n  },\\n  \\\"required\\\": [\\n    \\\"description\\\"\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Schema\"\n    }\n  ]\n}\n[/block]\nEsse JSON acrescenta a descrição \"Camisa Polo tamanho G cor azul\" em uma determinada transação no Playground.\n\n<div class=\"distancia_top\"><a name=\"charge_id_link\"><span class=\"post\">POST</span></a><strong class=\"text-endpoint\">/charge/:id/link</strong></div>\n\n<hr>\n\nPermite retornar um link para uma tela de pagamento da Gerencianet. Em outras palavras, o integrador gera uma cobrança e, em seguida, ao invés de definir o pagamento via boleto bancário ou cartão de crédito, o integrador pode solicitar um link escolhendo inclusive se a tela de pagamento deve aceitar boleto, cartão ou ambos.\n\nAlém disso, o integrador define um vencimento para a tela de pagamento, ou seja, após a data definida pelo integrador, o link da tela de pagamento não terá mais validade. O integrador pode definir o desconto para boleto ou cartão, e pode ainda informar se deseja coletar ou não o endereço do cliente.\n\nEssa tela de pagamento não é uma definição de pagamento como boleto ou cartão, mas sim um intermediário. É útil quando o integrador não deseja implementar sua própria tela de pagamento, por exemplo.\n\nNa imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/link</code> que estão disponíveis para utilização:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/7dabfd2-charge-link.png\",\n        \"charge-link.png\",\n        1434,\n        404,\n        \"#eff0ee\"\n      ],\n      \"caption\": \"\"\n    }\n  ]\n}\n[/block]\nA seguir, um JSON simples que pode ser utilizado para retornar um link para uma tela de pagamento da Gerencianet. Para utilização, você deve previamente criar uma transação e, no campo <code>id</code>, fornecer o <code>charge_id</code> da transação que foi criada anteriormente. Assim, será retornado um link que permitirá ao cliente ir para uma tela de pagamento previamente configurada pelo integrador.\n\nAlém disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada e criada previamente:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"message\\\": \\\"Escreva aqui, se quiser, uma mensagem ao seu cliente, limite de 80 caracteres\\\",\\n  \\\"expire_at\\\": \\\"2016-12-20\\\",\\n  \\\"request_delivery_address\\\": false,\\n  \\\"payment_method\\\": \\\"all\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Entrada\"\n    },\n    {\n      \"code\": \"{\\n  \\\"code\\\": 200, // retorno HTTP \\\"200\\\" informando que o pedido foi bem sucedido\\n  \\\"data\\\": {\\n    \\\"charge_id\\\": numero_charge_id, // número da ID referente à transação gerada\\n    \\\"status\\\": \\\"new\\\", // cobrança gerada, aguardando definição da forma de pagamento\\n    \\\"total\\\": 6990, // valor total da transação (em centavos, sendo 6990 = R$69,90)\\n    \\\"custom_id\\\": null, // identificador próprio opcional\\n    \\\"payment_url\\\": \\\"https://pagamento.gerencianet.com.br/9726f54f-19c5-4265-9628-f69d32359348\\\", // link\\n    \\\"payment_method\\\": \\\"all\\\", // formas de pagamento permitidas (all = cartão e boleto)\\n    \\\"created_at\\\": \\\"2016-10-03 11:46:50\\\" // data e hora da criação da transação\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Dados de Saída\"\n    },\n    {\n      \"code\": \"{\\n  \\\"id\\\": \\\"/ChargeLink\\\",\\n  \\\"type\\\": \\\"object\\\",\\n  \\\"properties\\\": {\\n    \\\"billet_discount\\\": {\\n      \\\"type\\\": \\\"integer\\\",\\n      \\\"minimum\\\": 1,\\n      \\\"maximum\\\": 99999999\\n    },\\n    \\\"card_discount\\\": {\\n      \\\"type\\\": \\\"integer\\\",\\n      \\\"minimum\\\": 1,\\n      \\\"maximum\\\": 99999999\\n    },\\n    \\\"message\\\": {\\n      \\\"type\\\": \\\"string\\\",\\n      \\\"minLength\\\": 3,\\n      \\\"maxLength\\\": 80\\n    },\\n    \\\"expire_at\\\": {\\n      \\\"type\\\": \\\"string\\\",\\n      \\\"format\\\": \\\"date\\\"\\n    },\\n    \\\"request_delivery_address\\\": {\\n      \\\"type\\\": \\\"boolean\\\"\\n    },\\n    \\\"payment_method\\\": {\\n      \\\"enum\\\": [\\n        \\\"banking_billet\\\",\\n        \\\"credit_card\\\",\\n        \\\"all\\\"\\n      ]\\n    }\\n  },\\n  \\\"required\\\": [\\n    \\\"request_delivery_address\\\",\\n    \\\"expire_at\\\",\\n    \\\"payment_method\\\"\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Schema\"\n    }\n  ]\n}\n[/block]\nEsse JSON retornará um link que dará acesso a uma tela de pagamento. Note que esse link da tela de pagamento terá validade até 20/12/2016, não estamos solicitando o endereço de entrega de nosso cliente e a forma de pagamento permitida é boleto e cartão (que também poderia ter utilizado <code>banking_billet</code> para permitir só pagamento via boleto ou <code>credit_card</code> para somente cartão).\n\nExistem outras possibilidades, como por exemplo, concessão de desconto de acordo com a forma de pagamento, bastaria usar os atributos <code>billet_discount</code> - veja na aba \"Schema\" todos os atributos possíveis de serem utilizados.","excerpt":"Você está em: *\"Ambiente de Testes > Playground: Transações\"*","slug":"playground-transacoes","type":"basic","title":"Playground: Transações"}

Playground: Transações

Você está em: *"Ambiente de Testes > Playground: Transações"*

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>. O Playground (também chamado de "sandbox") é um ambiente de desenvolvimento/testes 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. [Conheça mais](https://dev.gerencianet.com.br/docs/playground) sobre o Playground oferecido pela Gerencianet. A integração com a Gerencianet possui duas etapas: 1. Primeiro [gera a transação (ou cobrança)](https://dev.gerencianet.com.br/docs/playground-transacoes#charge) através do endpoint <code>POST /charge</code>; 2. Por fim, [associa a transação gerada à uma forma de pagamento](https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_pay) através do endpoint <code>POST /charge/:id/pay</code>. Após utilizar o endpoint <code>POST /charge</code>, a transação já estará criada e, a partir deste momento, será possível associá-la à forma de pagamento como boleto bancário ou cartão de crédito. ## Índice contendo os endpoints listados no Playground, modalidade *"Transações"* <hr> <ul><li><div class=""><span class="post">POST</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge">/charge</a> <em>(criar nova transação)</em></div></li><li><div class=""><span class="get">GET</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id">/charge/:id</a> <em>(retornar informações de transação existente)</em></div></li><li><div class=""><span class="put">PUT</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_metadata">/charge/:id/metadata</a> <em>(incluir "notification_url" e "custom_id" em uma transação existente)</em></div></li><li><div class=""><span class="put">PUT</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_billet">/charge/:id/billet</a> <em>(alterar data de vencimento de uma transação existente)</em></div></li><li><div class=""><span class="put">PUT</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_cancel">/charge/:id/cancel</a> <em>(cancelar uma transação existente)</em></div></li><li><div class=""><span class="post">POST</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_pay">/charge/:id/pay</a> <em>(associa método de pagamento à uma transação já criada)</em></div></li><li><div class=""><span class="post">POST</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_billet_resend">/charge/:id/billet/resend</a> <em>(reenvio do boleto bancário para o email desejado)</em></div></li><li><div class=""><span class="post">POST</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_history">/charge/:id/history</a> <em>(acrescentar descrição ao histórico de uma transação)</em></div></li><li><div class=""><span class="post">POST</span> <a href="https://dev.gerencianet.com.br/docs/playground-transacoes#charge_id_link">/charge/:id/link</a> <em>(retorna um link para uma tela de pagamento da Gerencianet)</em></div></li></ul> <div class="distancia_top"><a name="charge"><span class="post">POST</span></a><strong class="text-endpoint">/charge</strong></div> <hr> Permite criar uma nova transação; retorna um código identificador da transação denominado <code>charge_id</code>. Somente após a geração da transação (isto é, depois de gerada a cobrança) é que será associada a um método de pagamento (boleto bancário ou cartão de crédito). Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/QBI8zqUhR12Phw6CakOQ_fb8f3a1272454f32a7606c0e5f44df2a.png", "fb8f3a1272454f32a7606c0e5f44df2a.png", "1432", "369", "#518862", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para criar uma cobrança (ainda sem forma de pagamento definida) no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método: [block:code] { "codes": [ { "code": "{\n \"items\": [\n {\n \"name\": \"Meu Produto\",\n \"value\": 8900,\n \"amount\": 1\n }\n ]\n}", "language": "json", "name": "Dados de Entrada" }, { "code": "{\n \"code\": 200, // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n \"data\": {\n \"charge_id\": numero_charge_id, // número da ID referente à transação gerada\n \"status\": \"new\", // cobrança gerada, aguardando definição da forma de pagamento\n \"total\": 8900, // valor total da transação (em centavos, sendo 8900 = R$89,00)\n \"custom_id\": null, // identificador próprio opcional\n \"created_at\": \"2016-06-24 14:58:46\" // data e hora da criação da transação\n }\n}", "language": "json", "name": "Dados de Saída" }, { "code": "{\n \"id\": \"/Charge\",\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"id\": \"/MarketplaceItem\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255,\n \"pattern\": \"^[^<>]+$\"\n },\n \"value\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"amount\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"exclusiveMinimum\": false\n },\n \"marketplace\": {\n \"type\": \"object\",\n \"properties\": {\n \"repasses\": {\n \"id\": \"/Repass\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"payee_code\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-fA-F0-9]{32}$\"\n },\n \"percentage\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 10000\n }\n },\n \"required\": [\n \"payee_code\",\n \"percentage\"\n ]\n }\n }\n },\n \"required\": [\n \"repasses\"\n ]\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ]\n }\n },\n \"shippings\": {\n \"id\": \"/Shipping\",\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"maxLength\": 255\n },\n \"value\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"payee_code\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-fA-F0-9]{32}$\"\n }\n },\n \"required\": [\n \"name\",\n \"value\"\n ]\n }\n },\n \"metadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"custom_id\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"maxLength\": \"255\"\n },\n \"notification_url\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uri\",\n \"maxLength\": \"255\"\n }\n }\n }\n },\n \"required\": [\n \"items\"\n ]\n}", "language": "json", "name": "Schema" } ] } [/block] Esse JSON define que a cobrança deve possuir um produto de nome “Meu Produto”, valor R$ 89,00 e quantidade 1, ou seja, o valor total dessa cobrança será R$ 89,00. <div class="distancia_top"><a name="charge_id"><span class="get">GET</span></a><strong class="text-endpoint">/charge/:id</strong></div> <hr> Permite retornar informações de uma transação existente. Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>GET /charge/:id</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/XpBOW0A7QhyOPgV4bN5V_17ece4b2e2644a969110cbfe940f650f.png", "17ece4b2e2644a969110cbfe940f650f.png", "1433", "127", "#0eabbe", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para buscar informações de alguma transação no Playground. Além disso, é possível observar a saída prevista disponível para este método: [block:code] { "codes": [ { "code": "Parâmetro de entrada: informe a \"charge_id\" da transação desejada", "language": "text", "name": "Dados de Entrada" }, { "code": "{\n \"code\": 200, // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n \"data\": {\n \"charge_id\": numero_charge_id, // número da ID referente à transação gerada\n \"total\": 8900, // valor total da transação (em centavos, sendo 8900 = R$89,00)\n \"status\": \"new\", // cobrança gerada, aguardando definição da forma de pagamento\n \"custom_id\": null, // identificador próprio opcional\n \"created_at\": \"2016-06-24 14:58:46\", // data e hora da criação da transação\n \"notification_url\": null,\n \"items\": [\n {\n \"name\": \"Teste do meu produto\", // nome de seu item, produto ou serviço\n \"value\": 8900, // valor, em centavos. Por exemplo: 8900 (equivale a R$ 89,00)\n \"amount\": 1 // quantidade do item ou produto\n }\n ],\n \"history\": [ // histórico da transação numero_id\n {\n \"message\": \"Cobrança criada\", // histórico inicial da transação que foi criada\n \"created_at\": \"2016-06-24 14:58:46\" // data e hora da transação criada\n }\n ]\n }\n}", "language": "json", "name": "Dados de Saída" } ] } [/block] Ao informar o parâmetro de entrada <code>charge_id</code>, serão retornadas informações da transação existente. <div class="distancia_top"><a name="charge_id_metadata"><span class="put">PUT</span></a><strong class="text-endpoint">/charge/:id/metadata</strong></div> <hr> Permite incluir informações como <code>notification_url</code> e <code>custom_id</code> à uma transação existente: - <code>notification_url</code>: é um endereço de sua URL válida que receberá as notificações de mudanças de status das transações - <code>custom_id</code>: permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>PUT /charge/:id/metadata</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/C5UZfgQoQG2vPraJwlOh_86757bd376b94b0ebd959d54174e08b0.png", "86757bd376b94b0ebd959d54174e08b0.png", "1419", "398", "#d69432", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para alterar a URL de notificação e o custom_id de uma transação já existente no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada: [block:code] { "codes": [ { "code": "{\n \"notification_url\": null,\n \"custom_id\": null\n}", "language": "json", "name": "Dados de Entrada" }, { "code": "", "language": "json", "name": "Dados de Saída" }, { "code": "{\n \"type\": \"object\",\n \"minProperties\": 1,\n \"id\": \"/ChargeMetadataUpdate\",\n \"properties\": {\n \"notification_url\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"minLength\": \"1\",\n \"maxLength\": \"255\"\n },\n \"custom_id\": {\n \"type\": \"string\",\n \"minLength\": \"1\",\n \"maxLength\": \"255\",\n \"pattern\": \"^[a-zA-Z0-9\\\\_\\\\-\\\\s]+$\"\n }\n }\n}", "language": "json", "name": "Schema" } ] } [/block] Esse JSON permite alterar a URL de notificação e o custom_id de uma determinada transação. <div class="distancia_top"><a name="charge_id_billet"><span class="put">PUT</span></a><strong class="text-endpoint">/charge/:id/billet</strong></div> <hr> Permite efetuar a alteração da data de vencimento de uma transação em que a forma de pagamento é boleto bancário (<code>banking_billet</code>) e que ainda não foi paga. O formato da data de vencimento deve seguir o seguinte padrão: <code>YYYY-MM-DD</code>. Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>PUT /charge/:id/billet</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/PcgW6aQQigQdXUNshAOA_50f778c1346340edb6cf6e9e46747794.png", "50f778c1346340edb6cf6e9e46747794.png", "1418", "396", "#d78d31", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para alterar a data de vencimento de um boleto no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada: [block:code] { "codes": [ { "code": "{\n \"expire_at\": \"2016-12-30\"\n}", "language": "json", "name": "Dados de Entrada" }, { "code": "{\n \"code\": 200 // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n}", "language": "json", "name": "Dados de Saída" }, { "code": "{\n \"id\": \"/ChargeBilletUpdate\",\n \"type\": \"object\",\n \"properties\": {\n \"expire_at\": {\n \"type\": \"string\",\n \"pattern\": \"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\"\n }\n },\n \"required\": [\n \"expire_at\"\n ]\n}", "language": "json", "name": "Schema" } ] } [/block] Esse JSON realiza a alteração da data de vencimento de um boleto no Playground, alterando o vencimento do referido boleto para 30/12/2016. <div class="distancia_top"><a name="charge_id_cancel"><span class="put">PUT</span></a><strong class="text-endpoint">/charge/:id/cancel</strong></div> <hr> Através deste *endpoint* é possível cancelar uma transação criada. Somente transações com status <code>new</code> (novo) ou <code>waiting</code> (aguardando) podem ser canceladas. A partir do momento que uma transação é cancelada, existe apenas uma condição para que esse status seja alterado novamente: se o cliente imprimir o boleto antes do integrador cancelar a transação, ele poderá realizar o pagamento normalmente em uma agência bancária. Neste caso, o integrador e o pagador recebem a confirmação do pagamento como já acontece normalmente e o status da cobrança é alterado de <code>canceled</code> (cancelado) para <code>paid</code> (pago). Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>PUT /charge/:id/cancel</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/eNdGSCnkQP6iaRqbMQ5h_748939b1334449ba8a63a2f2dd4bf3c3.png", "748939b1334449ba8a63a2f2dd4bf3c3.png", "1432", "120", "#f58822", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para cancelar uma transação criada em Playground. Além disso, é possível observar a saída prevista disponível para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada: [block:code] { "codes": [ { "code": "Parâmetro de entrada: informe a \"charge_id\" da transação desejada", "language": "text", "name": "Dados de Entrada" }, { "code": "{\n \"code\": 200 // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n}", "language": "json", "name": "Dados de Saída" } ] } [/block] Esse JSON realiza o cancelamento de uma determinada transação criada no Playground. <div class="distancia_top"><a name="charge_id_pay"><span class="post">POST</span></a><strong class="text-endpoint">/charge/:id/pay</strong></div> <hr> Permite associar um método de pagamento à uma transação já criada. Após gerar uma transação através do endpoint <code>POST /charge</code>, esta fica classificada com o status de <code>new</code> (novo), ou seja, uma nova transação foi gerada, porém, nenhum método de pagamento foi atribuído a ela. Para definir uma forma de pagamento para a transação criada, o integrador pode escolher entre <code>banking_billet</code> ou <code>credit_card</code> (boleto bancário e cartão de crédito, respectivamente). - *Boleto Bancário*: a transação passa por um ciclo de alteração de status, sendo criada inicialmente com o status de <code>new</code> (novo) e, ao definir a forma de pagamento, o status passará a ser <code>waiting</code> (aguardando). Isso significa que o boleto foi gerado com sucesso, mas ainda não foi pago. Ao escolher boleto, a resposta do consumo já terá a linha digitável, código de barras e link para acesso ao boleto; - *Cartão de Crédito*: a principal diferença para o boleto está relacionada à necessidade de utilização de um código denominado “payment_token”. No Playground, você pode gerar seu token clicando no botão *“Gerar payment token”* e colá-lo dentro do atributo <code>payment_token</code>. Já no ambiente de produção, a obtenção do "payment_token" se dá pelo consumo de um código Javascript disponível em sua conta. Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/pay</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/acgRGmadTzyqJ0tb7EP4_2365183b119b4572aa1a7590263a48ec.png", "2365183b119b4572aa1a7590263a48ec.png", "1436", "434", "#369db0", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para associar um método de pagamento à uma transação já criada em Playground - o integrador pode escolher entre <code>banking_billet</code> ou <code>credit_card</code>. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada: [block:code] { "codes": [ { "code": "{\n \"payment\": {\n \"credit_card\": {\n \"customer\": {\n \"name\": \"Gorbadoc Oldbuck\",\n \"cpf\": \"94271564656\",\n \"email\": \"email_do_cliente@servidor.com.br\",\n \"birth\": \"1990-08-29\",\n \"phone_number\": \"5144916523\"\n },\n \"installments\": 1,\n \"payment_token\": \"\",\n \"billing_address\": {\n \"street\": \"Avenida Juscelino Kubitschek\",\n \"number\": \"909\",\n \"neighborhood\": \"Bauxita\",\n \"zipcode\": \"35400000\",\n \"city\": \"Ouro Preto\",\n \"complement\": \"\",\n \"state\": \"MG\"\n }\n }\n }\n}", "language": "json", "name": "Dados de Entrada (cartão)" }, { "code": "{\n \"payment\": {\n \"banking_billet\": {\n \"customer\": {\n \"name\": \"Gorbadoc Oldbuck\",\n \"cpf\": \"94271564656\",\n \"email\": \"email_do_cliente@servidor.com.br\",\n \"phone_number\": \"5144916523\",\n \"address\": {\n \"street\": \"Avenida Juscelino Kubitschek\",\n \"number\": \"909\",\n \"neighborhood\": \"Bauxita\",\n \"zipcode\": \"35400000\",\n \"city\": \"Ouro Preto\",\n \"complement\": \"\",\n \"state\": \"MG\"\n }\n },\n \"expire_at\": \"2016-12-30\",\n \"configurations\": {\n \"fine\": 200,\n \"interest\": 33\n },\n \"message\": \"Este é um espaço de até 80 caracteres para informar algo a seu cliente\"\n }\n }\n}", "language": "json", "name": "Dados de Entrada (boleto)" }, { "code": "{\n \"code\": 200, // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n \"data\": {\n \"installments\": 1, // número de parcelas em que o pagamento deve ser dividido\n \"installment_value\": 8900, // valor da parcela. Por exemplo: 8900 (equivale a R$ 89,00)\n \"charge_id\": numero_charge_id, // número da ID referente à transação gerada\n \"status\": \"waiting\", // forma de pagamento selecionada, aguardando a confirmação do pagamento (\"waiting\" equivale a \"aguardando\")\n \"total\": 8900, // valor, em centavos. Por exemplo: 8900 (equivale a R$ 89,00)\n \"payment\": \"credit_card\" // forma de pagamento associada à esta transação (\"credit_card\" equivale a \"cartão de crédito\")\n }\n}", "language": "json", "name": "Dados de Saída (cartão)" }, { "code": "{\n \"code\": 200, // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n \"data\": {\n \"barcode\": \"codigo_barras_do_boleto\", // código de barras do boleto\n \"link\": \"link_para_acesso_ao_boleto\", // link do boleto gerado\n \"expire_at\": \"2016-12-30\", // data de vencimento do boleto no seguinte formato: 2016-12-30 (ou seja, equivale a 30/12/2016)\n \"charge_id\": numero_charge_id, // número da ID referente à transação gerada\n \"status\": \"waiting\", // forma de pagamento selecionada, aguardando a confirmação do pagamento (\"waiting\" equivale a \"aguardando\")\n \"total\": 8900, // valor, em centavos. Por exemplo: 8900 (equivale a R$ 89,00)\n \"payment\": \"banking_billet\" // forma de pagamento associada à esta transação (\"banking_billet\" equivale a \"boleto bancário\")\n }\n}", "language": "json", "name": "Dados de Saída (boleto)" }, { "code": "{\n \"type\": \"object\",\n \"id\": \"/Pay\",\n \"properties\": {\n \"payment\": {\n \"type\": \"object\",\n \"maxProperties\": 1,\n \"minProperties\": 1,\n \"properties\": {\n \"banking_billet\": {\n \"type\": \"object\",\n \"id\": \"/Billet\",\n \"properties\": {\n \"customer\": {\n \"type\": \"object\",\n \"id\": \"/BasicCustomer\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255,\n \"pattern\": \"^[ ]*(.+[ ]+)+.+[ ]*$\"\n },\n \"cpf\": {\n \"type\": \"string\",\n \"minLength\": 11,\n \"maxLength\": 11\n },\n \"email\": {\n \"type\": \"string\",\n \"maxLength\": 255,\n \"pattern\": \"^[A-Za-z0-9_\\\\-]+(?:[.][A-Za-z0-9_\\\\-]+)*@[A-Za-z0-9_]+(?:[-.][A-Za-z0-9_]+)*\\\\.[A-Za-z0-9_]+$\"\n },\n \"phone_number\": {\n \"type\": \"string\",\n \"pattern\": \"^[1-9]{2}9?[0-9]{8}$\"\n },\n \"birth\": {\n \"type\": \"string\",\n \"pattern\": \"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\"\n },\n \"address\": {\n \"type\": \"object\",\n \"id\": \"/Address\",\n \"properties\": {\n \"street\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200\n },\n \"number\": {\n \"type\": [\n \"string\",\n \"integer\"\n ],\n \"minLength\": 1,\n \"maxLength\": 55\n },\n \"neighborhood\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255\n },\n \"zipcode\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9]{8}$\"\n },\n \"city\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255\n },\n \"complement\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"minLength\": 0,\n \"maxLength\": 45\n },\n \"state\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:A[CLPM]|BA|CE|DF|ES|GO|M[ATSG]|P[RBAEI]|R[JNSOR]|S[CEP]|TO)$\"\n }\n },\n \"required\": [\n \"street\",\n \"number\",\n \"neighborhood\",\n \"zipcode\",\n \"city\",\n \"state\"\n ]\n },\n \"juridical_person\": {\n \"type\": \"object\",\n \"id\": \"/JuridicalPerson\",\n \"properties\": {\n \"corporate_name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255,\n \"pattern\": \"^[ ]*(.+[ ]+)+.+[ ]*$\"\n },\n \"cnpj\": {\n \"type\": \"string\",\n \"minLength\": 14,\n \"maxLength\": 14\n }\n },\n \"required\": [\n \"corporate_name\",\n \"cnpj\"\n ]\n }\n },\n \"required\": [\n \"phone_number\"\n ]\n },\n \"expire_at\": {\n \"type\": \"string\",\n \"pattern\": \"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\"\n },\n \"discount\": {\n \"type\": \"object\",\n \"id\": \"/Discount\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"percentage\",\n \"currency\"\n ]\n },\n \"value\": {\n \"type\": \"integer\",\n \"minimum\": 1\n }\n },\n \"required\": [\n \"type\",\n \"value\"\n ]\n },\n \"instructions\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 4,\n \"items\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 90\n }\n },\n \"configurations\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"fine\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 1000\n },\n \"interest\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 330\n }\n }\n },\n \"message\": {\n \"type\": \"string\",\n \"minLength\": 3,\n \"maxLength\": 80\n }\n },\n \"required\": [\n \"customer\",\n \"expire_at\"\n ]\n },\n \"credit_card\": {\n \"type\": \"object\",\n \"id\": \"/CreditCard\",\n \"properties\": {\n \"customer\": {\n \"type\": \"object\",\n \"id\": \"/FullCustomer\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255,\n \"pattern\": \"^[ ]*(.+[ ]+)+.+[ ]*$\"\n },\n \"cpf\": {\n \"type\": \"string\",\n \"minLength\": 11,\n \"maxLength\": 11\n },\n \"email\": {\n \"type\": \"string\",\n \"maxLength\": 255,\n \"pattern\": \"^[A-Za-z0-9_\\\\-]+(?:[.][A-Za-z0-9_\\\\-]+)*@[A-Za-z0-9_]+(?:[-.][A-Za-z0-9_]+)*\\\\.[A-Za-z0-9_]+$\"\n },\n \"phone_number\": {\n \"type\": \"string\",\n \"pattern\": \"^[1-9]{2}9?[0-9]{8}$\"\n },\n \"birth\": {\n \"type\": \"string\",\n \"pattern\": \"^[12][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$\"\n },\n \"address\": {\n \"type\": \"object\",\n \"id\": \"/Address\",\n \"properties\": {\n \"street\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200\n },\n \"number\": {\n \"type\": [\n \"string\",\n \"integer\"\n ],\n \"minLength\": 1,\n \"maxLength\": 55\n },\n \"neighborhood\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255\n },\n \"zipcode\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9]{8}$\"\n },\n \"city\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255\n },\n \"complement\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"minLength\": 0,\n \"maxLength\": 45\n },\n \"state\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:A[CLPM]|BA|CE|DF|ES|GO|M[ATSG]|P[RBAEI]|R[JNSOR]|S[CEP]|TO)$\"\n }\n },\n \"required\": [\n \"street\",\n \"number\",\n \"neighborhood\",\n \"zipcode\",\n \"city\",\n \"state\"\n ]\n },\n \"juridical_person\": {\n \"type\": \"object\",\n \"id\": \"/JuridicalPerson\",\n \"properties\": {\n \"corporate_name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255,\n \"pattern\": \"^[ ]*(.+[ ]+)+.+[ ]*$\"\n },\n \"cnpj\": {\n \"type\": \"string\",\n \"minLength\": 14,\n \"maxLength\": 14\n }\n },\n \"required\": [\n \"corporate_name\",\n \"cnpj\"\n ]\n }\n },\n \"required\": [\n \"email\",\n \"phone_number\",\n \"birth\"\n ]\n },\n \"installments\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 12,\n \"exclusiveMinimum\": false,\n \"exclusiveMaximum\": false\n },\n \"discount\": {\n \"type\": \"object\",\n \"id\": \"/Discount\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"percentage\",\n \"currency\"\n ]\n },\n \"value\": {\n \"type\": \"integer\",\n \"minimum\": 1\n }\n },\n \"required\": [\n \"type\",\n \"value\"\n ]\n },\n \"billing_address\": {\n \"type\": \"object\",\n \"id\": \"/Address\",\n \"properties\": {\n \"street\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200\n },\n \"number\": {\n \"type\": [\n \"string\",\n \"integer\"\n ],\n \"minLength\": 1,\n \"maxLength\": 55\n },\n \"neighborhood\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255\n },\n \"zipcode\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9]{8}$\"\n },\n \"city\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 255\n },\n \"complement\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"minLength\": 0,\n \"maxLength\": 45\n },\n \"state\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:A[CLPM]|BA|CE|DF|ES|GO|M[ATSG]|P[RBAEI]|R[JNSOR]|S[CEP]|TO)$\"\n }\n },\n \"required\": [\n \"street\",\n \"number\",\n \"neighborhood\",\n \"zipcode\",\n \"city\",\n \"state\"\n ]\n },\n \"payment_token\": {\n \"type\": \"string\",\n \"pattern\": \"^[a-fA-F0-9]{40}$\"\n },\n \"message\": {\n \"type\": \"string\",\n \"minLength\": 3,\n \"maxLength\": 80\n }\n },\n \"required\": [\n \"customer\",\n \"billing_address\",\n \"payment_token\"\n ]\n }\n }\n }\n },\n \"required\": [\n \"payment\"\n ]\n}", "language": "json", "name": "Schema" } ] } [/block] Esse JSON associa uma determinada transação a uma forma de pagamento, podendo ser boleto bancário ou cartão de crédito. No caso da aba <em>"Dados de Entrada (boleto)"</em>, está sendo gerado um boleto com vencimento para 30/12/2016, estamos usando uma mensagem de até 80 caracteres para informar algo ao cliente, e se o boleto for pago após o vencimento, será cobrado 2% de multa e 0,033% de juros por dia. No caso da aba <em>"Dados de Entrada (cartão)"</em>, o <code>payment_token</code> é o token de pagamento necessário quando o pagamento é via cartão. No Playground, ele é obtido apenas clicando no botão <em>"Gerar payment token"</em> e colando dentro do atributo <code>payment_token</code>. Caso estivesse em ambiente de produção, seria obtido através de código Javascript disponível para cada conta Gerencianet - para boleto o "payment_token" não é necessário. <div class="distancia_top"><a name="charge_id_billet_resend"><span class="post">POST</span></a><strong class="text-endpoint">/charge/:id/billet/resend</strong></div> <hr> Permite o reenvio do boleto bancário para o e-mail desejado. Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/billet/resend</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/ncNp3ENVRxyG6yY83nbu_80cf46babc1c431faf3930dd25e0aa04.png", "80cf46babc1c431faf3930dd25e0aa04.png", "1420", "397", "#518857", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para reenviar por email um boleto bancário criado em Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada: [block:code] { "codes": [ { "code": "{\n \"email\": \"email_do_cliente@servidor.com.br\"\n}", "language": "json", "name": "Dados de Entrada" }, { "code": "{\n \"code\": 200 // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n}", "language": "json", "name": "Dados de Saída" }, { "code": "{\n \"id\": \"/ChargeBilletResend\",\n \"type\": \"object\",\n \"properties\": {\n \"email\": {\n \"type\": \"string\",\n \"maxLength\": 255,\n \"pattern\": \"^[A-Za-z0-9_\\\\-]+(?:[.][A-Za-z0-9_\\\\-]+)*@[A-Za-z0-9_]+(?:[-.][A-Za-z0-9_]+)*\\\\.[A-Za-z0-9_]+$\"\n }\n },\n \"required\": [\n \"email\"\n ]\n}", "language": "json", "name": "Schema" } ] } [/block] Esse JSON define que o endereço "email_do_cliente@servidor.com.br" receberá uma segunda via de um determinado boleto bancário que foi criado em Playground. <div class="distancia_top"><a name="charge_id_history"><span class="post">POST</span></a><strong class="text-endpoint">/charge/:id/history</strong></div> <hr> O histórico de uma transação representa todas as ações que ocorreram com esta transação até o presente momento. É possível adicionar mensagens personalizadas a este histórico utilizando o endpoint <code>/charge/:id/history</code>. As mensagens personalizadas não influenciam na transação em si, apenas em seu histórico. Para tal, você deve informar a <code>charge_id</code> da transação desejada. Essa descrição deve possuir no mínimo um caractere e no máximo 255 caracteres. Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/history</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/8b68BsT9RIS9eIayarP7_7bbfcb09fab74766961ed16eec369bb0.png", "7bbfcb09fab74766961ed16eec369bb0.png", "1417", "398", "#4e8661", "" ] } ] } [/block] A seguir, um JSON simples que pode ser utilizado para acrescentar uma descrição a uma determinada transação no Playground. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada: [block:code] { "codes": [ { "code": "{\n \"description\": \"Camisa Polo tamanho G cor azul\"\n}", "language": "json", "name": "Dados de Entrada" }, { "code": "{\n \"code\": 200 // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n}", "language": "json", "name": "Dados de Saída" }, { "code": "{\n \"type\": \"object\",\n \"id\": \"/ChargeHistory\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"maxLength\": \"255\",\n \"minLength\": \"1\"\n }\n },\n \"required\": [\n \"description\"\n ]\n}", "language": "json", "name": "Schema" } ] } [/block] Esse JSON acrescenta a descrição "Camisa Polo tamanho G cor azul" em uma determinada transação no Playground. <div class="distancia_top"><a name="charge_id_link"><span class="post">POST</span></a><strong class="text-endpoint">/charge/:id/link</strong></div> <hr> Permite retornar um link para uma tela de pagamento da Gerencianet. Em outras palavras, o integrador gera uma cobrança e, em seguida, ao invés de definir o pagamento via boleto bancário ou cartão de crédito, o integrador pode solicitar um link escolhendo inclusive se a tela de pagamento deve aceitar boleto, cartão ou ambos. Além disso, o integrador define um vencimento para a tela de pagamento, ou seja, após a data definida pelo integrador, o link da tela de pagamento não terá mais validade. O integrador pode definir o desconto para boleto ou cartão, e pode ainda informar se deseja coletar ou não o endereço do cliente. Essa tela de pagamento não é uma definição de pagamento como boleto ou cartão, mas sim um intermediário. É útil quando o integrador não deseja implementar sua própria tela de pagamento, por exemplo. Na imagem a seguir, é possível observar a tela de nosso ambiente de testes no qual constam os recursos atrelados ao método <code>POST /charge/:id/link</code> que estão disponíveis para utilização: [block:image] { "images": [ { "image": [ "https://files.readme.io/7dabfd2-charge-link.png", "charge-link.png", 1434, 404, "#eff0ee" ], "caption": "" } ] } [/block] A seguir, um JSON simples que pode ser utilizado para retornar um link para uma tela de pagamento da Gerencianet. Para utilização, você deve previamente criar uma transação e, no campo <code>id</code>, fornecer o <code>charge_id</code> da transação que foi criada anteriormente. Assim, será retornado um link que permitirá ao cliente ir para uma tela de pagamento previamente configurada pelo integrador. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada <code>charge_id</code> da transação desejada e criada previamente: [block:code] { "codes": [ { "code": "{\n \"message\": \"Escreva aqui, se quiser, uma mensagem ao seu cliente, limite de 80 caracteres\",\n \"expire_at\": \"2016-12-20\",\n \"request_delivery_address\": false,\n \"payment_method\": \"all\"\n}", "language": "json", "name": "Dados de Entrada" }, { "code": "{\n \"code\": 200, // retorno HTTP \"200\" informando que o pedido foi bem sucedido\n \"data\": {\n \"charge_id\": numero_charge_id, // número da ID referente à transação gerada\n \"status\": \"new\", // cobrança gerada, aguardando definição da forma de pagamento\n \"total\": 6990, // valor total da transação (em centavos, sendo 6990 = R$69,90)\n \"custom_id\": null, // identificador próprio opcional\n \"payment_url\": \"https://pagamento.gerencianet.com.br/9726f54f-19c5-4265-9628-f69d32359348\", // link\n \"payment_method\": \"all\", // formas de pagamento permitidas (all = cartão e boleto)\n \"created_at\": \"2016-10-03 11:46:50\" // data e hora da criação da transação\n }\n}", "language": "json", "name": "Dados de Saída" }, { "code": "{\n \"id\": \"/ChargeLink\",\n \"type\": \"object\",\n \"properties\": {\n \"billet_discount\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 99999999\n },\n \"card_discount\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 99999999\n },\n \"message\": {\n \"type\": \"string\",\n \"minLength\": 3,\n \"maxLength\": 80\n },\n \"expire_at\": {\n \"type\": \"string\",\n \"format\": \"date\"\n },\n \"request_delivery_address\": {\n \"type\": \"boolean\"\n },\n \"payment_method\": {\n \"enum\": [\n \"banking_billet\",\n \"credit_card\",\n \"all\"\n ]\n }\n },\n \"required\": [\n \"request_delivery_address\",\n \"expire_at\",\n \"payment_method\"\n ]\n}", "language": "json", "name": "Schema" } ] } [/block] Esse JSON retornará um link que dará acesso a uma tela de pagamento. Note que esse link da tela de pagamento terá validade até 20/12/2016, não estamos solicitando o endereço de entrega de nosso cliente e a forma de pagamento permitida é boleto e cartão (que também poderia ter utilizado <code>banking_billet</code> para permitir só pagamento via boleto ou <code>credit_card</code> para somente cartão). Existem outras possibilidades, como por exemplo, concessão de desconto de acordo com a forma de pagamento, bastaria usar os atributos <code>billet_discount</code> - veja na aba "Schema" todos os atributos possíveis de serem utilizados.