{"_id":"59f79e3c584eb200345cecc7","__v":0,"initVersion":null,"project":"59f79e3c584eb200345ceafc","user":{"_id":"54e4044e8ef7552300409dcb","username":"","name":"Sankaet Pathak"},"createdAt":"2015-05-28T23:18:09.956Z","changelog":[],"body":"We regularly run webhook simulations in sandbox, but we constantly receive queries regarding how developers can simulate ACH return scenarios in sandbox as well. So here are different scenarios that you can try.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"#1 Insufficient Funds Return\"\n}\n[/block]\nTo simulate insufficient funds return do the following\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Amount\",\n    \"h-1\": \"Account #\",\n    \"h-2\": \"Routing #\",\n    \"h-3\": \"\",\n    \"0-0\": \"222.22\",\n    \"0-1\": \"Any\",\n    \"0-2\": \"Any\",\n    \"0-3\": \"\",\n    \"h-4\": \"Sample responses\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\nBy specifying the amount as $222.22, you will be able to simulate an insufficient funds return. This is how the JSON payload on the webhook will look:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  'status':5,\\n  'id':100,\\n  'note':'R01 -- Insufficient Funds'\\n}\",\n      \"language\": \"json\",\n      \"name\": \"\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"#2 Unable to locate/No Account Found\"\n}\n[/block]\nTo simulate insufficient funds return, do the following.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Amount\",\n    \"h-1\": \"Account #\",\n    \"h-2\": \"Routing #\",\n    \"0-0\": \"Any\",\n    \"0-1\": \"111222333444555\",\n    \"0-2\": \"064000020\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\nBy specifying the above account and routing number, you will be able to simulate the return. This is how the JSON payload on the webhook would look:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  'status':5,\\n  'id':100,\\n  'note':'R03 -- Unable to locate/No Account Found'\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Sample Payload\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"#3 Customer Claims Unauthorized\"\n}\n[/block]\nTo simulate Customer Claims Unauthorized chargeback do the following.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Amount\",\n    \"h-1\": \"Account #\",\n    \"h-2\": \"Routing #\",\n    \"0-0\": \"Any\",\n    \"0-1\": \"111222333444666\",\n    \"0-2\": \"064000020\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\nBy specifying the above account and routing number, you will be able to simulate the return. This is how the JSON payload on the webhook would look:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  'status':5,\\n  'id':100,\\n  'note':'R10 -- Customer Advises Unauthorized'\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Sample Payload\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"ACH returns do not occur in real-time\",\n  \"body\": \"Please remember, unlike credit cards or debit cards, ACH returns do not occur in real-time. Note that these scenarios can be tested only with webhooks, not real-time API calls. [RequestBin](http://requestb.in) is an excellent tool to help you test out these scenarios.\"\n}\n[/block]","slug":"testing-out-ach-return-scenarios-for-webhooks","title":"Testing out ACH return scenarios for Webhooks"}

Testing out ACH return scenarios for Webhooks


We regularly run webhook simulations in sandbox, but we constantly receive queries regarding how developers can simulate ACH return scenarios in sandbox as well. So here are different scenarios that you can try. [block:api-header] { "type": "basic", "title": "#1 Insufficient Funds Return" } [/block] To simulate insufficient funds return do the following [block:parameters] { "data": { "h-0": "Amount", "h-1": "Account #", "h-2": "Routing #", "h-3": "", "0-0": "222.22", "0-1": "Any", "0-2": "Any", "0-3": "", "h-4": "Sample responses" }, "cols": 3, "rows": 1 } [/block] By specifying the amount as $222.22, you will be able to simulate an insufficient funds return. This is how the JSON payload on the webhook will look: [block:code] { "codes": [ { "code": "{\n 'status':5,\n 'id':100,\n 'note':'R01 -- Insufficient Funds'\n}", "language": "json", "name": "" } ] } [/block] [block:api-header] { "type": "basic", "title": "#2 Unable to locate/No Account Found" } [/block] To simulate insufficient funds return, do the following. [block:parameters] { "data": { "h-0": "Amount", "h-1": "Account #", "h-2": "Routing #", "0-0": "Any", "0-1": "111222333444555", "0-2": "064000020" }, "cols": 3, "rows": 1 } [/block] By specifying the above account and routing number, you will be able to simulate the return. This is how the JSON payload on the webhook would look: [block:code] { "codes": [ { "code": "{\n 'status':5,\n 'id':100,\n 'note':'R03 -- Unable to locate/No Account Found'\n}", "language": "json", "name": "Sample Payload" } ] } [/block] [block:api-header] { "type": "basic", "title": "#3 Customer Claims Unauthorized" } [/block] To simulate Customer Claims Unauthorized chargeback do the following. [block:parameters] { "data": { "h-0": "Amount", "h-1": "Account #", "h-2": "Routing #", "0-0": "Any", "0-1": "111222333444666", "0-2": "064000020" }, "cols": 3, "rows": 1 } [/block] By specifying the above account and routing number, you will be able to simulate the return. This is how the JSON payload on the webhook would look: [block:code] { "codes": [ { "code": "{\n 'status':5,\n 'id':100,\n 'note':'R10 -- Customer Advises Unauthorized'\n}", "language": "json", "name": "Sample Payload" } ] } [/block] [block:callout] { "type": "danger", "title": "ACH returns do not occur in real-time", "body": "Please remember, unlike credit cards or debit cards, ACH returns do not occur in real-time. Note that these scenarios can be tested only with webhooks, not real-time API calls. [RequestBin](http://requestb.in) is an excellent tool to help you test out these scenarios." } [/block]