ACH Object
Attributes
| Attribute | Type | Description |
|---|---|---|
| id | string | ID of the ACH object. |
| created_at | date-time | The ISO-8601 timestamp at which the ACH object was created. |
| updated_at | date-time | The ISO-8601 timestamp at which the ACH object was last updated. |
| status | string | The current status of the ACH object. Possible values: scheduled, processing, submitted, posted, canceled, under_review, approved, rejected, pending_return, returned. |
| amount | int64 | The amount of the transaction in cents. |
| amount_id | string | The ID of the Account object. |
| account_number_id | string | The ID of the Lead Bank Account Number object. |
| direction | string | Who is initiating the transaction. Possible values: - outgoing: You are sending an ACH transaction to a counterparty. - incoming: You are receiving an ACH transaction from a counterparty. |
| delivery_type | string | How fast you want the counterparty to receive the ACH. Possible values: - same_business_day: If the ACH request is submitted before the cutoff window with the same business day option, funds will settle on the same day. - next_business_day: Standard ACH processing, for funds to settle on the next business day. |
| transaction_type | string | ACH transaction type. Possible values: credit, debit. |
| sec_code | string | Standard Entry Class (SEC) code to use for this ACH object. Lead currently supports CCD, PPD, WEB, CIE, and TEL for outgoing ACH. |
| currency_code | string | A three-letter currency code as defined in ISO 4217. Possible value: USD. |
| statement_descriptor | string | The description you would like to appear on your customers’ statement. Maximum number of characters is 10. |
record_details (object)
| Attribute | Type | Description |
|---|---|---|
| company_name | string | The company that initiated the outgoing ACH. - For outgoing ACH, this value is set from the Account Number object. - For incoming ACH, this value is what we receive from the sender. |
| company_id | string | A 10-digit unique identifier used for identifying companies collecting payments via ACH debit. - For outgoing ACH, this value is set from the Account Number object. - For incoming ACH, this value is what we receive from the sender. |
| company_discretionary_data | string | Additional information from the ACH sender on incoming ACH. |
| effective_date | string | The date the ACH transaction is expected to settle with the financial institution. - For outgoing ACH, the date is set by Lead based on the delivery_type field. - For incoming ACH, this value is what we receive from the sender. |
| statement_date | string | Date by which funds must be posted to the counterparty’s account. |
| individual_id | string | The name of the individual you are sending funds to. Required for P2P payments. |
| receiver_name | string | The name of the receiver of funds. This field is set by the counterparty and may or may not be accurate. |
| descriptive_date | string | The date you would like displayed to the counterparty. Receiving financial institutions may utilize this field to display on the statement. |
| additional_information | string | Additional information for the ACH recipient. Not all banks will share this message with their end customer. |
| trace_number | string | The unique number assigned to every ACH entry by an ODFI, which identifies that entry within a specific ACH file. - For outgoing ACH, this is generated by Lead when we submit the ACH. - For incoming ACH, this value is what we receive from the sender. |
counterparty (object)
| Attribute | Type | Description |
|---|---|---|
| name | string | The name of the counterparty you are transacting with. |
| account_number | string | The account number for the bank account. |
| routing_number | string | The routing number for the bank account. This should be the ACH routing number, not the wire routing number. |
| account_type | string | The account type for the bank account. Possible values: checking, savings. |
returns (array of objects)
| Attribute | Type | Description |
|---|---|---|
| type | string | Type of the return record, determined by the respective return code. Possible values: return, dishonored_return, contested_return. |
| status | string | The current status of the ACH object. Possible values: scheduled, processing, submitted, posted, canceled, under_review, approved, rejected, pending_return, returned. |
| return_code | string | Nacha Return codes. Possible values: R01 - R85. |
| return_reason | string | Short description of the associated return code. |
| trace_number | string | The unique number assigned to this ACH return by the ODFI, which identifies the entry within a specific ACH file. |
reversal (object)
| Attribute | Type | Description |
|---|---|---|
| reversal_reason | string | Reason you want to initiate a reversal.duplicate: The ACH is a duplicate of another you’ve already submittedreceiver_incorrect: You’ve entered incorrect counterparty informationamount_incorrect: The payment amount is incorrectdebit_too_early: You’re debiting the counterparty too earlycredit_too_late: You’re crediting the counterparty too late |
| linked_ach_id | string | The ID of the original ACH transaction that is being reversed. |
rejection (object)
| Attribute | Type | Description |
|---|---|---|
| reason | string | Provides the reason code about why an ACH transfer was rejected before submission to the network. See rejection reason mapping below for possible values. |
| details | string | A short, human-readable string with more details about why the ACH was rejected. |
Rejection Reasons
| Reason | Details |
|---|---|
invalid_format | Invalid format. Please contact Lead for details. |
non_sufficient_funds | Insufficient funds. Balance result: [BALANCERESULT]. |
ofac_rejection | Please contact Lead for further details. |
per_transaction_limit_exceeded | Entry would exceed per transaction limit. Current limit value [LIMITVALUE]. |
previously_corrected | A previous ACH to the same counterparty was corrected (correction id = [ACHID]). |
processor_discretionary_decision | Please contact Lead for further details. |
related_prenote_exception | ACH entry cannot be created within 3 banking days of a prenote’s settlement date. (prenote id = [ACHID]). |
related_prenote_exception | Previous prenote to this counterparty (id = [ACHID]) was not accepted. |
return_untimely | Return is not within the proper return timeframe. |
reversal_rejection | Reversal rejected upon review. |
unexpected_change_code | Unexpected change code: [CHANGECODE]. |
unexpected_return_code | Unexpected return code: [RETURNCODE]. |
unexpected_routing_number | Invalid routing number provided. |
correction (object)
| Attribute | Type | Description |
|---|---|---|
| account_number | string | The updated account number for the counterparty. |
| routing_number | string | The updated routing number for the counterparty. |
| account_type | string | The updated account type for the counterparty. Possible values: checking, savings. |
metadata (object)
A set of key-value pairs that can be used to store additional information related to this object.Incoing ACH Transfers
Incoming ACH transfers (funds received from another party) contain a different set of fields compared to outgoing ACH transfers.Core Fields
- id
- created_at
- updated_at
- status
- amount
- account_id
- direction
- transaction_type
- sec_code
- currency_code
- statement_descriptor (may be
NULL)
record_details (object)
- company_name
- company_id
- company_discretionary_data (may be
NULL) - effective_date
- settlement_date
- individual_id (may be
NULL) - receiver_name (may be
NULL) - descriptive_date
- additional_information (may be
NULL) - trace_number
counterparty (object)
- name
- routing_number
returns (array of objects)
- type
- status
- return_code
- return_reason
- trace_number
correction (object)
At least one of the following fields will be included:- account_number
- routing_number
- account_type

