Issued: TODO: publication date
Tech Bulletin ID: TBD

Nationwide will migrate to CMA9 v4.
Changes associated with CMA9 v4:
PIS:
- Bank raw responses are changing
- PCC codes are changing
- Improved error messaging
AIS:
- Changes to Balance Type Identifiers
All changes are available on Sandbox for testing.
You may be impacted if:
- You are initiating payments with banks using the UK Open Banking API standard, and your PIS integration relies on raw bank statuses.
- You depend on specific bank error messages in your processes.
You are not impacted if:
- You do not rely on raw bank responses.
You may be impacted if:
- You are making AIS calls to banks using the UK Open Banking API standard, and you validate balance types in your AIS integration.
You are not impacted if:
- You do not validate balance types in your AIS integration.
The bankPaymentStatus field will now return ISO 20022 standard payment status codes.
Note: Token’s own status codes will remain unchanged.
If you have designed your implementation for raw bank statuses, you must decide how to handle the ISO 20022 version.
How Token handles v4 statuses for APIv1:
| Token Payment Status | ISO 20022 Raw Bank Payment Statuses |
|---|---|
PROCESSING | PDNG, RCVD, ACTC, PATC, ACCP, ACFC, ACSP, ACWC, ACWP |
SUCCESS | ACCC, ACSC |
DECLINED | BLCK, RJCT |
CANCELLED | CANC (domestic scheduled payments) |
How Token handles v4 statuses for APIv2:
| Existing Payment Statuses – v3 | New Payment Statuses – v4 |
|---|---|
INITIATION_PROCESSING | PDNG, RCVD, ACTC, PATC, ACCP, ACFC, ACSP, ACWC, ACWP |
INITIATION_COMPLETED | ACCC, ACSC |
INITIATION_DECLINED | BLCK, RJCT |
INITIATION_DECLINED | CANC (domestic scheduled payments) |
Bank error messages will be updated to match the CMA9 v4 specification for improved clarity and consistency.
Affected Endpoints:
V1 API
providerDetails.statusPOST /transfersGET /transfers/{transferId}GET /transfers
V2 API
bankPaymentStatusGET /v2/paymentsGET /v2/payments/{paymentId}
VRP API
bankVrpConsentStatusPOST /vrp-consentsGET /vrp-consentsGET /vrp-consents/{id}DELETE /vrp-consents/{id}
bankVrpStatusGET /vrp-consents/{id}/paymentsPOST /vrpsGET /vrpsGET /vrps/{id}
Token.io currently populates the PCC field with a default value when none is provided. However, with v4, this will no longer occur.
If you would like to include a PCC, you must provide one as part of your request.
More information on PCCs can be found in our documentation for v1 and v2.
Affected Endpoints:
V1 API
POST /token-request
V2 API
POST /v2/payments
Note:
If you decide not to send a PCC or send an incorrect PCC, your request will not fail. Token will ignore any incorrect PCC, and the field will be empty.
While PCC is not mandatory currently or in CMA9 v4, it is recommended to include it, as the Payment Context Code is a key transaction indicator that may be validated by the receiving bank.
| Existing Balance Type Identifier – v3 | New Balance Type Identifier – v4 |
|---|---|
ClosingAvailable | CLAV |
ClosingBooked | CLBD |
ForwardAvailable | FWAV |
Information | INFO |
InterimAvailable | ITAV |
InterimBooked | ITBD |
OpeningAvailable | OPAV |
OpeningBooked | OPBD |
PreviouslyClosedBooked | PRCD |
Expected | XPCD |
If you are impacted, to ensure a smooth transition we strongly recommend that you:
- Speak with your implementation manager, or
- Contact us at: support@token.io
November 12, 2025
For any questions, concerns, or to discuss your integration, please speak with your implementation manager or contact:
support@token.io