Simulate inbound check return
relevant webhooks for this endpoint be sure you have registered docid\ bn5xtgkjogbe ctwomcbs for this webhook core transaction completed docid\ cwubvas0bdifokyxu5lhq api reference simulates the return of a check deposited into a cross river account that the issuing bank does not honor in cross river this is referred to as an inbound return item because the federal reserve sends the check ( in ) to cross river to have the deposited funds returned to the check payor's account this api can only be run in the cross river sandbox docid kaqyvqvnuagqnekfkcuy { "name" "endpoint /checks/v1/payments/simulated inbound returns", "method" "post", "url" "https //sandbox crbcos com/checks/v1/payments/simulated inbound returns", "description" "", "tab" "examples", "examples" { "languages" \[ { "id" "flw3i6yalyach r3p6ugw", "language" "curl", "code" "curl location 'https //sandbox crbcos com/checks/v1/payments/simulated inbound returns' \\\\\n data '{\n \\"originalpaymentid\\" \\"3d70fc63 672e 4c3b 9e66 b48700b5db14\\",\n \\"returncode\\" \\"a\\"\n}'", "customlabel" "" }, { "id" "cygejvwztskxfwn zcmww", "language" "nodejs", "code" "var https = require('follow redirects') https;\nvar fs = require('fs');\n\nvar options = {\n 'method' 'post',\n 'hostname' 'sandbox crbcos com',\n 'path' '/checks/v1/payments/simulated inbound returns',\n 'headers' {\n },\n 'maxredirects' 20\n};\n\nvar req = https request(options, function (res) {\n var chunks = \[];\n\n res on(\\"data\\", function (chunk) {\n chunks push(chunk);\n });\n\n res on(\\"end\\", function (chunk) {\n var body = buffer concat(chunks);\n console log(body tostring());\n });\n\n res on(\\"error\\", function (error) {\n console error(error);\n });\n});\n\nvar postdata = \\"{\\\r\\\n \\\\\\"originalpaymentid\\\\\\" \\\\\\"3d70fc63 672e 4c3b 9e66 b48700b5db14\\\\\\",\\\r\\\n \\\\\\"returncode\\\\\\" \\\\\\"a\\\\\\"\\\r\\\n}\\";\n\nreq write(postdata);\n\nreq end();", "customlabel" "" }, { "id" "xayu cguxjwdlnlkfafte", "language" "python", "code" "import requests\n\nurl = \\"https //sandbox crbcos com/checks/v1/payments/simulated inbound returns\\"\n\npayload = \\"{\\\r\\\n \\\\\\"originalpaymentid\\\\\\" \\\\\\"3d70fc63 672e 4c3b 9e66 b48700b5db14\\\\\\",\\\r\\\n \\\\\\"returncode\\\\\\" \\\\\\"a\\\\\\"\\\r\\\n}\\"\nheaders = {}\n\nresponse = requests request(\\"post\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "customlabel" "" }, { "id" "xf qw7wmg slyqn8g9gud", "language" "ruby", "code" "require \\"uri\\"\nrequire \\"net/http\"\n\nurl = uri(\\"https //sandbox crbcos com/checks/v1/payments/simulated inbound returns\\")\n\nhttps = net http new(url host, url port)\nhttps use ssl = true\n\nrequest = net http post new(url)\nrequest body = \\"{\\\r\\\n \\\\\\"originalpaymentid\\\\\\" \\\\\\"3d70fc63 672e 4c3b 9e66 b48700b5db14\\\\\\",\\\r\\\n \\\\\\"returncode\\\\\\" \\\\\\"a\\\\\\"\\\r\\\n}\\"\n\nresponse = https request(request)\nputs response read body\n", "customlabel" "" }, { "id" "09kqcfa4vewcg6mvic2d2", "language" "go", "code" "package main\n\nimport (\n \\"fmt\\"\n \\"strings\\"\n \\"net/http\"\n \\"io\\"\n)\n\nfunc main() {\n\n url = \\"https //sandbox crbcos com/checks/v1/payments/simulated inbound returns\\"\n method = \\"post\\"\n\n payload = strings newreader(`{`+\\"\n\\"+`\n \\"originalpaymentid\\" \\"3d70fc63 672e 4c3b 9e66 b48700b5db14\\",`+\\"\n\\"+`\n \\"returncode\\" \\"a\\"`+\\"\n\\"+`\n}`)\n\n client = \&http client {\n }\n req, err = http newrequest(method, url, payload)\n\n if err != nil {\n fmt println(err)\n return\n }\n res, err = client do(req)\n if err != nil {\n fmt println(err)\n return\n }\n defer res body close()\n\n body, err = io readall(res body)\n if err != nil {\n fmt println(err)\n return\n }\n fmt println(string(body))\n}", "customlabel" "" } ], "selectedlanguageid" "flw3i6yalyach r3p6ugw" }, "results" { "languages" \[ { "id" "uv43jrbeg 9mgyane5ty4", "language" "200", "code" "{\n \\"id\\" \\"3366874c b887 4532 aec7 b48c006d4d1f\\",\n \\"accountnumber\\" \\"2203250853\\",\n \\"referenceid\\" \\"c200r1684tdq\\",\n \\"paymenttype\\" \\"return\\",\n \\"checktype\\" \\"standard\\",\n \\"direction\\" \\"inbound\\",\n \\"status\\" \\"created\\",\n \\"source\\" \\"api\\",\n \\"posting\\" \\"pending\\",\n \\"postingcode\\" \\"ok\\",\n \\"fedbatchid\\" \\"0cfb50f6 afdd 4033 a1c2 b48c006d4d1f\\",\n \\"fedbatchsequence\\" 0,\n \\"coretransactionid\\" \\"7153b673 bf50 4b9b b097 b48c006d4d1f\\",\n \\"originalpaymentid\\" \\"3d70fc63 672e 4c3b 9e66 b48700b5db14\\",\n \\"customerid\\" \\"861261af 1251 49e8 966f b2ff00d627bd\\",\n \\"payerroutingnumber\\" \\"314074269\\",\n \\"payeraccountnumber\\" \\"28293886\\",\n \\"payeename\\" \\"\\",\n \\"checknumber\\" \\"1237\\",\n \\"bofdroutingnumber\\" \\"021214891\\",\n \\"sequencenumber\\" \\"3918624417\\",\n \\"amount\\" 10000,\n \\"currency\\" \\"usd\\",\n \\"recognizedamount\\" 0,\n \\"iqapassed\\" false,\n \\"returncode\\" \\"a\\",\n \\"hasfrontimage\\" true,\n \\"hasbackimage\\" true,\n \\"isredeposit\\" false,\n \\"policy\\" \\"standard\\",\n \\"schedule\\" \[],\n \\"createdat\\" \\"2026 07 19t02 37 57 2241546 04 00\\",\n \\"wasreturned\\" false,\n \\"purpose\\" \\"testing\\",\n \\"decisionrequired\\" false,\n \\"wasdecisioned\\" false,\n \\"productid\\" \\"83bed086 8182 4151 a1e3 af5b01362783\\",\n \\"partnerid\\" \\"cd9c12f4 7691 424a b38b af5b0134c611\\",\n \\"lastmodifiedat\\" \\"2026 07 19t02 37 57 2241826 04 00\\"\n}", "customlabel" "" }, { "id" "2ajp3w72d5msklvjqkqlj", "language" "400", "code" "{\n \\"errors\\" \[\n {\n \\"code\\" 2012,\n \\"message\\" \\"payment must be status completed or rejected to be returned\\"\n }\n ]\n}" } ], "selectedlanguageid" "uv43jrbeg 9mgyane5ty4" }, "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[], "bodydataparameters" \[ { "name" "originalpaymentid", "kind" "required", "type" "string", "description" "the original payment id, when a check has been returned or redeposited this is the id returned in the response to the deposit check endpoint ", "" "the original payment id, when a check has been returned or redeposited this is the id returned in the response to the deposit check endpoint " }, { "name" "returncode", "kind" "required", "type" "string", "description" "the 1 character code indicating the reason for the check return see the checks request and response codes page for a complete list of values ", "" "the 1 character code indicating the reason for the check return see the checks request and response codes page for a complete list of values " } ], "formdataparameters" \[] }, "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "response" \[ { "name" "id", "kind" "optional", "type" "string", "description" "check payment id" }, { "name" "accountnumber", "kind" "optional", "type" "string", "description" "number of the account the check is drawn on", "children" \[] }, { "name" "referenceid", "kind" "optional", "type" "string", "description" "the reference id of the check payment, indicating the rail type in the first element of the string in this case it is c this is an internal cross river attribute ", "children" \[] }, { "name" "paymenttype", "kind" "optional", "type" "string", "description" "the check paymenttype indicates whether the check has been presented for payment or has been returned for some reason \n\n forward (a check presented for payment, to be sent to the payer bank)\n return (a previous forward item that the payer bank returned)", "children" \[] }, { "name" "checktype", "kind" "optional", "type" "string", "description" "type of check being dealt with there are several check types \n standard\n onus\n treasury\n moneyorder\n fedreservebank\n fedhomeloan\n statelocalgovt\n certified\n unknown", "children" \[] }, { "name" "direction ", "kind" "optional", "type" "string", "description" "check direction \n inbound (a check drawn from a cos account, deposited at another bank)\n outbound (a check deposited into a cos account, drawn from an account at another bank)", "children" \[] }, { "name" "status", "kind" "optional", "type" "string", "description" "status of the check payment there are several possible payment statuses \n created\n pending\n hold\n batched\n processing\n completed\n rejected\n canceled", "children" \[] }, { "name" "source", "kind" "optional", "type" "string", "description" "source of the payment request \n api\n partnerportal\n opsportal\n file\n system\n lockbox", "children" \[] }, { "name" "posting", "kind" "optional", "type" "string", "description" "posting status \n pending\n posted\n failed\n canceled\n authorized\n authorizing", "children" \[] }, { "name" "rejectionreason", "kind" "optional", "type" "string", "description" "rejected because \n imageanalysisfailure\n postingexception\n amountmismatch\n maxitemamountexceeded\n maxdepositamountexceeded\n maxitemsperdayexceeded\n duplicate\n payerroutingnumberinvalid\n payeraccountnumberinvalid\n checknumberinvalid\n accountnotfound\n depositsnotenabled\n invalidaccounttype\n notspecified", "children" \[] }, { "name" "positivepayresult", "kind" "optional", "type" "string", "description" "if positive pay is enabled, the positive pay status of the check \n pending\n authorized\n unauthorized\n disabled", "children" \[] }, { "name" "positivepaymatchid", "kind" "optional", "type" "string", "description" "if positive pay is enabled, id of the positive pay record associated with the payment", "children" \[] }, { "name" "postingcode", "kind" "optional", "type" "string", "description" "code related to the cross river system transaction tied to the payment any value other than “ok” indicates a rejection ", "children" \[] }, { "name" "clientbatchid", "kind" "optional", "type" "string", "description" "id for the batch received from the cross river lockbox vendor", "children" \[] }, { "name" "clientbatchsequence", "kind" "optional", "type" "integer", "description" "sequence number of the payment inside the batch received from the cross river lockbox vendor", "children" \[] }, { "name" "fedbatchid", "kind" "optional", "type" "string", "description" "id of the distribution that the check was included in", "children" \[] }, { "name" "fedbatchsequence", "kind" "optional", "type" "integer", "description" "sequence number of the payment inside the distribution", "children" \[] }, { "name" "coretransactionid", "kind" "optional", "type" "string", "description" "internal cross river unique id for the transaction", "children" \[] }, { "name" "memopostid", "kind" "optional", "type" "string", "description" "unique identifier for the memo post this id is in guid format ", "children" \[] }, { "name" "originalpaymentid", "kind" "optional", "type" "string", "description" "the original payment id, when a check has been returned or redeposited", "children" \[] }, { "name" "customerid", "kind" "optional", "type" "string", "description" "the unique id assigned to a customer when the customer record is created you need this id to take action for a specific customer for example, when opening an account or adding an address to a customer record \n\nthe id is in guid format ", "children" \[] }, { "name" "payerroutingnumber", "kind" "optional", "type" "string", "description" "the payer’s routing number (printed on the check)", "children" \[] }, { "name" "payeraccountnumber", "kind" "optional", "type" "string", "description" "the payer’s account number (printed on the check)", "children" \[] }, { "name" "payeename", "kind" "optional", "type" "string", "description" "name written on the pay to the order of line of the check", "children" \[] }, { "name" "checknumber", "kind" "optional", "type" "string", "description" "the serial number that appears on the check", "children" \[] }, { "name" "bofdroutingnumber", "kind" "optional", "type" "string", "description" "the routing number of the bank where the check was first deposited", "children" \[] }, { "name" "sequencenumber", "kind" "optional", "type" "string", "description" "the check sequence number", "children" \[] }, { "name" "amount", "kind" "optional", "type" "integer", "description" "money amount that appears on the check", "children" \[] }, { "name" "currency", "kind" "optional", "type" "string", "description" "currency of the check for example, usd (us dollars)", "children" \[] }, { "name" "micr", "kind" "optional", "type" "string", "description" "the magnetic ink character recognition line, consisting of the routing number, account number and check number", "children" \[] }, { "name" "recognizedamount", "kind" "optional", "type" "integer", "description" "the check amount recognized from the check image via ocr", "children" \[] }, { "name" "iqapassed", "kind" "optional", "type" "boolean", "description" "true if the check has passed the fed’s image quality assurance standards, otherwise false", "children" \[] }, { "name" "returncode", "kind" "optional", "type" "string", "description" "the 1 character code indicating the reason for the check return see the checks request and response codes page for a complete list of values ", "children" \[] }, { "name" "hasfrontimage", "kind" "optional", "type" "boolean", "description" "true if the check image file includes the front of the check otherwise false ", "children" \[] }, { "name" "hasbackimage", "kind" "optional", "type" "boolean", "description" "true if the check image file includes the back of the check otherwise false ", "children" \[] }, { "name" "isredeposit", "kind" "optional", "type" "boolean", "description" "true if the check was deposited before otherwise false ", "children" \[] }, { "name" "policy ", "kind" "optional", "type" "string", "description" "the current availability policy type assigned to the deposit, defining the schedule for making funds available \n standard\n newaccount\n largedeposits\n redepositedcheck\n repeatedoverdrafts\n onus\n rcnoticeofunpaidreturn\n rcsuspectfraud\n rcfundingaccountoverdrafts\n rcunverifiedendorsement\n rcinconsistentinformation\n rcerasuresoralterations\n rcoutofdateroutingnumber\n rcpostdatedorstaledate\n rcpayingbanknotpaidindication\n rclostordamaged\n fiveday\n emergencyconditions", "children" \[] }, { "name" "schedule", "kind" "optional", "type" "array", "description" "funds availability schedule, determined by the policy, and based on whenever the check was released to the fed in a distribution consists of a day by day breakdown based on calendar day, with each day’s availability amount displayed ", "children" \[] }, { "name" "createdat", "kind" "optional", "type" "string", "description" "date and time the check payment was created in this case, the date and time are in this format yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "canceledat", "kind" "optional", "type" "string", "description" "date and time the check payment was canceled in this case, the date and time are in this format yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "rejectedat", "kind" "optional", "type" "string", "description" "date and time the check payment was rejected in this case, the date and time are in this format yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "processedat", "kind" "optional", "type" "string", "description" "date and time the check payment was processed in this case, the date and time are in this format yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "completedat", "kind" "optional", "type" "string", "description" "date and time the check payment was completed in this case, the date and time are in this format yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "postedat", "kind" "optional", "type" "string", "description" "date and time the check payment was posted in this case, the date and time are in this format yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "wasreturned", "kind" "optional", "type" "boolean", "description" "true if the check was returned otherwise false ", "children" \[] }, { "name" "purpose", "kind" "optional", "type" "string", "description" "purpose of the deposited check", "children" \[] }, { "name" "clientidentifier", "kind" "optional", "type" "string", "description" "use this attribute to add your own unique identifying string to a payment call or cos record this attribute is useful for idempotency purposes ", "children" \[] }, { "name" "depositbusinessdate", "kind" "optional", "type" "string", "description" "the business date of the deposit in the format of yymmdd this date is usually day 1 of the schedule for making the funds available if the check is deposited after the day's deposit cut off time, day 1 might be a different date in that case, the processedat date is day 1 ", "children" \[] }, { "name" "lockboxvendorid", "kind" "optional", "type" "string", "description" "id of the lockbox service receiving the paper checks and sending them via icl to cross river", "children" \[] }, { "name" "productid", "kind" "optional", "type" "string", "description" "id in guid format of your specific product type on which the cross river account is based provided by cross river ", "children" \[] }, { "name" "partnerid", "kind" "optional", "type" "string", "description" "your unique id in the cross river system this id is in guid format ", "children" \[] }, { "name" "lastmodifiedat", "kind" "optional", "type" "string", "description" "internal cross river value date and time the database entry was last modified in this case, the date and time are in this format yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] } ], "hastryitout" false, "autogeneratedanchorslug" "endpoint checksv1paymentssimulated inbound returns", "legacyhash" "pbzz4s3fwlcp5odqctpdg" }