Issued: 15th May | TB-1637

Lloyds Banking Group (LBG) 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 on Sandbox for testing.
You may be impacted if:
- You are initiating payments with LBG 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 LBG 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, ACWP, ACSC |
| 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, ACWP, 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.
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 defaulted value when no value is provided. However, with v4, we will no longer do this.
You can find more information on the new PCCs here:
- POST
/token-request
- POST
/v2/payments
❗ Note: If you decide to not send a PCC or send an incorrect PCC, your request will not fail. Token will ignore any incorrect PCC provided, and the field will be replaced with the default value TransferToThirdParty. PCC is recommended to be included as part of the request as Payment Context Code is a mandatory field of LBG API.
| 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
19 May 2026
For any questions, concerns, or to discuss your integration, please speak with your implementation manager or contact:
support@token.io