Skip to content
Last updated

Notice of change - Starling bankId changing from 'starling' to 'ob-starling'

Issued: 15th June 2023 | TB-1162

Updated: 4th October 2023

Acceptance of the starling bankId by Token.io's CMA9 adapter has been extended to 14th November 2023 at clients' request.

Deprecation of the starling bankId will now take place on the 15th November 2023.

What's changing?

Token.io will be renaming the Starling bankId from starling to ob-starling.

This change will affect both AIS and PIS calls that use the bankId field.

The structure of responses for the following AIS endpoints will also change:

The structure of PIS responses using bankId will be unaffected.

What problem will this solve?

We are moving from a custom API to Starling’s OB standard API, bringing our data structures in line with all other CMA9 banks. This will necessitate an change in the structure of the AIS calls listed above.

The following example shows a GET /accounts response using the starling bankId and the old custom adapter.

GET {{BASE_URL}}/accounts response

{
    "accounts": [
        {
            "id": "a:H5uWWgPi1ZQNKKtKfFAqQGWGf31TxPixR747dk6jwkHe:ZhCLA7RBJupV4",
            "name": "Personal",
            "bankId": "starling",
            "accountFeatures": {
                "supportsInformation": true,
                "requiresExternalAuth": true,
                "supportsSendPayment": true,
                "supportsReceivePayment": true
            },
            "accountDetails": {
                "bic": "SRLGGB2L",
                "accountIdentifiers": [
                    {
                        "iban" : {
                            "iban" : "GBxxxxxxxxxxxxxxxxxxxx",
                        }
                    },
                    {
                        "gbDomestic" : {
                            "sortCode" : "123456",
                            "accountNumber" : "2XXXXXX2",
                        }
                    }
                ],
                "accountHolderName": "Jane Doe"
            }
        }
    ]
}

The next example shows a GET /accounts response using the ob-starling bankId and the new CMA9 adapter, note the providerAccountDetails required:

GET {{BASE_URL}}/accounts response

"accounts": [
        {
            "id": "Adwf3Na3a8Xsvh9NfJqdAguJqkgXCifRBdsoZYwKH5eM:qXTkpBDR8eTKCXfZp",
            "name": "Personal",
            "bankId": "ob-starling",
            "accountFeatures": {
                "supportsInformation": true,
                "requiresExternalAuth": true,
                "supportsSendPayment": true,
                "supportsReceivePayment": true
            },
            "accountDetails": {
                "providerAccountDetails" : {
                    "cma9AccountDetails" : {
                        "name" : "Josh Ray",
                        "accountType" : "PERSONAL_ACCOUNT",
                        "accountSubtype" : "CURRENT_ACCOUNT"
                    }
                },
                "accountIdentifiers": [
                    {
                        "gbDomestic" : {
                            "sortCode" : "123456",
                            "accountNumber" : "2XXXXXX2",
                        }
                    },
                    {
                        "iban" : {
                            "iban" : "GBxxxxxxxxxxxxxxxxxxxx",
                        }
                    },
                ],
                "accountHolderName": "Jane Doe"
            }
        }
    ]
}

The following example shows a GET /accounts/{accountId}/transaction/{transactionId} response using the starling bankId and the old custom adapter.

GET {{BASE_URL}}/accounts/{accountId}/transaction/{transactionId} response

{
    "transaction": {
        "id": "b6af7226-3e89-4711-9f4f-6dea572e39f7",
        "type: "CREDIT,
        "status": "SUCCESS",
        "amount": {
            "currency": "GBP",
            "value": "20.00",
        },
        "createdAtMs": "1681838388000",
        "metadata": {
            "country: "GB,
            "counterPartyType: "SENDER,
            "counterPartySubEntitySubIdentifier": "55397723",
            "categoryUid": "eb65cd57-ede1-4c1d-b176-43cdcca5911d",
            "spendingCategory": "INCOME",
            "source": "FASTER_PAYMENTS_IN",
            "counterPartyName": "John Doe",
            "counterPartySubEntityName": "",
            "counterPartySubEntityIdentifier": "040004",
            "updatedAt": "2023-04-18T17:19:48.354Z",
        },
        "providerTransactionDetails": {},
        "bankTransactionId": "b6af7226-3e89-4711-9f4f-6dea572e39f7"
    },
    "status": "SUCCESSFUL_REQUEST",
}

The next example shows a GET /accounts/{accountId}/transaction/{transactionId} response using the ob-starling bankId and the new CMA9 adapter, note the difference in metadata and providerTransactionDetails:

GET {{BASE_URL}}/accounts/{accountId}/transaction/{transactionId} response

{
    "transaction": {
        "id": "aa843365-b852-4d5d-8861-8040828af4c2",
        "type: "CREDIT,
        "status": "SUCCESS",
        "amount": {
            "currency": "GBP",
            "value": "150.00",
        },
        "description": "Sent from Monzo",
        "createdAtMs": "1610108348000",
        "metadata": {
            "providerAccountId": "eda14727-b061-4a40-be99-a913cbe6dece",
            "bookingStatus": "Booked",
            "proprietaryBankTransactionCode": "FASTER_PAYMENTS_IN",
            "valueDateTime": "2021-01-08T12:19:08Z",
            "dataSource": "CMA9",
            "merchantName": "Jane Doe",
        },
        "providerTransactionDetails": {
            "cma9ApiTransactionDetails": {
                "merchantDetails" : {
                    "merchantDetails" : "Jane Doe"
                }
            }
        },
        "bankTransactionCode" : {
            "proprietary" : {
                "code" : "FASTER_PAYMENTS_IN"
            }
        },
        "bankTransactionId": "aa843365-b852-4d5d-8861-8040828af4c2"
    },
    "status": "SUCCESSFUL_REQUEST",
}

This enhancement has the following advantages:

  • dynamic registration for all customers who use their own license (as opposed to manual, previously)

  • customers will benefit from Starlings OB version uplifts when relevant, such as v3.1.11 currently being released

  • improved ease of maintenance

Does this change affect you?

This change applies to you if you're using Token.io’s Account Information Service (AIS) and Payment Initiation Service (PIS) via API, and the starling bankId in your implementations.

What action do I need to take?

You must make changes to replace the starling bankId with the ob-starling bankId in your AIS and PIS endpoints.

Ensure your integration is able to consume and process AIS responses in the CMA9 format for Starling Bank.

When will this change apply to all impacted customers?

From the 3rd July 2023 all AIS and PIS calls will be routed to Starling’s OB standard API using the CMA9 adapter. After this date you'll notice a change in the structure of AIS consents using bankId (see examples above).

From the 3rd July to the 14th November the new adapter will accept both the starling bankId and the ob-starling bankId.

From 15th November 2023 the starling bankId will be deprecated and will no longer be accepted by the CMA9 adapter. From this date you must use the ob-starling bankId to ensure your AIS and PIS calls to Starling Bank are not affected.

Where can I get further information?

For assistance with the above and other operational aspects of the Token.io Account-to-Account Infrastructure, please contact Token.io Support.