Transactions
Relevant webhooks
For this endpoint be sure you have registered for these webhooks:
- Core.Transaction.Completed
- Core Transaction.Rejected
API reference
The Core Transactions API endpoint allows partners to move funds between their accounts. This endpoint effects a book transfer. It is an extended version of the transfer endpoint. It allows you to provide a description and transaction code. In the context of Advanced Authorization, this endpoint is provided for the partner to sync external activity (transactions) into Cross River accounts at the end of each day.
Endpoint: /core/v1/transactions
POST
https://sandbox.crbcos.com/core/v1/transactions
Body Parameters
- debitAccountNumberstringrequiredDescription
- creditAccountNumberstringrequiredDescription
- transactionCodestringrequiredDescription
- descriptionstringrequiredDescription
- amountintegerrequiredDescription
- currencystringDescription
- clientIdentifierstringDescription
- flagsarrayDescription
Response
- TransactionInfoobject
- idstringDescription
- traceNumberstringDescription
- statusstringDescription
- TransactionOperationInfoobjectDescription
- transactionTypestringDescription
- accountTypestringDescription
- masterAccountNumberstringDescription
- subAccountNumberstring
- partnerIdstringDescription
- productIdstringDescription
- activityIdstring
- resultobject
- successstring
- codestring
- messagestring
- transactionCodestringDescription
- amountstringDescription
- currencystring
- descriptionstringDescription
- railstringDescription
- railIdstring
- clientIdentifierstringDescription
- flagsstringDescription
- schedulestring
- proposedAtstringDescription
- executedAtstringDescription
- canceledAtstringDescription
- lastModifiedAtstringDescription
curl
curl --location 'https://sandbox.crbcos.com/core/v1/transactions' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"debitAccountNumber": "2955057589",
"creditAccountNumber": "2870342504",
"transactionCode": "Account Transfer",
"description": "Settlement Transfer",
"amount": 13571,
"currency": "usd",
"clientIdentifier": "1988192d-3967-485e-a720-ffef339638ab",
"flags": []
}
'nodejs
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': 'sandbox.crbcos.com',
'path': '/core/v1/transactions',
'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({
"debitAccountNumber": "2955057589",
"creditAccountNumber": "2870342504",
"transactionCode": "Account Transfer",
"description": "Settlement Transfer",
"amount": 13571,
"currency": "usd",
"clientIdentifier": "1988192d-3967-485e-a720-ffef339638ab",
"flags": []
});
req.write(postData);
req.endpython
import requests
import json
url = "https://sandbox.crbcos.com/core/v1/transactions"
payload = json.dumps({
"debitAccountNumber": "2955057589",
"creditAccountNumber": "2870342504",
"transactionCode": "Account Transfer",
"description": "Settlement Transfer",
"amount": 13571,
"currency": "usd",
"clientIdentifier": "1988192d-3967-485e-a720-ffef339638ab",
"flags": []
})
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/core/v1/transactions")
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({
"debitAccountNumber": "2955057589",
"creditAccountNumber": "2870342504",
"transactionCode": "Account Transfer",
"description": "Settlement Transfer",
"amount": 13571,
"currency": "usd",
"clientIdentifier": "1988192d-3967-485e-a720-ffef339638ab",
"flags": []
})
response = https.request(request)
puts response.read_body
go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.crbcos.com/core/v1/transactions"
method := "POST"
payload := strings.NewReader(`{
"debitAccountNumber": "2955057589",
"creditAccountNumber": "2870342504",
"transactionCode": "Account Transfer",
"description": "Settlement Transfer",
"amount": 13571,
"currency": "usd",
"clientIdentifier": "1988192d-3967-485e-a720-ffef339638ab",
"flags": []
}
`)
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
{
"id": "3ef99bff-13b6-45cf-b808-b323007e90c2",
"traceNumber": "T25204034048Y94RZ",
"status": "Pending",
"debit": {
"transactionType": "Debit",
"accountType": "Deposit",
"masterAccountNumber": "2955057589",
"subAccountNumber": "2955057589",
"partnerId": "1101a33d-fbd9-4b9e-b169-b29500f12407",
"productId": "29f3022a-ccfc-42eb-aa8f-b29500f13d00",
"activityId": "f8c46dae-5a12-4f57-a1ea-b323007e90c2"
},
"credit": {
"transactionType": "Credit",
"accountType": "Deposit",
"masterAccountNumber": "2870342504",
"subAccountNumber": "2870342504",
"partnerId": "1101a33d-fbd9-4b9e-b169-b29500f12407",
"productId": "29f3022a-ccfc-42eb-aa8f-b29500f13d00",
"activityId": "47a622fc-c9ae-4390-b411-b323007e90c2"
},
"transactionCode": "Account Transfer",
"amount": 13571,
"currency": "usd",
"description": "Settlement Transfer",
"rail": "Internal",
"railId": "0",
"clientIdentifier": "1988192d-3967-485e-a720-ffef339638ab",
"flags": [],
"schedule": [],
"proposedAt": "2025-07-23T03:40:48.6439092-04:00",
400
{
"errors": [
{
"code": 2626,
"message": "Debit account not found"
}
]
}