Wires APIs
Use wire transfers for both domestic and international payments. You or your customer can transfer money electronically to a recipient and a recipient can access the money, typically the same day.
Wire transfers go through Fedwire® , operated by the U.S. Federal Reserve.
In Cross River (CR), both inbound and outbound international wire transfers go through a domestic intermediary bank. To send or receive international wires in USD, you must contact the beneficiary bank to get the needed wire transfer information.
Wires APIs are found in the Wires
module of our COS sandbox.
Get started with Cross River APIs.
This table presents Wires APIs that we describe in detail.
Action |
API Call |
Description |
---|---|---|
Send a wire transfer | POST /wires/v1/payments
|
Sends a single wire transfer payment |
Cancel a wire transfer | POST /wires/v1/payments/{id}/cancel
|
Cancels a wire transfer payment |
Respond to a wires drawdown request | POST /wires/v1/payments/{id}/drawdown-responses
|
Responds to a request for a payment by wire transfer |
Send a wire transfer
Sends a wire transfer
Request attributes
accountNumber string Required Originator account number |
||||||
originator object Conditional Originator of the payment When calling the API, the originator on the outbound wire is either CR by default or the name of the account, depending on the configuration of your product. child attributes
|
||||||
businessFunctionCode string Required The business purpose of the wire transfer. The most common type is customer wire transfer (CTR) where the beneficiary isn't a bank. Click here for a full list of codes and descriptions. |
||||||
receiverRoutingNumber string Required Fedwire routing number of the beneficiary (receiver) bank. The ABA directory provides financial institution routing numbers. 9 characters maximum. |
||||||
intermediaryFi object Conditional Intermediary bank involved in the transaction. Required when sending an international payment. child attributes
|
||||||
beneficiaryFi object Optional Bank receiving the wire transfer child attributes
|
||||||
beneficiary object Required Entity receiving the funds child attributes
|
||||||
beneficiaryReference string Optional Optional field for additional information. 16 characters maximum. |
||||||
originatorToBeneficiary1 string Optional Field for additional information from the originator to the beneficiary. 35 characters maximum. You can add information in up to 4 originator to beneficiary fields ( |
||||||
amount integer Required Dollar amount of wire transfer in positive integral cents. For example, write $1.00 as 100. |
||||||
purpose string Required For internal CR use. Reason for the wire transfer, such as "daily settlement." Also use this field if you submit multiple wires for the same amount, such as "1 of 2, 2 of 2." This data is not included with the outgoing FedWire message. 50 characters maximum. |
||||||
clientIdentifier string Optional Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes. |
id string The payment ID. First appears in the initial response to the originate a payment request. This ID is in GUID format. |
||||||
accountNumber string CR Account number. In CR, depending on the account type, the number of digits will vary. The first digit indicates the kind of account. |
||||||
coreTransactionId string Internal CR unique ID for the transaction |
||||||
referenceId string Unique reference ID for the payment. The reference ID always begins with the first letter of the rail. For wires the reference ID starts with 'W'. |
||||||
fedBatchId string Unique identifier in GUID format for the Federal Reserve batch the payment went out on (or came in on for inbound payments) |
||||||
fedBatchSequence integer Sequence number of payment in batch |
||||||
direction string Inbound or outbound |
||||||
paymentType string Transfer, Drawdown, DrawdownResponse, ServiceMessage, Reversal |
||||||
source string Method used to send payment instructions: Phone, fax, email, file, API, partner portal, Ops portal. |
||||||
status string Payment status: Created, Pending, Hold, Batched, Processing, Completed, Rejected, Canceled, Blocked |
||||||
posting string Posting status: Pending, Posted, Failed, Canceled |
||||||
rejectionReason string Rejected because: OfacCancel, UnableToDetermine, OfacConfirmed, OfacUnconfirmed, Other |
||||||
blockedReason string Blocked because: OfacMatch, Other |
||||||
partnerAuthorization string Partner authorization for out-of-band payment requests: NotRequired, Pending , Approved, Canceled |
||||||
authorizedAt date-time In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] . |
||||||
authorizedById string
|
||||||
authorizedByName string
|
||||||
partnerAuthorization2 string Second partner authorization for out-of-band payment requests: NotRequired, Pending , Approved, Canceled |
||||||
authorizedAt2 date-time In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] . |
||||||
authorizedById2 string
|
||||||
authorizedByName2 string
|
||||||
amount integer Dollar amount of wire transfer in positive integral cents. For example, write $1.00 as 100. |
||||||
currency string Currency of funds transfer |
||||||
purpose string Reason for the wire transfer, such as "daily settlement." Also use this field if you submit multiple wires for the same amount, such as "1 of 2, 2 of 2." This data is not included with the outgoing FedWire message. |
||||||
imad string Input Messaging Accountability Data. A combination of a date, source identifier, and sequence number assigned to a Fedwire message when it is processed by the Federal Reserve Bank Funds Transfer application. Unique to the payment. |
||||||
omad string Output Messaging Accountability Data. A combination of a date, destination identifier, and sequence number assigned to a Fedwire message when it is processed by the Federal Reserve Bank Funds Transfer application. |
||||||
businessFunctionCode string The business purpose of the wire transfer. The most common type is customer wire transfer (CTR) where the beneficiary isn't a bank. Click here for a full list of codes and descriptions. |
||||||
typeCode string The type code value provides information about the type of wire transfer sent (type code, first 2 digits) and more details about the transfer (subtype code, second 2 digits). |
||||||
senderRoutingNumber string Fedwire routing number for the sender's bank |
||||||
senderName string Entity sending the wire |
||||||
senderReference string Sender assigned reference number |
||||||
receiverRoutingNumber string Fedwire routing number of the beneficiary (receiver) bank. The ABA directory provides financial institution routing numbers. |
||||||
receiverName string Name of the FI receiving the funds |
||||||
originatingFi object Details of the financial institution sending the wire child attributes
|
||||||
originator object Details of the party sending the wire child attributes
|
||||||
intermediaryFi object Details of any intermediary bank involved in the wire transaction. Not all wire transfers use an intermediary FI. child attributes
|
||||||
beneficiaryFi object Details of the financial institution receiving the wire child attributes
|
||||||
beneficiary object Details of the party receiving the wire child attributes
|
||||||
originatorToBeneficiary1 string Field for additional information from the originator to the beneficiary. |
||||||
beneficiaryReference string Optional field for additional information. 16 characters maximum. |
||||||
receiptDate string Month and day the wire was received in the format mmdd |
||||||
receiptTime string Time the wire was received, in the format hhmm |
||||||
wasReversed boolean True if the payment was reversed, otherwise false |
||||||
isInternational boolean True if the payment is international, otherwise false |
||||||
clientIdentifier string Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes. |
||||||
createdAt string Date and time the payment was created in the system. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
||||||
releasedAt date-time Date and time the payment was released in a distribution to the Fed. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]. |
||||||
processedAt string Date and time the payment was processed by CR. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]. |
||||||
canceledAt string Date and time the payment was canceled |
||||||
rejectedAt string Date and time the payment was rejected. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
||||||
blockedAt string Date and time the payment was blocked by BSA/AML. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]. |
||||||
effectiveDate string Business date on which the payment is effective |
||||||
completedAt string Date and time the payment was systemically completed. This can only occur after the payment has successfully posted to the account.. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]. |
||||||
postedAt date-time Date and time the payment was posted to the CR account. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm] |
||||||
originalPaymentId string Payment ID of a previously sent wire that was reversed. Otherwise, the same as the payment ID. |
||||||
partnerId string Your ID in the CR system. This ID is in GUID format. |
||||||
productId string ID in GUID format of your specific product type on which the account is based. Provided by CR.In this case, the CR account involved in the payment. More about Product IDs. |
||||||
lastModifiedAt string Internal CR value. Date and time the database entry was last modified. |
||||||
postingCode string Includes OK (posted), RES (account restricted), NSF (insufficient funds in the account sending the wire) |
Sample request
curl -X POST
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer <token>'
-d '{
{
"accountNumber": "20020020022",
"receiverRoutingNumber": "021000021",
"businessFunctionCode": "CTR",
"beneficiary": {
"idCode": "D",
"identifier": "77777777701",
"name": "Bob Smith",
"address1": "123 Maple Lane",
"address2": "Suite 123",
"address3": "New York, NY 10025",
},
"beneficiaryReference": "INV# 123",
"originatorToBeneficiary1": "THANK",
"originatorToBeneficiary2": "YOU",
"originatorToBeneficiary3": "PAID",
"originatorToBeneficiary4": "IN FULL",
"amount": 10000,
"purpose": "Invoice Payment"
} 'https://sandbox.crbcos.com/Wires/v1/payments'
Sample response
{
"id": "30423521-52e2-4329-b8f6-ada3011806f1",
"accountNumber": "20020020022",
"referenceId": "W21025MV1WA",
"direction": "Outbound",
"paymentType": "Transfer",
"source": "Api",
"status": "Created",
"posting": "Pending",
"amount": 10000,
"currency": "usd",
"purpose": "Invoice payment",
"businessFunctionCode": "CTR",
"typeCode": "1000",
"senderRoutingNumber": "021214891",
"senderName": "Cross River Bank",
"senderReference": "W21025MV1WA",
"receiverRoutingNumber": "021000021",
"receiverName": "BK AMER NYC ",
"originatingFi": {
"idCode": "F",
"identifier": "021214891",
"name": "Cross River Bank",
"address1": "885 Teaneck Rd",
"address2": "Teaneck NJ 07666",
"address3": "US"
},
"originator": {
"idCode": "D",
"identifier": "2342123458",
"name": "Acme Co",
"address1": "400 Business Street",
"address2": "New York NY 10025"
},
"beneficiary": {
"idCode": "D",
"identifier": "77777777701",
"address1": "123 Maple Lane",
"address2": "Suite 123",
"address3": "New York, NY 10025",
},
"beneficiaryReference": "Inv# 123",
"originatorToBeneficiary1": "THANK",
"originatorToBeneficiary2": "YOU",
"originatorToBeneficiary3": "PAID",
"originatorToBeneficiary4": "IN FULL",
"wasReversed": false,
"isInternational": false,
"createdAt": "2021-01-25T17:13:27.6503996-05:00",
"effectiveDate": "2021-01-25T00:00:00-05:00",
"originalPaymentId": "30423521-52e2-4329-b8f6-ada3011806f1",
"partnerId": "c98d9c27-8313-4b46-a15c-ebb18c9a95e3",
"productId": "46e9f536-f8c2-4ed3-9fda-4185b22cdcb9",
"lastModifiedAt": "2021-01-25T17:13:27.6573998-05:00",
"postingCode": "OK"
}
Cancel a wire transfer
Cancels a wire transfer payment using the payment ID.
Path parameters
id string Required Unique identifier for the payment in GUID format, received in the response to POST /wires/v1/payments. Also known as the payment ID. |
Response attributes
The response attributes for this call are the same as for Send a wire transfer.
Sample request
curl -X GET
--header 'Accept: application/json'
--header 'Authorization: Bearer <token>'
'https://sandbox.crbcos.com/Wires/v1/payments/d9a7a7ca-fe31-4509-90a2-b129011945d8/cancel'
Sample response
{
"id": "d9a7a7ca-fe31-4509-90a2-b129011945d8",
"accountNumber": "2151546989",
"coreTransactionId": "fa7ae94e-0fc0-4c4f-9680-b129011945d8",
"referenceId": "W24064PZ078",
"direction": "Outbound",
"paymentType": "Transfer",
"source": "PartnerPortal",
"status": "Canceled",
"posting": "Posted",
"partnerAuthorization": "Canceled",
"partnerAuthorization2": "Canceled",
"amount": 5000,
"currency": "usd",
"purpose": "ENTERED BY #60C3C9C8FD17BA0070A7FB4F# - sample",
"businessFunctionCode": "CTR",
"typeCode": "1000",
"senderRoutingNumber": "021214891",
"senderName": "CROSS RIVER BANK",
"senderReference": "W24064PZ078",
"receiverRoutingNumber": "021000021",
"receiverName": "JPMCHASE",
"originatingFi": {
"idCode": "F",
"identifier": "021214891",
"name": "34115033",
"address1": "400 KELBY STREET",
"address2": "FORT LEE, NJ",
"address3": "US"
},
"originator": {
"idCode": "D",
"identifier": "2151546989",
"name": "DIM MAK",
"address1": "1 STONE ST",
"address2": "",
"address3": "NEW YORK NY 10001 US"
},
"beneficiary": {
"idCode": "D",
"identifier": "6546464321",
"name": "Matthew Brazil"
},
"wasReversed": false,
"isInternational": false,
"createdAt": "2024-03-04T12:04:04.983-05:00",
"canceledAt":"2024-03-04T12:04:10.7921285-05:00",
"effectiveDate": "2024-03-04T00:00:00-05:00",
"postedAt": "2024-03-04T12:04:05.153-05:00",
"originalPaymentId": "d9a7a7ca-fe31-4509-90a2-b129011945d8",
"partnerId": "1e5d3f04-ae24-4af6-9e30-aecf012b99dd",
"productId": "cc62e17f-5912-483e-9e42-aed30112fbb6",
"lastModifiedAt":"2024-03-04T12:04:10.7921285-05:00",
"postingCode":"OK"
"rail":"Wires"
}
Respond to a drawdown request
Responds to a wires drawdown request by sending payment .
Request attributes
id string Required Payment ID of the drawdown request. This is in GUID format. |
|||||||||||||
originator object Required Details of the party sending the wire child attributes
|
|||||||||||||
beneficiaryReference string Optional Optional field for additional information. 16 characters maximum. |
|||||||||||||
originatorToBeneficiaryLine1 string Optional One of 4 fields, 35 characters each, to add additional information to be sent to the beneficiary. |
|||||||||||||
originatorToBeneficiaryLine2 string Optional One of 4 fields, 35 characters each, to add additional information to be sent to the beneficiary. |
|||||||||||||
originatorToBeneficiaryLine3 string Optional One of 4 fields, 35 characters each, to add additional information to be sent to the beneficiary. |
|||||||||||||
originatorToBeneficiaryLine4 string Optional One of 4 fields, 35 characters each, to add additional information to be sent to the beneficiary. |
Response attributes
The response attributes for this call are the same as for Send a wire transfer.
curl -X POST --header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer <token>'
-d '{
"originator":
{
"idCode":"D",
"identifier":"2805121064",
"name":"CRB FBO RPPS Settlement",
"address1":"885 Teaneck Rd",
"address2":"Teaneck, NJ 07666 US"
},
"beneficiaryReference":"1097200354JO"
} 'https://sandbox.crbcos.com/Wires/v1/payments/5beea7ed-e9a1-4914-9bdc-af7100eb4dbd/drawdown-responses'
{
"id": "cb9bd5f3-e720-47dc-ab9b-af7100fe54d4",
"accountNumber": "2805121064",
"coreTransactionId": "e3e7a91e-fe43-40c4-a264-af710135d35d",
"referenceId": "W2235435X38",
"fedBatchId": "0259951e-e377-4940-b312-af71013af155",
"fedBatchSequence": 1,
"direction": "Outbound",
"paymentType": "DrawdownResponse",
"source": "OpsPortal",
"status": "Completed",
"posting": "Posted",
"partnerAuthorization": "NotRequired",
"partnerAuthorization2": "NotRequired",
"amount": 1248098147,
"currency": "usd",
"purpose": "ENTERED BY #61AA4FE6014AFB01143EBB35#",
"imad": "20221220QMGFT009000933",
"omad": "20221220B1QGC01R06123612201412",
"businessFunctionCode": "DRW",
"typeCode": "1032",
"senderRoutingNumber": "021214891",
"senderName": "CROSS RIVER BK",
"senderReference": "W2235435X38",
"receiverRoutingNumber": "021000021",
"receiverName": "JPMORGAN CHASE",
"originator": {
"idCode": "D",
"identifier": "2805121064",
"name": "CRB FBO RPPS Settlement",
"address1": "885 Teaneck Rd",
"address2": "Teaneck, NJ 07666 US"
},
"beneficiary": {
"idCode": "D",
"identifier": "014053007",
"name": "MASTERCARD INTERNATIONAL",
"address1": "INCORPORATE/SERVICES",
"address2": "2200 MASTERCARD BOULEVARD",
"address3": "O'FALLON MO 63366- US"
},
"beneficiaryReference": "1097200354JO",
"receiptDate": "1220",
"receiptTime": "1412",
"wasReversed": false,
"isInternational": false,
"createdAt": "2022-12-20T10:25:59.53-05:00",
"processedAt": "2022-12-20T14:07:01.817-05:00",
"effectiveDate": "2022-12-20T00:00:00-05:00",
"completedAt": "2022-12-20T14:46:58.82-05:00",
"postedAt": "2022-12-20T13:48:02.473-05:00",
"originalPaymentId": "5beea7ed-e9a1-4914-9bdc-af7100eb4dbd",
"partnerId": "6ee82269-9e89-450e-9065-a9e5012c2645",
"productId": "701d116d-ceec-4868-94f0-ab3c00e82bde",
"lastModifiedAt": "2022-12-20T14:46:58.8208426-05:00",
"postingCode": "OK"
}
Associated webhook events
Event Name |
Description |
---|---|
Wire.Payment.Canceled |
Outbound wire was canceled at the partner's request |
Wire.Payment.Rejected |
Outbound wire could not be processed due to compliance reasons or was rejected by the Federal Reserve |
Wire.Payment.Processed |
Outbound wire has been transmitted to the Federal Reserve. Still possible the wire could be rejected |
Wire.Payment.Sent |
Outbound wire has been transmitted to the Federal Reserve and has been successfully acknowledged. IMAD number is now available. |
Wire.Payment.Received |
Inbound wire has been received from another bank |
Wire.Hold.Escalated |
A hold relating to either an inbound or outbound wire was marked for escalation by a member of the Operations team. Commonly this is used to indicate additional documentation or action is needed by the partner. |
Related topics
Tutorials
How to originate an outbound wire payment
How to simulate an inbound wire payment
How to respond to a drawdown request