Issued: 7th May | TB-1635

Barclays Group will migrate to CMA9 v4.
As part of this migration:
- Bank raw responses are changing
- PCC codes are changing
- Improved error messaging
- Changes to Balance Type Identifiers
All changes are available in the Sandbox for testing.
You may be impacted if:
- You are initiating payments with Barclays Group 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 Barclays Group 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 integration to rely on raw bank statuses, you must decide how to handle the ISO 20022 mappings.
| Token Payment Status | ISO 20022 Raw Bank Payment Statuses |
|---|---|
| PROCESSING | PDNG, RCVD, ACTC, PATC, ACCP, ACFC, ACSP, ACWC |
| SUCCESS | ACCC, ACSC, ACWP |
| DECLINED | BLCK, RJCT |
| CANCELLED | CANC (domestic scheduled payments) |
| Token Payment Status | ISO 20022 Raw Bank Payment Statuses |
|---|---|
| INITIATION_PROCESSING | PDNG, RCVD, ACTC, PATC, ACCP, ACFC, ACSP, ACWC |
| INITIATION_COMPLETED | ACCC, ACSC, ACWP |
| 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.
providerDetails.status- POST
/transfers - GET
/transfers/{transferId} - GET
/transfers
- POST
bankPaymentStatus- GET
/v2/payments - GET
/v2/payments/{paymentId}
- GET
bankVrpConsentStatus- POST
/vrp-consents - GET
/vrp-consents - GET
/vrp-consents/{id} - DELETE
/vrp-consents/{id}
- POST
bankVrpStatus- GET
/vrp-consents/{id}/payments - POST
/vrps - GET
/vrps - GET
/vrps/{id}
- GET
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.
You can find more information on the new PCCs here:
- POST
/token-request
- POST
/v2/payments
❗ Note:
If you do not send a PCC or send an incorrect PCC, your request will not fail. Token will ignore invalid PCC values and the field will be empty.
While PCC is not mandatory in CMA9 v4, it is recommended, as the Payment Context Code is a key transaction indicator and may be validated by the receiving bank.
| Existing Balance Types – v3 | New Balance Types – 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:
- Review your implementation for payment statuses, PCC handling, and balance type identifiers.
- Test your integration in the Sandbox environment.
- Speak with your implementation manager, or
- Contact us at support@token.io
21 May 2026
For any questions, concerns, or to discuss your integration, please speak with your implementation manager or contact:
support@token.io