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.

Note

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

/wires/v1/payments

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.

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.

beneficiaryFi

object

Optional 

Bank receiving the wire transfer

beneficiary

object

Required  

Entity receiving the funds

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 (originatorToBeneficiary1, originatorToBeneficiary2, originatorToBeneficiary3, originatorToBeneficiary4).

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.

Response attributes

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

Date and time the wire was authorized. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]

authorizedById

string

CR user ID of the partner user who authorizes the wire

authorizedByName

string

CR username of the partner user who authorizes the wire

partnerAuthorization2

string

Second partner authorization for out-of-band payment requests: NotRequired, Pending , Approved, Canceled

authorizedAt2

date-time

Date and time the wire was authorized. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]

authorizedById2

string

CR user ID of the partner user who authorizes the wire

authorizedByName2

string

CR username of the partner user who authorizes the wire

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

originator

object

Details of the party sending the wire

intermediaryFi

object

Details of any intermediary bank involved in the wire transaction. Not all wire transfers use an intermediary FI.

beneficiaryFi

object

Details of the financial institution receiving the wire

beneficiary

object

Details of the party receiving the wire

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)

Back to top

Copy

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

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

/wires/v1/payments/{id}/cancel

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.

Back to top

Copy

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

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

/wires/v1/payments/{id}/drawdown-responses

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

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.

Back to top

Copy
Sample request
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'
Copy
Sample response
{
  "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.

Back to top

Related topics

Wire Transfers

Error codes

Tutorials

How to originate an outbound wire payment

How to simulate an inbound wire payment

How to respond to a drawdown request

 

Back to top