Skip to content
Last updated

Open Banking Improvements: CMA9 v4 API – Lloyds Banking Group

Issued: 15th May | TB-1637

AIS/PIS


What's Changing?

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.


Does This Change Affect You?

Payment Initiation Services (PIS)

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.

Account Information Services (AIS)

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.

Changes in Detail

Payment Initiation Services

Standardised Payment Statuses

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.

How Token Handles v4 Statuses for APIv1

Token Payment StatusISO 20022 Raw Bank Payment Statuses
PROCESSINGPDNG, RCVD, ACTC, PATC, ACCP, ACFC, ACSP, ACWC
SUCCESSACCC, ACWP, ACSC
DECLINEDBLCK, RJCT
CANCELLEDCANC (domestic scheduled payments)

How Token Handles v4 Statuses for APIv2

Token Payment StatusISO 20022 Raw Bank Payment Statuses
INITIATION_PROCESSINGPDNG, RCVD, ACTC, PATC, ACCP, ACFC, ACSP, ACWC
INITIATION_COMPLETEDACCC, ACWP, ACSC
INITIATION_DECLINEDBLCK, RJCT
INITIATION_DECLINEDCANC (domestic scheduled payments)

Consistent Error Messaging

Bank error messages will be updated to match the CMA9 v4 specification for improved clarity and consistency.

Affected Endpoints

V1 API
  • providerDetails.status
    • POST /transfers
    • GET /transfers/{transferId}
    • GET /transfers
V2 API
  • bankPaymentStatus
    • GET /v2/payments
    • GET /v2/payments/{paymentId}
VRP API
  • bankVrpConsentStatus

    • POST /vrp-consents
    • GET /vrp-consents
    • GET /vrp-consents/{id}
    • DELETE /vrp-consents/{id}
  • bankVrpStatus

    • GET /vrp-consents/{id}/payments
    • POST /vrps
    • GET /vrps
    • GET /vrps/{id}

Handling of PCC Codes

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:

Affected Endpoints

V1 API
  • POST /token-request
V2 API
  • 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.


Account Information Services

Changes to Balance Types

Existing Balance Types – v3New Balance Types – v4
ClosingAvailableCLAV
ClosingBookedCLBD
ForwardAvailableFWAV
InformationINFO
InterimAvailableITAV
InterimBookedITBD
OpeningAvailableOPAV
OpeningBookedOPBD
PreviouslyClosedBookedPRCD
ExpectedXPCD

What Action Do I Need to Take?

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

When Will This Change Apply to All Impacted Customers?

19 May 2026


Where Can I Get Further Information?

For any questions, concerns, or to discuss your integration, please speak with your implementation manager or contact:
support@token.io