Issued: 17th July 2023 | TB-1136

The changes detailed in this Technical Bulletin will become effective in conjunction with TB-1069 - Changes to id format for Single Immediate Payments and Future Dated Payments
We're making the following improvements to Token.io's platform:
New validation rules for the POST /token-requests call
We're introducing the following validation rules:
If you set a source, you must have the correct account identifiers for the chosen payment rail, if the
destinationtype requires it, e.g., forsepa, you should includeibanandbic(optional); forfasterPayments, you should includeaccountNumberandsortCode.If the account identifier in the
requestPayload.transferBody.instructions.transferDestinationsobject is missing or does not match the specified payment rail, Token.io will return an error.The
currencycode is checked to ensure it is a 3 letter code corresponding to ISO-4217.The
lifetimeAmountis checked to ensure that it's positive.The payment type (SIP/FDP) is checked to determine whether the bank supports it.
An
INVALID_ARGUMENTerror is returned when a bank is not found or does not support a feature.An
INVALID_ARGUMENTerror is returned when anibanis invalid.Only the first entry in the
transferDestinationslist will be sent to the bank.
Recommendations for the POST /token-requests call
Token.io also recommends the following to minimize the number of errors as a result of passing incorrect values in the POST /token-requests call
Avoid using the Token.io callback url if you're setting your own callback url for the
requestPayload.redirectUrlfield.The
requestPayload.refIdandrequestPayload.transferBody.remittanceReferencefields should not exceed 18 characters.The
descriptionfield should not exceed 140 characters. Many banks have constraints on the description field that are less than 140 characters. You should check the GET /banks call for these constraints.
Please refer to v1 fields no longer supported for more information on fields that will no longer be supported.
From the 17th October 2023, if a deprecated field is populated its value might be ignored and when a TokenRequest is retrieved, the field might be not be populated, even if it has been populated in the POST /token-requests request.
Deprecated enum values will be ignored for optional fields and an error might be thrown for mandatory fields.
In addition, the following will apply:
The
payloadSignaturesobject in the token that is returned in the response of GET /tokens/{token_id} will no longer be populated.The
payloadSignaturesobject in the transfers that are returned in the responses of POST /transfers , GET /transfers and GET /transfers/{tranfer_id} will no longer be populated.GET /tokenswill only be supported fortype = ACCESS;type = TRANSFERis deprecated and will no longer be supported.The following fields in the transfers that are returned in the responses of POST /transfers , GET /transfers and GET /transfers/{tranfer_id} will no longer be populated:
orderIdmethodscaStatus
If you're using any of the deprecated fields for the POST /token-requests call in the requestPayload object, you'll need to map to alternative fields.
| Deprecated field | Alternative field |
|---|---|
transferBody.instructions.source.account | transferBody.instructions.source.accountIdentifier |
transferBody.destinationstransferBody.instructions.destinations | transferBody.instructions.transferDestinations |
transferBody.amount | transferBody.lifetimeAmount |
transferBody.instructions.metadata.merchantCustomerId | transferBody.instructions.metadata.providerTransferMetadata.cma9TransferMetadata.risk.merchantCustomerIdentification |
These changes will help improve your integration to Token.io and reduce the number of potential failures.
This change will affect you if you're using any of the fields above that are no longer supported.
This change will affect any TPP using Token.io's v1 endpoints.
If you are using any of the deprecated fields you'll need to map to alternative fields. Check for backward compatibility.
TPPs will also need to make sure they validate fields along the same lines as Token.io and can handle any validation errors returned by Token.io.
This change will become effective from 17th October 2023.
For assistance with the above and other operational aspects of the Token.io Account-to-Account Infrastructure, please contact Token.io Support.