Transaction Management APIs
Use Cross River card payments transaction management APIs to push or pull funds to or from a debit card. Use the GET endpoints to find out about a specific transaction or many transactions. The POST calls require a credit card token.
Get started with Cross River APIs.
The endpoints listed in this table are described in detail in the sections below.
Action |
API call |
Description |
---|---|---|
Send funds to a payee |
|
Sends funds (push) to a specific debit card |
Request funds from a payer |
|
Pulls funds to a specific card from a payer |
Get push transactions |
|
Returns a list of transactions sent from a merchant to a payee |
Get pull transactions |
|
Returns a list of transactions sent from a payee to a merchant |
Get push transaction details by transaction ID |
|
Returns push transaction details of a specific transaction |
Get push transaction details by transaction ID |
|
Returns pull transaction details of a specific transaction |
Send funds to a payee
Sends a payment or payout to a card.
Use this endpoint for both domestic and international transactions.
Transactions are classified as domestic or international based on the country of the card issuer. Transactions made with non-US card issuers are considered international.
International transaction highlights
If a transaction involves a cross-border payment, then:
-
OFAC is mandatory. The OFAC screening API checks the identity of the sender and allows the transaction accordingly
-
FX Rates API call is recommended
For more information, see International Transactions.
Original credit transactions (OCTs) reversals can occur only under specific circumstances, and at the discretion of the card issuer. Once the funds have been delivered to the cardholder, OCTs cannot be reversed through the Card Payments API. For assistance in requesting a reversal on a specific transaction, please contact your Cross River relationship manager.
Find out more about Cross River's OCT fraud submission protocol.
Request attributes
requestId string Required The GUID that enables the application to link request with response |
||||||||||||||||||
amount integer Required The amount to be transferred, in cents. For example, 10001 = $100.01. |
||||||||||||||||||
cardToken string Required A randomly generated string of characters that relates to the consumer's payment card (15-38 alphanumeric characters). The response attribute this matches depends on the payment instrument: Card. Matches the Wallet. Matches the |
||||||||||||||||||
sourceSenderId string Required Money transfers must contain the sender's identifier. This ID identifies the sender of the funds. For a funds disbursement, non-money transfers must contain either the name of the merchant or the entity sending the disbursement. |
||||||||||||||||||
sourceSenderName string Required The name of the merchant. This attribute (alphanumeric) identifies the sender of the funds. Note: Money transfers must contain the sender's name. |
||||||||||||||||||
sourceAddress object Optional Use this field to append online transaction data to the statement descriptor, for example to use a sub-merchant address instead of the merchant address child attributes
|
||||||||||||||||||
correspondingEntity object Conditional The name and address details of the sender of a push transaction or receiver of a pull transaction. Important
This attribute is required in transactions that are account-to-account (A2A) or person-to-person (P2P). child attributes
|
||||||||||||||||||
sourceMcc string Optional Merchant Category Code (MCC). 4-digits that a credit card issuer uses to categorize consumer transactions for their card. |
||||||||||||||||||
purposeOfPayment string Optional A 1-12 character code that indicates the reason for a transaction. This code is required for certain markets (countries). |
||||||||||||||||||
programId integer Optional Populate this attribute when you want to connect a transaction to a given sub-merchant network program ID (Visa: MVV, Mastercard: MCID). Otherwise, your merchant-level program ID is added automatically. You don't need to enter it. |
Response attributes
transactionRequestId string Unique customer generated transaction request |
amount integer The amount to be transferred, in cents. For example, 10001 = $100.01. |
transactionRequestedAt string Date and time of the request (GMT) |
transactionStatus enum Transaction status:
|
errorDescription string A description of the error, if relevant |
creditCardId string Card token of the signed-up debit card |
railId string The payment processor used to perform the transaction:
Note
This field will be deprecated in Q1 2024. |
network string Name of the payment card network:
|
retrievalReferenceId string The number Cross River creates that is passed to the rail to assist in tracing a transaction after it left our system |
actualTransactionDoneAt date-time The date and time the transaction was sent to the payment processor |
requestApproved boolean True if a request was approved, otherwise false |
responseReceived boolean True if a response was received, otherwise false |
responseCode string A 2-digit code signifying the transaction result (approved or decline). For example, 00 means successful. |
responseDescription string A string describing the transaction result. For example, Approved. |
traceNumber string A unique number assigned to a transaction from the time it leaves the merchant bank until it arrives at the cardholder bank |
error string A description of the error, if relevant |
sourceSenderName string Merchant name |
sourceMcc string Merchant Category Code (MCC). 4-digits that a credit card issuer uses to categorize consumer transactions for their card. |
Sample request
curl -X
POST
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer token' -d '
{
"sourceSenderId": "298fa967-97dp-vvy6-afag-11sghvk6n552",
"sourceSenderName": "Joseph Roll",
"requestId": "298fa967-97dp-vvy6-afag-11sghvk6nx12",
"cardToken": "OMOZBSFLNAUG8E2134UDH18WILO2QDA9K6XQVN",
"amount": 5656
}
' 'https://pushtopaystaging.crbnj.net/api/transaction'
Sample response
{
"transactionRequestId": "ji7abzpy-8xp3-gpby-2604-jab7tpxy36tp",
"amount": 400,
"transactionRequestedAt": "2021-08-03T21:09:13.5882004Z",
"transactionStatus": "Succeeded",
"errorDescription": null,
"creditCardId": "KR7D47MNJIL2R39OZNRVPC0DIS82ES8JE6J7VU",
"railId": "TabaPay",
"network": "MasterCard",
"retrievalReferenceId": "8abcb1fa-51f1-4b2d-9998-5948877bdcc0",
"actualTransactionDoneAt": "2021-08-03T21:09:13.937108Z",
"requestApproved": true,
"responseReceived": true,
"responseCode": "00",
"responseDescription": "Approved",
"traceNumber": "hl7a9zpg-8zpy-92po-bhp2-xhpg5804pz2k",
"error": null,
"requesterName": null,
"requesterMcc": null
"isSuccessful": true
}
Request funds from a payer
Pulls funds from a registered card.
You also use this call for Account Funding Transactions (AFT), which pull funds from a specific account for use in a non-merchant account. For example, use this to load a prepaid card, top up a wallet, or fund a person-to-person (P2P) money transfer.
Request attributes
requesterId string Required The merchant partner unique identifier. 32 hexadecimal characters. |
|||||||||||||||||||
requesterName string Required The name of the merchant |
|||||||||||||||||||
requesterMcc string Required Merchant Category Code (MCC). 4-digits that a credit card issuer uses to categorize consumer transactions for their card. |
|||||||||||||||||||
cvv string Optional Personal customer code on the card. Note: Add the CVV to a function call only when you add a card (POST /api/Card). The API never returns CVV when you perform a GET or PUT call. |
|||||||||||||||||||
threeDomainSecureEci integer Not yet in use. |
|||||||||||||||||||
threeDomainSecureUcaf string Not yet in use. |
|||||||||||||||||||
threeDomainSecureXid string Not yet in use. |
|||||||||||||||||||
requestId string Required The GUID that enables the application to link request with response |
|||||||||||||||||||
cardToken string Required A randomly generated string of characters that relates to the consumer's payment card (15-38 alphanumeric characters). Matches the |
|||||||||||||||||||
amount integer Required The amount to be transferred, in cents. For example, 10001 = $100.01. |
|||||||||||||||||||
sourceAddress object Optional Use this field to append online transaction data to the statement descriptor, for example to use a sub-merchant address instead of the merchant address child attributes
|
|||||||||||||||||||
correspondingEntity object Conditional The name and address details of the sender of a push transaction or receiver of a pull transaction. Important
This attribute is required in transactions that are account-to-account (A2A) or person-to-person (P2P). child attributes
|
|||||||||||||||||||
programId integer Optional Populate this attribute when you want to connect a transaction to a given sub-merchant network program ID (Visa: MVV, Mastercard: MCID). Otherwise, your merchant-level program ID is added automatically. You don't need to enter it. |
|||||||||||||||||||
acceptPartialAmount boolean Optional This field is sent only to participating issuers. Enter a value of TRUE if partially approved transactions can be accepted.
|
Response attributes
The API response includes the card token, amount transferred, and a transaction status that indicates success or failure.
transactionRequestId string Unique customer generated transaction request |
amount integer The amount to be transferred, in cents. For example, 10001 = $100.01. If the consumer is enabled for partial authorization, this field will present the actual amount approved by the card issuer (that was pulled from the cardholder account). |
originalAmount integer This attribute appears in a partially authorized AFT transaction. The original transaction amount ( If partial authorization is not enabled, the value be the requested and approved transaction amount. |
transactionRequestedAt string Date and time of the request (GMT) |
transactionStatus enum Transaction status:
|
errorDescription string A description of the error, if relevant |
creditCardId string Card token of the signed-up debit card |
railId string The payment processor used to perform the transaction:
Note
This field will be deprecated in Q1 2024. |
network string Name of the payment card network:
|
retrievalReferenceId string The number Cross River creates that is passed to the rail to assist in tracing a transaction after it left our system |
actualTransactionDoneAt date-time The date and time the transaction was sent to the payment processor |
requestApproved boolean True if a request was approved, otherwise false |
responseReceived boolean True if a response was received, otherwise false |
responseCode string A 2-digit code signifying the transaction result (approved or decline). For example, 00 means successful. |
responseDescription string A string describing the transaction result. For example, Approved. |
traceNumber string A unique number assigned to a transaction from the time it leaves the merchant bank until it arrives at the cardholder bank |
error string A description of the error, if relevant |
requesterName string Merchant name |
requesterMcc string Merchant Category Code (MCC). 4-digits that a credit card issuer uses to categorize consumer transactions for their card. |
Sample request
curl -X
POST
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer token' -d '
{ \
"requesterId": "298fa967-97dp-vvy6-afag-11sghvk6nx12",
"requesterName": "Cooks",
"requesterMcc": "5134",
"cvv": "300",
"requestId": "20V5A0DC-B53B-4AB5-A7C9-6E9BE63D7303",
"cardToken": "<card token>",
"amount": 250
} \
' 'https://pushtopaystaging.crbnj.net/api/PullTransaction'
Sample response
{
"transactionRequestId": "ji7abzpy-8xp3-gpby-2604-jab7tpxy36tp",
"amount": 400,
"transactionRequestedAt": "2021-08-03T21:09:13.5882004Z",
"transactionStatus": "Succeeded",
"errorDescription": null,
"creditCardId": "KR7D47MNJIL2R39OZNRVPC0DIS82ES8JE6J7VU",
"railId": "TabaPay",
"network": "MasterCard",
"retrievalReferenceId": "8abcb1fa-51f1-4b2d-9998-5948877bdcc0",
"actualTransactionDoneAt": "2021-08-03T21:09:13.937108Z",
"requestApproved": true,
"responseReceived": true,
"responseCode": "00",
"responseDescription": "Approved",
"traceNumber": "hl7a9zpg-8zpy-92po-bhp2-xhpg5804pz2k",
"error": null,
"requesterName": null,
"requesterMcc": null
"isSuccessful": true
}
Get push transactions
Returns a list of transactions, and their details, for payments sent from a merchant to a payee.
Add query parameters to filter the response the API returns to all GET calls.
Use pagination to control presentation of your results.
Request attributes
cardToken string Optional A randomly generated string of characters that relates to the consumer's payment card (15-38 alphanumeric characters). Matches the |
|
statusEnum string Optional Transaction status:
|
|
sourceSenderId string Optional The GUID that identifies the merchant partner |
|
fromDate date-time Optional Report start date. |
|
toDate date-time Optional Report end date. |
Response attributes
The response attributes for this call are the same as for Send funds to a payee.
Sample request
curl -X
GET
--header 'Accept: application/json'
--header 'Authorization: Bearer {xxx}'
'https://pushtopaystaging.crbnj.net/api/transaction'
Sample response
{
"transactionRequestId": "ji7abzpy-8xp3-gpby-2604-jab7tpxy36tp",
"amount": 400,
"transactionRequestedAt": "2021-08-03T21:09:13.5882004Z",
"transactionStatus": "Succeeded",
"errorDescription": null,
"creditCardId": "KR7D47MNJIL2R39OZNRVPC0DIS82ES8JE6J7VU",
"railId": "TabaPay",
"network": "MasterCard",
"retrievalReferenceId": "8abcb1fa-51f1-4b2d-9998-5948877bdcc0",
"actualTransactionDoneAt": "2021-08-03T21:09:13.937108Z",
"requestApproved": true,
"responseReceived": true,
"responseCode": "00",
"responseDescription": "Approved",
"traceNumber": "hl7a9zpg-8zpy-92po-bhp2-xhpg5804pz2k",
"error": null,
"requesterName": null,
"requesterMcc": null
"isSuccessful": true
}
Get pull transactions
Returns a list of transactions where a merchant (the payee) takes funds from an end-consumer (the payer).
Add query parameters to filter the response the API returns to all GET calls.
Use pagination to control presentation of your results.
Request attributes
cardToken string Optional A randomly generated string of characters that relates to the consumer's payment card (15-38 alphanumeric characters). Matches the |
|
statusEnum string Optional Transaction status:
|
|
fromDate date-time Optional Date from which transactions were added (for beginning of a date range query). Format: YYYY-MM-DDThh:mm:ss.<UTC offset>Z), for instance 2022-12-19T18:51:21.22Z |
|
toDate date-time Optional Date up to which transactions were added (for end of a date range query). Format: YYYY-MM-DDThh:mm:ss.<UTC offset>Z), for instance 2022-12-19T18:51:21.22Z. |
Response attributes
The response attributes for this call are the same as for Request funds from a payer.
Sample request
curl -X GET
--header 'Accept: application/json'
--header 'Authorization: Bearer {xxx}'
'https://pullfromcardapistg.crbnj.net/api/PullTransaction'
Sample response
{
"transactionRequestId": "ji7abzpy-8xp3-gpby-2604-jab7tpxy36tp",
"amount": 400,
"transactionRequestedAt": "2021-08-03T21:09:13.5882004Z",
"transactionStatus": "Succeeded",
"errorDescription": null,
"creditCardId": "KR7D47MNJIL2R39OZNRVPC0DIS82ES8JE6J7VU",
"railId": "TabaPay",
"network": "MasterCard",
"retrievalReferenceId": "8abcb1fa-51f1-4b2d-9998-5948877bdcc0",
"actualTransactionDoneAt": "2021-08-03T21:09:13.937108Z",
"requestApproved": true,
"responseReceived": true,
"responseCode": "00",
"responseDescription": "Approved",
"traceNumber": "hl7a9zpg-8zpy-92po-bhp2-xhpg5804pz2k",
"error": null,
"requesterName": null,
"requesterMcc": null
"isSuccessful": true
}
Get push transaction details by transaction ID
Returns details of a specific transaction where a merchant (the payer) sends funds to an end-consumer (the payee). Use the transactionId
attribute as the transaction identifier.
Request attributes
transactionId string Required A unique string (32 hexadecimal characters) that identifies the transaction in a definite way. The payment card network passes this identifier, without changing it, throughout the whole interbank chain. |
sourceSenderId string Optional The GUID that identifies the merchant partner |
Response attributes
The response attributes for this call are the same as for Send funds to a payee.
Sample request
curl -X
GET
--header 'Accept: application/json'
--header 'Authorization: Bearer token'
'https://pushtopaystaging.crbnj.net/api/transaction/230bc14b-970b-4ee2-8fd3-1911d51f89d4'
Sample response
{
"transactionRequestId": "ji7abzpy-8xp3-gpby-2604-jab7tpxy36tp",
"amount": 400,
"transactionRequestedAt": "2021-08-03T21:09:13.5882004Z",
"transactionStatus": "Succeeded",
"errorDescription": null,
"creditCardId": "KR7D47MNJIL2R39OZNRVPC0DIS82ES8JE6J7VU",
"railId": "TabaPay",
"network": "MasterCard",
"retrievalReferenceId": "8abcb1fa-51f1-4b2d-9998-5948877bdcc0",
"actualTransactionDoneAt": "2021-08-03T21:09:13.937108Z",
"requestApproved": true,
"responseReceived": true,
"responseCode": "00",
"responseDescription": "Approved",
"traceNumber": "hl7a9zpg-8zpy-92po-bhp2-xhpg5804pz2k",
"error": null,
"requesterName": null,
"requesterMcc": null
"isSuccessful": true
}
Get pull transaction details by transaction ID
Returns details of a specific transaction where a merchant (the payee) takes funds from an end-consumer (the payer). Use the transactionId
attribute as the transaction identifier.
Request attributes
cardToken string Required A randomly generated string of characters that relates to the consumer's payment card (15-38 alphanumeric characters). Matches the |
transactionId string Required A unique string (32 hexadecimal characters) that identifies the transaction in a definite way. The payment card network passes this identifier, without changing it, throughout the whole interbank chain. |
sourceSenderId string Optional The GUID that identifies the merchant partner |
Response attributes
The response attributes for this call are the same as for Request funds from a payer.
Sample request in cURL
curl -X
GET
--header 'Accept: application/json'
--header 'Authorization: Bearer token'
'https://pushtopaystaging.crbnj.net/api/transaction/230bc14b-970b-4ee2-8fd3-1911d51f89d4'
Sample response
{
"transactionRequestId": "ji7abzpy-8xp3-gpby-2604-jab7tpxy36tp",
"amount": 400,
"transactionRequestedAt": "2021-08-03T21:09:13.5882004Z",
"transactionStatus": "Succeeded",
"errorDescription": null,
"creditCardId": "KR7D47MNJIL2R39OZNRVPC0DIS82ES8JE6J7VU",
"railId": "TabaPay",
"network": "MasterCard",
"retrievalReferenceId": "8abcb1fa-51f1-4b2d-9998-5948877bdcc0",
"actualTransactionDoneAt": "2021-08-03T21:09:13.937108Z",
"requestApproved": true,
"responseReceived": true,
"responseCode": "00",
"responseDescription": "Approved",
"traceNumber": "hl7a9zpg-8zpy-92po-bhp2-xhpg5804pz2k",
"error": null,
"requesterName": null,
"requesterMcc": null
"isSuccessful": true
}