What is a Notice of Change and how to handle them.
A Notification of Change (NOC) in ACH payment processing is an electronic notification sent by a receiving bank to the originating bank or business to inform them of updated or corrected account information for ACH transactions. The purpose of a NOC is to ensure that future ACH payments are routed correctly, reducing the risk of payment delays or errors.
Key points about NOCs
-
Common Scenarios
- Updates to account numbers or routing numbers.
- Changes in account types (e.g., from checking to savings).
- Name corrections on accounts.
-
Process:
- The receiving bank detects outdated or incorrect information during transaction processing.
- A NOC is generated and sent back to the originator (Zift), usually via the ACH network.
- Zift is required to make the necessary updates before the next payment.
-
Compliance:
- Businesses must act on NOC details within a set timeframe .
- This ensures compliance with ACH network rules and prevents recurring errors.
NOCs help streamline ACH payment systems, improve efficiency, and maintain accuracy in financial transactions.
How to Handle NOCs
Notices of changes are best handled through Zift webhook notifications.
Please contact us if you need help setting up your webhooks.
For Updated Account Numbers
NOC Response Code: C01
When an account number is updated Zift will create a new token with the updated account number. This new token can be accessed through the NOC webhook in the tokenUpdated
field. For convenience, the original token can be found in the tokenOriginal
field, making it easy to cross-reference.
Here's an example webhook for an updated account number.
{
"notificationId": 2541341,
"eventCode": "processing.noc-processed",
"eventDate": 1734540851000,
"dataType": "transaction",
"data": {
"objectType": "noc",
"accountId": 1234001,
"transactionId": 8612676721,
"originalTransactionId": 8612315711,
"originalTransactionCode": "123456789",
"sequenceNumber": 1,
"amount": 2500,
"responseCode": "C01",
"responseMessage": "Account number is incorrect or is formatted incorrectly",
"tokenUpdated": "BCxxxxxxxxxxxxxxxx1234",
"tokenOriginal": "BCxxxxxxxxxxxxxxxx4321"
}
}
For Updated Routing Numbers
NOC Response Code: C02
Routing numbers are submitted in the accountAccessory
field in the transaction sale
request. If we receive a NOC with an updated routing number we will deliver a webhook that will contain the updated routing number so you can update the current value stored in your system for future transactions.
The updated routing number can be found in the NOC webhook under the accountAccessoryUpdated
field. Be sure to update future transactions by substituting the old routing number with the new routing number as the accountAccessory
.
Here's an example webhook for an updated routing number.
{
"notificationId": 2541331,
"eventCode": "processing.noc-processed",
"eventDate": 1734540825000,
"dataType": "transaction",
"data": {
"objectType": "noc",
"accountId": 1234001,
"transactionId": 8612676711,
"originalTransactionId": 8612627122,
"originalTransactionCode": null,
"sequenceNumber": 1,
"amount": 14000,
"responseCode": "C02",
"responseMessage": "Due to merger or consolidation, a once valid transit/routing number must be changed",
"accountAccessoryUpdated": "123456789",
"tokenOriginal": "BCxxxxxxxxxxxxxxxx5678"
}
}
For Updated Account Types
NOC Response Code: C05
The account type indicates whether the bank account being debited or credited is a savings or checking account and is indicated in the accountType
field of a sale
request. If we receive a NOC with an updated account type we will deliver a webhook that will contain the updated account type so you can update the current value stored in your system for future transactions.
The updated account type (checking or savings) will be available in the NOC webhook in the accountTypeUpdated
field. Integrations with Zift should store the updated account type to be used in future transactions as the accountType
.
Here's an example webhook for an updated account type, possible values are S
for savings and C
for checking.
{
"notificationId": 2516541,
"eventCode": "processing.noc-processed",
"eventDate": 1734118331000,
"dataType": "transaction",
"data": {
"objectType": "noc",
"accountId": 1234001,
"transactionId": 8612635151,
"originalTransactionId": 8612598981,
"originalTransactionCode": "3255561",
"sequenceNumber": 1,
"amount": 5000,
"responseCode": "C05",
"responseMessage": "Incorrect Transaction Code. Change from checking to savings or savings to checking.",
"accountTypeUpdated": "S",
"tokenOriginal": "BCxxxxxxxxxxxxxxxx3456"
}
}