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.

Note

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

POST /api/transaction

Sends funds (push) to a specific debit card
Request funds from a payer

POST /api/PullTransaction

Pulls funds to a specific card from a payer
Get push transactions

GET /api/transaction

Returns a list of transactions sent from a merchant to a payee
Get pull transactions

GET /api/PullTransaction

Returns a list of transactions sent from a payee to a merchant
Get push transaction details by transaction ID

GET /api/transaction/{transactionId}

Returns push transaction details of a specific transaction
Get push transaction details by transaction ID

GET /api/PullTransaction/{transactionId}

Returns pull transaction details of a specific transaction

Send funds to a payee

/api/transaction

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.

Note

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 creditCardToken in the Add a card response.

Wallet. Matches the payAliasToken in the Add a payAlias response.

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

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).

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:

  • Succeeded

  • Pending

  • Failed

  • Rejected

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:

  • McSend

  • TabaPay

  • Visa Direct

Note

This field will be deprecated in Q1 2024.

network

string

Name of the payment card network:

  1. MoneySend

  2. NYCE

  3. Pulse

  4. STAR

  5. Visa

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.

Back to topor

Copy

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'
Copy

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

/api/PullTransaction/

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 creditCardToken in the response.

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

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).

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.

  • FALSE. Partial authorization not supported (default)

  • TRUE. Partial authorization supported

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 (amount value in the AFT request), represented in the transaction currency (senderCurrencyCode value in AFT request).

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:

  • Succeeded

  • Pending

  • Failed

  • Rejected

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:

  • McSend

  • TabaPay

  • Visa Direct

Note

This field will be deprecated in Q1 2024.

network

string

Name of the payment card network:

  1. MoneySend

  2. NYCE

  3. Pulse

  4. STAR

  5. Visa

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.

Back to top

Copy

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'
Copy

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

/api/transaction

Returns a list of transactions, and their details, for payments sent from a merchant to a payee.

Best practice

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 creditCardToken in the response.

statusEnum

string

Optional 

Transaction status:

  • Succeeded

  • Pending

  • Failed

  • Rejected

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.

Back to top

Copy

Sample request

curl -X
GET 
--header 'Accept: application/json' 
--header 'Authorization: Bearer {xxx}'
'https://pushtopaystaging.crbnj.net/api/transaction'
Copy

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

/api/PullTransaction

Returns a list of transactions where a merchant (the payee) takes funds from an end-consumer (the payer).

Best practice

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 creditCardToken in the response.

statusEnum

string

Optional 

Transaction status:

  • Succeeded

  • Pending

  • Failed

  • Rejected

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.

Back to top

Copy

Sample request

curl -X GET
--header 'Accept: application/json'
--header 'Authorization: Bearer {xxx}'
'https://pullfromcardapistg.crbnj.net/api/PullTransaction'
Copy

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

/api/transaction/{transactionId}

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.

Back to top

Copy

Sample request

curl -X 
GET 
--header 'Accept: application/json' 
--header 'Authorization: Bearer token' 
'https://pushtopaystaging.crbnj.net/api/transaction/230bc14b-970b-4ee2-8fd3-1911d51f89d4'
Copy

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

/api/PullTransaction/{transactionId}

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 creditCardToken in the response.

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.

Back to top

Copy

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'
Copy

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
}

Related topics

Card payments overview

OFAC screening overview

Foreign Exchange Rates

API References

Card management APIs

OFAC screening APIs

Foreign exchange rates APIs

Request and response codes

Error codes

Tutorials

How to originate a Push to Card transaction

How to originate an Account Funding Transaction (AFT)