{"__v":17,"_id":"5760306ac0bca70e00afc06b","category":{"__v":0,"_id":"57602fe5b82256240055c657","project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-06-14T16:25:09.214Z","from_sync":false,"order":13,"slug":"opções-avançadas","title":"Outros Recursos da API"},"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-06-14T16:27:22.934Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"Uma transação pode ser cancelada apenas se ela possuir o status <code>new</code>, <code>waiting</code> ou <code>unpaid</code>.\n\nA 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\")*.\n\nPara cancelar uma transação (por exemplo, cancelar um boleto), você deve enviar uma requisição <code>PUT</code> para a rota <code>/charge/:id/cancel</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada.\n\nNo Playground (ambiente de desenvolvimento), o processo de cancelamento de transações equivale ao *endpoint* <code>PUT /charge/:id/cancel</code>.\n\nO exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<?php\\n \\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\\n \\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n \\n$clientId = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n$options = [\\n  'client_id' => $clientId,\\n  'client_secret' => $clientSecret,\\n  'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\\n];\\n \\n// $charge_id refere-se ao ID da transação gerada anteriormente\\n$params = [\\n  'id' => $charge_id\\n];\\n \\ntry {\\n    $api = new Gerencianet($options);\\n    $charge = $api->cancelCharge($params, []);\\n \\n    print_r($charge);\\n} catch (GerencianetException $e) {\\n    print_r($e->code);\\n    print_r($e->error);\\n    print_r($e->errorDescription);\\n} catch (Exception $e) {\\n    print_r($e->getMessage());\\n}\",\n      \"language\": \"php\",\n      \"name\": \"PHP\"\n    },\n    {\n      \"code\": \"\\n'use strict';\\n \\nvar Gerencianet = require('gn-api-sdk-node');\\n \\nvar clientId = 'your_client_id';\\nvar clientSecret = 'your_client_secret';\\n \\nvar options = {\\n  client_id: clientId,\\n  client_secret: clientSecret,\\n  sandbox: true\\n}\\n \\nvar params = {\\n  id: 1000\\n}\\n \\nvar gerencianet = new Gerencianet(options);\\n \\ngerencianet\\n  .cancelCharge(params)\\n  .then(console.log)\\n  .catch(console.log)\\n  .done();\\nP\",\n      \"language\": \"javascript\",\n      \"name\": \"NodeJS\"\n    },\n    {\n      \"code\": \"\\nrequire \\\"gerencianet\\\"\\n \\noptions = {\\n  client_id: \\\"client_id\\\",\\n  client_secret: \\\"client_secret\\\",\\n  sandbox: true\\n}\\n \\nparams = {\\n  id: 1000\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.cancel_charge(params: params)\\nP\",\n      \"language\": \"ruby\",\n      \"name\": \"Ruby\"\n    },\n    {\n      \"code\": \"\\nfrom gerencianet import Gerencianet\\n \\noptions = {\\n    'client_id': 'client_id',\\n    'client_secret': 'client_secret',\\n    'sandbox': True\\n}\\n \\ngn = Gerencianet(options)\\n \\nparams = {\\n\\t'id': 1000\\n}\\n \\ngn.cancel_charge(params=params)\\nP\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"\\ndynamic endpoints = new Endpoints(\\\"client_id\\\", \\\"client_secret\\\", true);\\n \\nvar params = new {\\n    id = 1000\\n};\\n \\nvar response = endpoints.CancelCharge(params);\",\n      \"language\": \"asp\",\n      \"name\": \".NET\"\n    },\n    {\n      \"code\": \"// Para detalhes, acesse o documento específico em nosso Github:\\n// https://github.com/gerencianet/gn-api-sdk-java\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]","excerpt":"Você está em: *\"Outros Recursos da API > Cancelar Transações\"*","slug":"cancelar-transacoes","type":"basic","title":"Cancelar Transações"}

Cancelar Transações

Você está em: *"Outros Recursos da API > Cancelar Transações"*

Uma transação pode ser cancelada apenas se ela possuir o status <code>new</code>, <code>waiting</code> ou <code>unpaid</code>. 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")*. Para cancelar uma transação (por exemplo, cancelar um boleto), você deve enviar uma requisição <code>PUT</code> para a rota <code>/charge/:id/cancel</code>, onde <code>:id</code> é o <code>charge_id</code> da transação desejada. No Playground (ambiente de desenvolvimento), o processo de cancelamento de transações equivale ao *endpoint* <code>PUT /charge/:id/cancel</code>. O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis: [block:code] { "codes": [ { "code": "<?php\n \nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado ao Composer\n \nuse Gerencianet\\Exception\\GerencianetException;\nuse Gerencianet\\Gerencianet;\n \n$clientId = 'your_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\n$clientSecret = 'your_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\n \n$options = [\n 'client_id' => $clientId,\n 'client_secret' => $clientSecret,\n 'sandbox' => true // altere conforme o ambiente (true = desenvolvimento e false = producao)\n];\n \n// $charge_id refere-se ao ID da transação gerada anteriormente\n$params = [\n 'id' => $charge_id\n];\n \ntry {\n $api = new Gerencianet($options);\n $charge = $api->cancelCharge($params, []);\n \n print_r($charge);\n} catch (GerencianetException $e) {\n print_r($e->code);\n print_r($e->error);\n print_r($e->errorDescription);\n} catch (Exception $e) {\n print_r($e->getMessage());\n}", "language": "php", "name": "PHP" }, { "code": "\n'use strict';\n \nvar Gerencianet = require('gn-api-sdk-node');\n \nvar clientId = 'your_client_id';\nvar clientSecret = 'your_client_secret';\n \nvar options = {\n client_id: clientId,\n client_secret: clientSecret,\n sandbox: true\n}\n \nvar params = {\n id: 1000\n}\n \nvar gerencianet = new Gerencianet(options);\n \ngerencianet\n .cancelCharge(params)\n .then(console.log)\n .catch(console.log)\n .done();\nP", "language": "javascript", "name": "NodeJS" }, { "code": "\nrequire \"gerencianet\"\n \noptions = {\n client_id: \"client_id\",\n client_secret: \"client_secret\",\n sandbox: true\n}\n \nparams = {\n id: 1000\n}\n \ngerencianet = Gerencianet.new(options)\ngerencianet.cancel_charge(params: params)\nP", "language": "ruby", "name": "Ruby" }, { "code": "\nfrom gerencianet import Gerencianet\n \noptions = {\n 'client_id': 'client_id',\n 'client_secret': 'client_secret',\n 'sandbox': True\n}\n \ngn = Gerencianet(options)\n \nparams = {\n\t'id': 1000\n}\n \ngn.cancel_charge(params=params)\nP", "language": "python" }, { "code": "\ndynamic endpoints = new Endpoints(\"client_id\", \"client_secret\", true);\n \nvar params = new {\n id = 1000\n};\n \nvar response = endpoints.CancelCharge(params);", "language": "asp", "name": ".NET" }, { "code": "// Para detalhes, acesse o documento específico em nosso Github:\n// https://github.com/gerencianet/gn-api-sdk-java", "language": "java" } ] } [/block]