ACH Transaction Status Webhooks
The ACH transaction status webhooks notify you when the status of an ACH transaction changes, such as from SETTLED to CHARGEBACK.
These webhook response types include the following ACH transaction statuses:
The following table describes the payload fields in in each response type.
PayLoadType
string
Identifies the event type for routing and filtering.
Chargeback → ach.status.chargeback
Returned → ach.status.returned
Rejected: Authorization Declined → ach.status.rejectedauthorizationdeclined
Rejected: Account Is Invalid → ach.status.rejectedaccountisinvalid
Rejected: Voiding → ach.status.rejectedvoiding
Rejected: Voided → ach.status.rejectedvoided
Settled → ach.status.settled
Updated → ach.status.updated
Payload
object
Contains the details of the status update.
All response types
Payload.transaction_id
string
The unique identifier of the ACH transaction.
All response types
Payload.new_status
string
The updated status of the transaction.
All response types
Payload.amount
string
The transaction amount.
All response types
Payload.return_reason_code
string
The ACH return code that explains why the transaction was returned.
Returned → RETURNED
Updated → SETTLED /CHARGEBACK/REJECTED: AUTHORIZATION DECLINED/REJECTED: VOIDED/RETURNED/REJECTED: ACCOUNT IS INVALID/REJECTED: VOIDING
Payload.return_reason_description
string
A readable reason that matches the return code.
Returned → RETURNED
Updated → SETTLED /CHARGEBACK/REJECTED: AUTHORIZATION DECLINED/REJECTED: VOIDED/RETURNED/REJECTED: ACCOUNT IS INVALID/REJECTED: VOIDING
Payload.rejection_reason_code
string
The ACH rejection/return code that explains why the transaction was rejected.
Rejected: Authorization Declined → REJECTED: AUTHORIZATION DECLINED
Rejected: Account Is Invalid → REJECTED: ACCOUNT IS INVALID
Rejected: Voiding → REJECTED: VOIDING
Rejected: Voided → REJECTED: VOIDED
Chargeback → CHARGEBACK
Updated → SETTLED /CHARGEBACK/REJECTED: AUTHORIZATION DECLINED/REJECTED: VOIDED/RETURNED/REJECTED: ACCOUNT IS INVALID/REJECTED: VOIDING
Payload.rejection_reason_description
string
A readable reason that matches the rejection/return code.
Rejected: Authorization Declined → REJECTED: AUTHORIZATION DECLINED
Rejected: Account Is Invalid → REJECTED: ACCOUNT IS INVALID
Rejected: Voiding → REJECTED: VOIDING
Rejected: Voided → REJECTED: VOIDED
Chargeback → CHARGEBACK
Updated → SETTLED /CHARGEBACK/REJECTED: AUTHORIZATION DECLINED/REJECTED: VOIDED/RETURNED/REJECTED: ACCOUNT IS INVALID/REJECTED: VOIDING
Payload.timestamp
string
The date in YYYY-MM-DD format and UTC time when the status changed.
All response types
Payload.merchant_id
string
The unique identifier of the merchant associated with the transaction.
All response types
Payload.currency
string
The three‑letter currency code.
All response types
Payload.settlement_date
string
The date when the transaction was settled, in YYYY-MM-DD format.
Settled → SETTLED
Last updated
Was this helpful?

