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.

Name
Data type
Description
Applies to (Response type → PayLoadType or new_status)

PayLoadType

string

Identifies the event type for routing and filtering.

Chargebackach.status.chargeback

Returnedach.status.returned

Rejected: Authorization Declinedach.status.rejectedauthorizationdeclined

Rejected: Account Is Invalidach.status.rejectedaccountisinvalid

Rejected: Voidingach.status.rejectedvoiding

Rejected: Voidedach.status.rejectedvoided

Settledach.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.previous_status

string

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: VoidingREJECTED: 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?