Payments
...
APIs
Return reject
api reference rejects an inbound return request previously received on a real time payment this endpoint is strictly used to reject a return requests for inbound instant payments this endpoint is only used to reject paymenttype returnrequest it cannot be used for rejecting any other types of payments this action can also be done via docid\ vrbjrchnvqf5kqizxzloe in cos explorer sla for inbound return request response inbound return requests must be approved or rejected within the following service level timelines, based on the payment rail fednow a response is required by the end of the next business day after the return request is received rtp if the original credit transfer was a standard payment response is required within 10 business days of receiving the return request if the original credit transfer was initiated through a request for payment (rfp) response is required within 20 business days of receiving the return request failure to respond within these slas will result in automatic rejection of the inbound return request important note on fraud related return requests any incoming return request with a reason code of frad (fraud) will be reviewed by cross river and cannot be actioned directly by the partner cross river will evaluate the request and determine next steps internally { "name" "endpoint /rtp/v1/payments/{id}/reject", "method" "post", "url" "https //sandbox crbcos com/rtp/v1/payments/{id}/reject", "description" "", "tab" "examples", "examples" { "languages" \[ { "id" "tiu4cyzv2obskcr5taq d", "language" "curl", "code" "curl location 'https //sandbox crbcos com/rtp/v1/payments//return request' \\\\\n data '{\n \\"reasoncode\\" \\"cust\\",\n \\"additionalinfo\\" \\"some additional information\\"\n \\"clientidentifier\\" 123456789\n}'", "customlabel" "" }, { "id" "2ywx4qreq r5gxud3qe83", "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' '/rtp/v1/payments//return request',\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 \\\\\\"reasoncode\\\\\\" \\\\\\"cust\\\\\\",\\\r\\\n \\\\\\"additionalinfo\\\\\\" \\\\\\"some additional information\\\\\\"\\\r\\\n \\\\\\"clientidentifier\\\\\\" 123456789\\\r\\\n}\\";\n\nreq write(postdata);\n\nreq end();", "customlabel" "" }, { "id" "yohqfoum8rgbnowxp x0u", "language" "python", "code" "import requests\n\nurl = \\"https //sandbox crbcos com/rtp/v1/payments//return request\\"\n\npayload = \\"{\\\r\\\n \\\\\\"reasoncode\\\\\\" \\\\\\"cust\\\\\\",\\\r\\\n \\\\\\"additionalinfo\\\\\\" \\\\\\"some additional information\\\\\\"\\\r\\\n \\\\\\"clientidentifier\\\\\\" 123456789\\\r\\\n}\\"\nheaders = {}\n\nresponse = requests request(\\"post\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "customlabel" "" }, { "id" "po3dr zn2july7vnhkt l", "language" "ruby", "code" "require \\"uri\\"\nrequire \\"net/http\"\n\nurl = uri(\\"https //sandbox crbcos com/rtp/v1/payments//return request\\")\n\nhttps = net http new(url host, url port)\nhttps use ssl = true\n\nrequest = net http post new(url)\nrequest body = \\"{\\\r\\\n \\\\\\"reasoncode\\\\\\" \\\\\\"cust\\\\\\",\\\r\\\n \\\\\\"additionalinfo\\\\\\" \\\\\\"some additional information\\\\\\"\\\r\\\n \\\\\\"clientidentifier\\\\\\" 123456789\\\r\\\n}\\"\n\nresponse = https request(request)\nputs response read body\n", "customlabel" "" }, { "id" "puudtha7ybqrhtgmwlbrm", "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/rtp/v1/payments//return request\\"\n method = \\"post\\"\n\n payload = strings newreader(`{`+\\"\n\\"+`\n \\"reasoncode\\" \\"cust\\",`+\\"\n\\"+`\n \\"additionalinfo\\" \\"some additional information\\"`+\\"\n\\"+`\n \\"clientidentifier\\" 123456789`+\\"\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" "tiu4cyzv2obskcr5taq d" }, "results" { "languages" \[ { "id" "za7e vgg1euptpxfre3cs", "language" "200", "customlabel" "", "code" "{\n \\"id\\" \\"bec31570 e8eb 4a99 a540 b30e00d84a1a\\",\n \\"originalpaymentid\\" \\"af46b521 ffce 496e a45d b2d500e75f21\\",\n \\"referenceid\\" \\"r183o5070p1um\\",\n \\"accountnumber\\" \\"319130192085\\",\n \\"amount\\" 3000,\n \\"direction\\" \\"outbound\\",\n \\"status\\" \\"created\\",\n \\"paymenttype\\" \\"returnresponse\\",\n \\"source\\" \\"phone\\",\n \\"transactionaccountcontext\\" \\"notsubmitted\\",\n \\"debtor\\" {\n },\n \\"creditor\\" {\n },\n \\"network\\" {\n \\"businessmessageid\\" \\"b20250702021214273t1bfeh94831209802\\",\n \\"messageid\\" \\"m20250702021214273t1batg82744535279\\",\n \\"createdat\\" \\"2025 07 02t09 07 29 1502333 04 00\\",\n \\"numberoftransactions\\" 0,\n \\"interbanksettlementamount\\" 0,\n \\"instructionid\\" \\"m20250702990000001s1buoo30780762671\\",\n \\"fromparticipantid\\" \\"021214273t1\\",\n \\"toparticipantid\\" \\"990000001s1\\",\n \\"instructingroutingnumber\\" \\"020202020\\",\n \\"instructedroutingnumber\\" \\"021214891\\",\n \\"headercreationdate\\" \\"2025 07 02t09 07 29 1502333 04 00\\",\n \\"messagecreationdatetime\\" \\"2025 07 02t09 07 29 1502333 04 00\\"\n },\n \\"transactioninfo\\" {\n \\"status\\" \\"rjcr\\",\n \\"reasoncode\\" \\"am04\\"\n },\n \\"wasrefunded\\" false,\n \\"waspaid\\" false,\n \\"createdat\\" \\"2025 07 02t09 07 29 1502333 04 00\\",\n \\"canceledat\\" \\"2025 07 02t09 07 29 1502333 04 00\\",\n \\"productid\\" \\"09fba5b0 3b96 4925 b626 af630153c893\\",\n \\"partnerid\\" \\"16ec26e2 259b 4c35 a792 af63010ed9d7\\",\n \\"lastmodifiedat\\" \\"2025 07 02t09 07 29 1502333 04 00\\",\n \\"sendattemptcount\\" 0,\n \\"result\\" {\n \\"code\\" \\"am04\\"\n },\n \\"awaitingresponse\\" false,\n \\"referencedpaymentid\\" \\"880bbd72 cea3 4ef8 b4ef b30e00d7c003\\",\n \\"networkplatform\\" \\"tch\\"\n}" }, { "id" "on1q4ouolk2zfilk12wlc", "language" "400", "code" "{\n \\"errors\\" \[\n {\n \\"code\\" 2045,\n \\"message\\" \\"receiver does not support request for payment\\"\n }\n ]\n}", "customlabel" "" } ], "selectedlanguageid" "za7e vgg1euptpxfre3cs" }, "request" { "pathparameters" \[ { "name" "id", "kind" "required", "type" "string", "description" "the id of the inbound return request being rejected", "" "the id of the inbound return request being rejected" } ], "queryparameters" \[], "headerparameters" \[], "bodydataparameters" \[ { "name" "requestbody", "kind" "required", "type" "object", "description" "", "" "required", "children" \[ { "name" "reasoncode", "kind" "required", "type" "string", "description" "a code that specifies the reason for rejecting the payment refer to the list of reason codes for more details " }, { "name" "additionalinfo", "kind" "optional", "type" "string", "description" "provides supplementary details regarding the request maximum 105 characters " }, { "name" "clientidentifier", "kind" "optional", "type" "string", "description" "optional client generated id for tracking or reference purposes " } ], "schema" \[ { "name" "reasoncode", "kind" "required", "type" "string", "description" "a code that specifies the reason for rejecting the payment refer to the list of reason codes for more details " }, { "name" "additionalinfo", "kind" "optional", "type" "string", "description" "provides supplementary details regarding the request maximum 105 characters " }, { "name" "clientidentifier", "kind" "optional", "type" "string", "description" "optional client generated id for tracking or reference purposes " } ] } ], "formdataparameters" \[] }, "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "response" \[ { "name" "id", "kind" "optional", "type" "string", "description" "unique id for the rejected return request assigned by cross river " }, { "name" "originalpaymentid", "kind" "optional", "type" "string", "description" "the id of the originally received inbound payment that was attempted to be returned ", "children" \[] }, { "name" "referenceid", "kind" "optional", "type" "string", "description" "cross river’s unique reference id for the rejected return begins with r for rtp ", "children" \[] }, { "name" "accountnumber", "kind" "optional", "type" "string", "description" "account at cross river that received the original inbound payment ", "children" \[] }, { "name" "amount", "kind" "optional", "type" "integer", "description" "dollar amount of return request in positive integral cents for example, write $1 00 as 100 ", "children" \[] }, { "name" "direction", "kind" "optional", "type" "string", "description" "outbound to indicate the return (which is now rejected) would have left cross river", "children" \[] }, { "name" "status", "kind" "optional", "type" "string", "description" "transaction status \n\n created\n pending\n processing\n completed\n rejected\n canceled\n hold\n timedout\n finalizing\n failed\n researchrequired\n expired\n authorized", "children" \[] }, { "name" "paymenttype", "kind" "optional", "type" "string", "description" "always returnresponse for return payments ", "children" \[] }, { "name" "source", "kind" "optional", "type" "string", "description" "indicates how the rejection was triggered — e g , api, phone, partnerportal ", "children" \[] }, { "name" "transactionaccountcontext", "kind" "optional", "type" "string", "description" "account level transaction status for the rejected return \n\n notsubmitted\n pending\n processing\n complete\n reversal\n memopost\n timedout\n canceled\n rejected\n authonly\n notset", "children" \[] }, { "name" "network", "kind" "optional", "type" "object", "description" "network information", "children" \[ { "name" "businessmessageid", "kind" "optional", "type" "string", "description" "rtp business message id for the return that was rejected " }, { "name" "messageid", "kind" "optional", "type" "string", "description" "unique identifier of the message" }, { "name" "createdat", "kind" "optional", "type" "string", "description" "indicates when the rejection message was created, formatted as yyyy mm ddthh\ mm\ ss\[ mmm]" }, { "name" "instructionid", "kind" "optional", "type" "string", "description" "the unique id assigned by the instructing agent for the return payment while it remains active within the rtp system \n\nthis id serves as the unique identifier for the return payment request within the instant payments network " }, { "name" "fromparticipantid", "kind" "optional", "type" "string", "description" "cross river’s rtp participant id as sender" }, { "name" "toparticipantid", "kind" "optional", "type" "string", "description" "rtp participant id of the institution that originally sent the return" }, { "name" "instructingroutingnumber", "kind" "optional", "type" "string", "description" "routing number of cross river" }, { "name" "instructedroutingnumber", "kind" "optional", "type" "string", "description" "routing number of the return originating fi" }, { "name" "headercreationdate", "kind" "optional", "type" "string", "description" "timestamp for the message header creation" }, { "name" "messagecreationdatetime", "kind" "optional", "type" "string", "description" "the date and time when the return rejection message was created, formatted as yyyy mm ddthh\ mm\ ss\[ mmm]" } ] }, { "name" "transactioninfo", "kind" "optional", "type" "object", "description" "information about the transaction", "children" \[ { "name" "status", "kind" "optional", "type" "string", "description" "rtp status indicating rejection example rjcr " }, { "name" "reasoncode", "kind" "optional", "type" "string", "description" "reason code provided for rejecting the return (e g , am04) " } ] }, { "name" "wasrefunded", "kind" "optional", "type" "boolean", "description" "indicates whether the payment was refunded true if refunded, otherwise false ", "children" \[] }, { "name" "waspaid", "kind" "optional", "type" "boolean", "description" "indicates whether the payment was received true if received, otherwise false ", "children" \[] }, { "name" "createdat", "kind" "optional", "type" "string", "description" "the date and time when the credit transfer was created, formatted as yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "canceledat", "kind" "optional", "type" "string", "description" "the date and time if the return request was canceled, formatted as yyyy mm ddthh\ mm\ ss\[ mmm]", "children" \[] }, { "name" "productid", "kind" "optional", "type" "string", "description" "the guid representing the id of your specific product type associated with the account this is provided by cr and identifies the cr account involved in the transfer ", "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" \[] }, { "name" "sendattemptcount", "kind" "optional", "type" "integer", "description" "the total count of attempts to send the payment request", "children" \[] }, { "name" "result", "kind" "optional", "type" "object", "description" "result of the response request", "children" \[ { "name" "code", "kind" "optional", "type" "string", "description" "the rejection reason code sent to the originating fi " } ] }, { "name" "awaitingresponse", "kind" "optional", "type" "boolean", "description" "whether cross river is awaiting response from the network (typically false after rejection) ", "children" \[] }, { "name" "referencedpaymentid", "kind" "optional", "type" "string", "description" "the original return request id which is now being rejected ", "children" \[] }, { "name" "networkplatform", "kind" "optional", "type" "string", "description" "the payment network platform used to process the payment possible values are tch (for rtp via the clearing house)", "children" \[] } ], "hastryitout" false, "autogeneratedanchorslug" "endpoint rtpv1paymentsidreject", "legacyhash" "4cmyekycrzyxtowv a4tv" }