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.
Common Notice of Change Types
Code | Reason | Description |
C01 | Incorrect Bank Transit Routing Number | Receiving DFI identifier is incorrect and should be changed. |
C02 | Incorrect Account Number | The account number is incorrect and needs to be corrected. |
C03 | Incorrect Transit & Account Number | Both the routing number and account number are incorrect. |
C04 | Incorrect Individual Name | The customer’s name is incorrect. |
C05 | Incorrect Transaction Code | Indicates a change from checking to savings (or vice versa). |
C06 | Incorrect Account Number and Code | Both the account number and the account type (checking/savings) are wrong. |
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 and Routing Numbers
NOC Response Code: C03
In some cases both the routing number and account number will be updated. In these situations 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. Additionally, the updated routing number will also be returned provided in the webhook. The updated routing number can be found in the accountAccessoryUpdated
field.
For a C03 NOC be sure to update both the token and the routing number with the new values provided in the webhook.
Here's an example webhook for a C03 notice of change with updated account and routing numbers:
{
"notificationId": 2541331,
"eventCode": "processing.noc-processed",
"eventDate": 1734540825000,
"dataType": "transaction",
"data": {
"objectType": "noc",
"tokenOriginal": "BCxxxxxxxxxxxxxxxx1479",
"accountTypeUpdated": null,
"sequenceNumber": 1,
"amount": 1066,
"dataType": "transaction",
"accountAccessoryUpdated": "123456789",
"originalTransactionCode": code8614527122,
"transactionId": 8612489411,
"responseCode": "C03",
"accountId": 12340001,
"originalTransactionId": 867597122,
"tokenUpdated": "BCxxxxxxxxxxxxxxxx3697",
"holderNameUpdated": null,
"responseMessage": "Due to a merger or consolidation, the transit/routing number must be changed; and account number structure is no longer valid"
}
}
For Updated Holder Names
NOC Response Code: C04
In some cases the name on the account has been changed and needs to be updated. In these situations Zift will return an updated holder name in the holderNameUpdated
field. This new token can be accessed through the NOC webhook in the tokenUpdated
field.
The updated holder name will be available in the NOC webhook. Integrations with Zift should store the updated holder name to be used in future sale
requests as the holderName
. Not using the correct holderName
tied to an account could potentially result in an ACH return.
Here's an example webhook for a C04 notice of change:
{
"notificationId": 2541331,
"eventCode": "processing.noc-processed",
"eventDate": 1734540825000,
"dataType": "transaction",
"data": {
"objectType": "noc",
"tokenOriginal": "BCxxxxxxxxxxxxxxxx1479",
"accountTypeUpdated": null,
"sequenceNumber": 1,
"amount": 1066,
"dataType": "transaction",
"accountAccessoryUpdated": "123456789",
"originalTransactionCode": code8614527122,
"transactionId": 8612489411,
"responseCode": "C03",
"accountId": 12340001,
"originalTransactionId": 867597122,
"tokenUpdated": "BCxxxxxxxxxxxxxxxx3697",
"holderNameUpdated": John Doe,
"responseMessage": "Due to a merger or consolidation, the transit/routing number must be changed; and account number structure is no longer valid"
}
}
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"
}
}
For Updated Account Numbers and Account Types
NOC Response Code: C06
In some cases both the account number and account type will be updated. In these situations 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. 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 C06 NOC the account type will also need to be updated.
The updated account type (checking or savings) will be available in the 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 number and 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": "C06",
"responseMessage": "Incorrect DFI account number & incorrect transaction code",
"accountTypeUpdated": "S",
"tokenUpdated": "BCxxxxxxxxxxxxxxxx1234",
"tokenOriginal": "BCxxxxxxxxxxxxxxxx4321"
}
}