Originate an ACH payment

/ach/v1/payments

Originates an ACH payment.

Request attributes

accountNumber

string

Required  

Account number for payment originator

originator

object

Conditional 

Details about the entity sending the payment. If the account originating the payment is enabled to provide this information according to the supplied account number, all the values should be null. If these values are supplied in the request they override the originator profile defined for the account.

receiver

object

Required  

In the case of Pull payments, this is the account the funds are being pulled from.

secCode

string

Required  

Standard Entry Class (SEC) codes required by Nacha for every ACH transaction. See values here.

description

string

Required  

Description of the payment. Maximum 10 characters.

transactionType

string

Required  

Sending or requesting funds:

  • Push (originator is sending funds—debit)

  • Pull (originator is receiving funds—credit)

amount

integer

Required  

Dollar amount of payment in positive integral cents. For example, write $1.00 as 100.

serviceType

string

Required  

When the payment completes:

  • Standard (Payment effective the following business day. International payments must use this service type.)

  • SameDay (Payment effective same day, subject to certain constraints. See ACH overview.)

extendedDetails

object

Conditional 

ACH-specific details. If the transactionType is pull and secCode is WEB you must include a paymentType value in this object.

iatDetails

object

Conditional 

Required if the secCode is IAT. See here for more information about IAT.

Do not enter values for these attributes for any other secCode.

addenda

string

Optional 

Additional transaction-related information

purpose

string

Optional 

Reason for the ACH transfer. For internal use only. The data is not included with the outgoing ACH batch file.

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.

Copy

Sample request

curl -X POST
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer <token>'
-d '{
  "accountNumber": "2151546989",
  "receiver": {
    "routingNumber": "021200339",
    "accountNumber": "6546543213",
    "accountType": "Checking",
    "name": "Glenn Quagmire",
    "identification": "XYZ123"
  },
  "secCode": "WEB",
  "description": "JulyFees",
  "transactionType": "Pull",
  "amount": 1,
  "serviceType": "SameDay",
  "extendedDetails": {
      "paymentType": "S"
  },
  "purpose": "sample payment"
}

Response attributes

id

string

Payment ID. This ID first appears as the value for this attribute in the response to the originate a payment call. This ID is in the GUID format.

accountNumber

string

Account number. In CR, depending on the account type, the number of digits will vary. The first digit indicates the kind of account.

referenceId

string

Unique CR reference ID for the payment. The reference ID always begins with the first letter of the rail. For ACH the reference ID starts with 'A'.

paymentType

string

Type of payment being sent. See values here.

direction

string

The payment direction, which includes:

  • Inbound: payment received by a CR account from another bank

  • Outbound: a payment sent from a CR account to another bank

status

string

The status of the payment

source

string

Source of the activity: Api, PartnerPortal, OpsPortal, File

postingType

string

Individual or Aggregate

clientBatchId

string

Unique identifier for a batch (GUID) if you originate the client batch

clientBatchSequence

integer

Sequence number of the payment in the batch, if you originate the client batch

fedBatchId

string

Unique ID for the batch sent to or received from the Fed

fedBatchSequence

integer

Sequence of the payment inside of the batch sent to or received from the Fed

coreTransactionId

string

Internal CR unique ID for the transaction

memoPostId

string

For outbound push payments, ID of the original authorization on the account for the amount of the payment request

postingCode

string

The related CR system transaction status

posting

string

Posting status:  Pending, Posted, Failed, Canceled, Authorized, Processing

rejectionReason

string

OfacUnableToDetermine, OfacConfirmed, OfacUnconfirmed, Other

blockedReason

string

Ofac, Other

originator

object

Originator bank details

receiver

object

Receiver bank details

secCode

string

Standard Entry Class (SEC) codes required by Nacha for every ACH transaction. See values here.

description

string

Description of the payment. 10 character limit.

transactionType

string

Sending or requesting funds:

  • Push (originator is sending funds—debit)

  • Pull (originator is receiving funds—credit)

amount

integer

Dollar amount of payment in positive integral cents. For example, write $1.00 as 100.

serviceType

string

When the payment completes:

  • Standard (Payment effective the following business day. International payments must use this service type.)

  • SameDay (Payment effective same day, subject to certain constraints. See ACH overview.)

extendedDetails

object

ACH-specific details

iatDetails

object

Required if the SEC code is IAT. See here for more information about IAT.

Do not enter values for these attributes for any other SEC code.

addenda

string

Additional transaction-related information

effectiveDate

string

Effective entry date

reasonCode

string

Nacha return code. See values here.

reasonData

string

Data supporting the Nacha reason code

traceNumber

string

Unique ACH trace number for the transaction

settlementDate

string

Date payment will settle in the receiver's account

wasReturned

boolean

True if payment was returned, otherwise false.

wasCorrected

boolean

True if a payment is sent with bad info but the receiving FI fixes it and sends back the information (NOC), otherwise false.

holdDays

integer

For ACH pulls, allows defining a number of days to delay credit of funds to an account to mitigate fraud and NSF scenarios

previous

object

Previous payment details

original

object

Original payment details when a payment was returned or a NOC was sent.

Resending a payment after failure as a completely new request. The new payment cannot be linked to the failed payment.

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]

canceledAt

string

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

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]

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]

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

string

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]

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.

lastModifiedAt

string

Internal CR value. Date and time the database entry was last modified.

purpose

string

Reason for the ACH transfer. For internal use only. The data is not included with the outgoing ACH batch file.

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.

Copy

Sample response

{
    "id": "d2216084-4e30-4620-bcad-b0ca0126a228",
    "accountNumber": "2151546989",
    "referenceId": "A3343EHA7357",
    "paymentType": "Origination",
    "direction": "Outbound",
    "status": "Created",
    "source": "Api",
    "postingType": "Aggregate",
    "postingCode": "OK",
    "posting": "Authorized",
    "originator": {
        "routingNumber": "021214891",
        "accountNumber": "2151546989",
        "accountType": "Checking",
        "name": "Cross River Bank",
        "identification": "021214891"
    },
    "receiver": {
        "routingNumber": "021200339",
        "accountNumber": "6546543213",
        "accountType": "Checking",
        "name": "Glenn Quagmire",
        "identification": "XYZ123"
    },
    "secCode": "WEB",
    "description": "JulyFees",
    "transactionType": "Pull",
    "amount": 1,
    "serviceType": "SameDay",
    "extendedDetails": {
        "paymentType": "S"
    },
    "effectiveDate": "231130",
    "traceNumber": "021214892564114",
    "wasReturned": false,
    "wasCorrected": false,
    "holdDays": 0,
    "original": {
        "paymentId": "d2216084-4e30-4620-bcad-b0ca0126a228"
    },
    "createdAt": "2023-11-30T12:52:43.649396-05:00",
    "partnerId": "1e5d3f04-ae24-4af6-9e30-aecf012b99dd",
    "productId": "cc62e17f-5912-483e-9e42-aed30112fbb6",
    "lastModifiedAt": "2023-11-30T12:52:43.649396-05:00",
    "purpose": "sample payment"
}