Simulate inbound ACH origination
API reference
Simulate receiving an ACH credit transfer payment from another financial institution.
The response body duplicates the request body.
This API can only be run in the Cross River Sandbox.
Endpoint: /v1/payments/simulated-inbound-originations
POST
https://sandbox.crbcos.com/ach/v1/payments/simulated-inbound-originations
Body Parameters
- originatorRoutingNumberstringrequiredDescription
- originatorNamestringrequiredDescription
- originatorIdentificationstringrequiredDescription
- originatorDatastringDescription
- receiverRoutingNumberstringrequiredDescription
- receiverAccountNumberstringrequiredDescription
- receiverAccountTypestringrequiredDescription
- receiverNamestringrequiredDescription
- receiverIdentificationstringDescription
- secCodestringrequiredDescription
- descriptionstringrequiredDescription
- transactionTypestringrequiredDescription
- amountintegerrequiredDescription
- serviceTypestringrequiredDescription
- extendedDetailsobjectDescription
- authCodestringDescription
- cardAccountNumberstringDescription
- cardExpDatestringDescription
- cardTransactionTypestringDescription
- checkSerialNumberstringDescription
- docReferenceNumberstringDescription
- itemTypestringDescription
- networkIdentificationstringDescription
- paymentTypestringDescription
- processControlstringDescription
- reference1stringDescription
- reference2stringDescription
- researchNumberstringDescription
- terminalIdentificationstringDescription
- terminalLocationstringDescription
- terminalCitystringDescription
- terminalStatestringDescription
- transactionDatestringDescription
- transactionDescstringDescription
- transactionSerialstringDescription
- transactionTimestringDescription
- iatDetailsobjectDescription
- originatorobjectDescription
- addressstringrequiredDescription
- citystringrequiredDescription
- statestringDescription
- postalCodestringDescription
- countryCodestringrequiredDescription
- receiverobjectDescription
- addressstringrequiredDescription
- citystringrequiredDescription
- statestringDescription
- postalCodestringDescription
- countryCodestringrequiredDescription
- originatingBankobjectDescription
- namestringrequiredDescription
- identificationstringrequiredDescription
- idQualifierstringrequiredDescription
- countryCodestringrequiredDescription
- receivingBankobjectDescription
- namestringrequiredDescription
- identificationstringrequiredDescription
- idQualifierstringrequiredDescription
- countryCodestringrequiredDescription
- remittanceInfo1stringDescription
- correspondentBank1objectDescription
- namestringrequiredDescription
- identificationstringrequiredDescription
- idQualifierstringrequiredDescription
- countryCodestringrequiredDescription
- transactionTypeCodestringrequiredDescription
- originatingCurrencystringDescription
- destinationCurrencystringDescription
- addendastringDescription
- settlementDaysintegerDescription
Response
- originatorRoutingNumberstringDescription
- originatorNamestringDescription
- originatorIdentificationstringDescription
- originatorDatastringDescription
- receiverRoutingNumberstringDescription
- receiverAccountNumberstringDescription
- receiverAccountTypestringDescription
- receiverNamestringDescription
- receiverIdentificationstringDescription
- secCodestringDescription
- descriptionstringDescription
- transactionTypestringDescription
- amountintegerDescription
- serviceTypestringDescription
- extendedDetailsobjectDescription
- authCodestringDescription
- cardAccountNumberstringDescription
- cardExpDatestringDescription
- cardTransactionTypestringDescription
- checkSerialNumberstringDescription
- docReferenceNumberstringDescription
- itemTypestringDescription
- networkIdentificationstringDescription
- paymentTypestringDescription
- processControlstringDescription
- reference1stringDescription
- reference2stringDescription
- researchNumberstringDescription
- terminalIdentificationstringDescription
- terminalLocationstringDescription
- terminalCitystringDescription
- terminalStatestringDescription
- transactionDatestringDescription
- transactionDescstringDescription
- transactionSerialstringDescription
- transactionTimestringDescription
- iatDetailsobjectDescription
- originatorobjectDescription
- addressstringrequiredDescription
- citystringDescription
- statestringDescription
- postalCodestringDescription
- countryCodestringDescription
- receiverobjectDescription
- addressstringrequiredDescription
- citystringDescription
- statestringDescription
- postalCodestringDescription
- countryCodestringDescription
- originatingBankobjectDescription
- namestringrequiredDescription
- identificationstringDescription
- idQualifierstringDescription
- countryCodestringDescription
- receivingBankobjectDescription
- namestringrequiredDescription
- identificationstringDescription
- idQualifierstringDescription
- countryCodestringDescription
- remittanceInfo1stringrequiredDescription
- correspondentBank1objectDescription
- namestringrequiredDescription
- identificationstringDescription
- idQualifierstringDescription
- countryCodestringDescription
- transactionTypeCodestringDescription
- originatingCurrencystringrequiredDescription
- destinationCurrencystringDescription
- addendastringDescription
- settlementDaysintegerDescription
curl
curl --location 'https://sandbox.crbcos.com/ach/v1/payments/simulated-inbound-originations' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"originatorRoutingNumber": "021000021",
"originatorName": "Tom Smith",
"originatorIdentification": "99999999",
"receiverRoutingNumber": "021214891",
"receiverAccountNumber": "2819503463",
"receiverAccountType": "Checking",
"receiverName": "Jerry Penn",
"receiverIdentification": "INV123",
"secCode": "PPD",
"description": "Testing",
"transactionType": "Push",
"amount": 1000,
"serviceType": "SameDay"
}'nodejs
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': 'sandbox.crbcos.com',
'path': '/ach/v1/payments/simulated-inbound-originations',
'headers': {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"originatorRoutingNumber": "021000021",
"originatorName": "Tom Smith",
"originatorIdentification": "99999999",
"receiverRoutingNumber": "021214891",
"receiverAccountNumber": "2819503463",
"receiverAccountType": "Checking",
"receiverName": "Jerry Penn",
"receiverIdentification": "INV123",
"secCode": "PPD",
"description": "Testing",
"transactionType": "Push",
"amount": 1000,
"serviceType": "SameDay"
});
req.write(postData);
req.end();python
import requests
import json
url = "https://sandbox.crbcos.com/ach/v1/payments/simulated-inbound-originations"
payload = json.dumps({
"originatorRoutingNumber": "021000021",
"originatorName": "Tom Smith",
"originatorIdentification": "99999999",
"receiverRoutingNumber": "021214891",
"receiverAccountNumber": "2819503463",
"receiverAccountType": "Checking",
"receiverName": "Jerry Penn",
"receiverIdentification": "INV123",
"secCode": "PPD",
"description": "Testing",
"transactionType": "Push",
"amount": 1000,
"serviceType": "SameDay"
})
headers = {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
ruby
require "uri"
require "json"
require "net/http"
url = URI("https://sandbox.crbcos.com/ach/v1/payments/simulated-inbound-originations")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"originatorRoutingNumber": "021000021",
"originatorName": "Tom Smith",
"originatorIdentification": "99999999",
"receiverRoutingNumber": "021214891",
"receiverAccountNumber": "2819503463",
"receiverAccountType": "Checking",
"receiverName": "Jerry Penn",
"receiverIdentification": "INV123",
"secCode": "PPD",
"description": "Testing",
"transactionType": "Push",
"amount": 1000,
"serviceType": "SameDay"
})
response = https.request(request)
puts response.read_body
go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.crbcos.com/ach/v1/payments/simulated-inbound-originations"
method := "POST"
payload := strings.NewReader(`{
"originatorRoutingNumber": "021000021",
"originatorName": "Tom Smith",
"originatorIdentification": "99999999",
"receiverRoutingNumber": "021214891",
"receiverAccountNumber": "2819503463",
"receiverAccountType": "Checking",
"receiverName": "Jerry Penn",
"receiverIdentification": "INV123",
"secCode": "PPD",
"description": "Testing",
"transactionType": "Push",
"amount": 1000,
"serviceType": "SameDay"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}200
{
"originatorRoutingNumber": "021000021",
"originatorName": "Tom Smith",
"originatorIdentification": "99999999",
"receiverRoutingNumber": "021214891",
"receiverAccountNumber": "2819503463",
"receiverAccountType": "Checking",
"receiverName": "Jerry Penn",
"receiverIdentification": "INV123",
"secCode": "PPD",
"description": "Testing",
"transactionType": "Push",
"amount": 1000,
"serviceType": "SameDay",
"settlementDays": 0
}400
{\n \"errors\": [{\n \"code\": 2001,\n \"message\": \"Validation error\"\n }]\n}401
{\n \"errors\": [{\n \"code\": 3001,\n \"message\": \"Unauthorized\"\n }]\n}