Version control
For v4.0.1 the following approach has been adopted for identifying changes:
- Known Issues (opens new window) - these are tagged with the KI identifier, e.g. [v40_KI45]
- Change Requests (opens new window) - these are tagged with the CR number used in the consultations, e.g. [CR4a]
- EAG/Consultation items - Items included in the consultations are tagged with an identifier representing the consultation period they were introduced, e.g. [v4.0.1 RC 1]
- Feedback remediation - Technical errata and other minor corrections identified by participants or OBL during the Advanced Information period for Release Candidates 1 and 2 with an appropriate identifier for internal OBL traceability e.g. [CDRW-5006]
Consultations:
- v4.x.x Consultation 1 (opens new window)
- v4.0.1 Draft 1 (opens new window)
- v4.0.1 Release Candidate 1 (opens new window)
- v4.0.1 Release Candidate 2 (opens new window)
# v4.0.1 - Unreleased
# Added
- [v40_KI45] Added LWMH, LXMH, & TWYR to Frequency Examples in PIS Domestic Standing Order consents & AIS Standing Orders
- [v40_KI45] Added Frequency Examples table to PIS International Standing Order Consents
- [CDRW-4937] Added example of query string
date-timewhere only the Date is required. - [CDRW-5038] Added text to Date Formats (opens new window) section advising on decimal precision limit of 5, as agreed in TDA Decision 284
- [CDRW-5039] Added new Days of the Week (opens new window) section to Date Formats advising of ISO-8601 alignment and providing a table of week days and ordinal values as discussed at TDA on 2026-03-04
- [CDRW-5057] Added
OBRemittanceInformation2definition and Data Dictionary to AIS Standing Orders page (opens new window) - [v4.x.x Consultation 1] Added a note regarding the use of
ExternalPaymentTransactionStatus1Codevalues inpayment-detailsendpoints in PIS (opens new window) and Domestic VRPs (opens new window) - [v4.x.x Consultation 1] Optional Rate Limit Headers (opens new window) added.
- [v40_KI29]
NumberOfPaymentshas been restored to the following classes and guidance advising that TPPs should refer to ASPSP developer portals for further information on whetherNumberOfPaymentsis supported has been added to the pages above the data dictionaries: - [v40_KI28] The following text has been added to
OBMandateRelatedInformation1/Frequency/Typeon the Account and Transaction API Profile (opens new window) and Payment Initiation API Profile (opens new window) pages:
For compatibility with v3, an ASPSP may choose to optionally support legacy v3 regex patterns in this field.
TPPs should refer to ASPSP developer portals for further information on whether legacy values are supported, alongside any additional information relevant to MandateRelatedInformation usage.
- [V4_KI1]
OBCashAccountDebtorWithNamehas been added to: - [CR7] Clarification on the usage of the term 'optional fields' (opens new window) in reference to Conditional fields.
- [v4.x.x Consultation 1] An overarching Events Release Management (opens new window) section has been introduced to the Event Notification API Profile
- [v4.x.x Consultation 1]
OBReferredDocumentInformationhas been split out fromOBRemittanceInformation2and added to the following pages: - [v4.x.x Consultation 1] Added additional guidance to POST /file-payment-consents/{ConsentId}/file (opens new window):
- ASPSPs should document accepted file types on their developer portal.
- ASPSPs who accept the UK.OBIE.PaymentInitiation.4.0 file type should specify which payload schemas they accept as payload structures vary across payment types.
- E.g. An ASPSP accepting domestic, international and domestic standing orders via file payment should explicitly specify support for these 3 payload schemas on their developer portal.
- [v4.x.x Consultation 1] Added a Release Management (opens new window) section to the Variable Recurring Payments API Profile
- [CR2] Introduced a new OBIntermediaryAgent (opens new window) class which can appear up to 3 times in payload as
IntermediaryAgent1,IntermediaryAgent2andIntermediaryAgent3.- This is used in OBReadTransaction6/Data/Transaction (opens new window)
- Returning these fields requires use of the
ReadTransactionDetailpermission and the Permission Codes table (opens new window) has been updated accordingly.
- [CR9] Added the following guidance to the Transactions notes (opens new window):
- TPPs should refer to ASPSP developer portals for information on whether individual Bacs transactions are available in the Transactions endpoint.
- [v4.x.x Consultation 1] Added the following note to File Payments (opens new window):
- TPPs should refer to ASPSP developer portals for information on which File Payment endpoints are available, specification of accepted file format(s) and information on File Payment statuses.
- [CR7] Clarified how Mandatory (opens new window)
and Conditional (opens new window)
fields are represented in the Data Dictionaries.
- Mandatory fields are represented as 1..1 or 1..* in the Data Dictionary Occurrence column and UML diagrams.
- Conditional fields are represented as 0..1 or 0..* in the Data Dictionary Occurrence column and UML diagrams
- [CR8] Added guidance to the Transaction page (opens new window) for returning Counterparty information in the
TransactionInformationfield. - [v4.x.x Consultation 1]
ReadStandingOrdersBasicandReadStandingOrdersDetailadded to overarching Permission Codes list (opens new window)
# Changed
- [CDRW-4965] Guidance on Timezone inclusion in the Filtering section (opens new window) of the Transactions page has been updated from "Timezone may be included in the filter request, but must be ignored by the ASPSP." to "Timezone must not be included in the filter request."
- [CDRW-5040] - added some missing bold formatting to
mustin the Date Formats (opens new window) and Resource URI Path Structure (opens new window) sections. - [CDRW-5050] Improved formatting of regex patterns by wrapping in backticks for code formatting visual:
v4.0.1/profiles/account-and-transaction-api-profilev4.0.1/profiles/payment-initiation-api-profile
- [CDRW-5051] Improved blank space encoding and table cell spacing:
v4.0.1/profiles/account-and-transaction-api-profilev4.0.1/profiles/payment-initiation-api-profile
- [CDRW-4913] Improved JSON syntax of example in
v4.0.1/profiles/account-and-transaction-api-profile - [CDRW-4948] Description for
OBReadStatement2/Data/Statement/StatementFee/RateTypechanged to "This code indicates the specific type of fee rate (e.g., AER, EAR)" - [CDRW-4948] Description for
OBReadStatement2/Data/Statement/StatementInterest/RateTypechanged to "This code specifies the type of interest (e.g., BOE Base Rate, Fixed Rate, Gross)" - [CDRW-4937] Amended description of query string
date-timeusage to clarify how to represent values where only theDatecomponent is required. - [CDRW-5054] Updated Payment Initiation Release Management (opens new window) section to consistently reference ConsentId in the consent section.
- [CDRW-5055] Moved the initial File Payment status information to the
POST /file-payments(opens new window) section. - [v4.0.1 Draft 1] Updated the relevant
OBInternalConsentStatus1Codecodeset references throughout PIS response data dictionaries, to use separated codesets:- Changed to
OBInternalConsentStatus2Codein:- Domestic Payment Consent (opens new window)
- Domestic Scheduled Payment Consent (opens new window)
- Domestic Standing Order Consent (opens new window)
- International Payment Consent (opens new window)
- International Scheduled Payment Consent (opens new window)
- International Standing Order Consent (opens new window)
- Changed to
OBInternalConsentStatus3Codein:
- Changed to
- [v4.x.x Consultation 1] Remap
ReferredDocumentAmountfromInt32toOBActiveCurrencyAndAmount_SimpleTypeinOBRemittanceInformation2located in PIS (opens new window), VRP (opens new window), and AIS (Standing Orders) (opens new window) - [v4.0.1 Draft 1] Updated the relevant
ExternalPaymentTransactionStatus1Codecodeset references to use separate codesets:- Changed to
ExternalPaymentTransactionStatus2Codein: - Changed to
ExternalPaymentTransactionStatus3Codein: - Changed to
ExternalPaymentTransactionStatus4Codein: - Changed to
ExternalPaymentTransactionStatus5Codein:
- Changed to
- [v4.x.x Consultation 1] Event Notification Resources (opens new window) are now listed under the Event Notification API (opens new window) section.
- [v4.x.x Consultation 1] Meta (opens new window) has been reclassified as conditional.
- [v4.x.x Consultation 1] Links (opens new window) has been reclassified as conditional.
- [v4.x.x Consultation 1] The Multiple Authorisation (opens new window) text has been updated to include the full set of values for
AuthorisationType(Single, Multiple or Any). - [v4.x.x Consultation 1] TPPs and ASPSPs must now verify payload signatures (opens new window) - previously this was should.
- [V4_KI1] VRP instance of
OBCashAccountDebtorWithName/Namemax size has increased from 70 to 350 to align with other areas of the spec and is no longermandatory. - [V4_KI1] The following classes have been updated to use
OBCashAccountDebtorWithNameinstead ofOBCashAccount6:- OBReadTransaction6/Data/Transaction/DebtorAccount (opens new window)
- OBFundsConfirmationConsent1/Data/DebtorAccount (opens new window)
- OBDomestic2/DebtorAccount (opens new window)
- OBDomesticScheduled2/DebtorAccount (opens new window)
- OBDomesticStandingOrder3/DebtorAccount (opens new window)
- OBFile2/DebtorAccount (opens new window)
- OBInternational3/DebtorAccount (opens new window)
- OBInternationalScheduled3/DebtorAccount (opens new window)
- OBInternationalStandingOrder4/DebtorAccount (opens new window)
- [CR7] The 'Optional Fields' section describing changes to payloads when a field has no value has been renamed to Conditional Fields (opens new window)
- [v4.x.x Consultation 1]
OBRemittanceInformation2/Structured/ReferredDocumentInformationupdated fromArraytoArray of OBReferredDocumentInformationon the following pages: - [v4.0.1 Draft 1]
OBReferredDocumentInformation/LineDetails(previously displayed as part of theOBRemittanceInformation2class) has been updated to have a maximum string length of 2048 characters on the following pages: - [v40_KI11] Removed incorrect File Payment Status codes and replaced with guidance that the initial Status must be
PDNG(opens new window) - [v40_KI47] Replaced incorrect File Payment State Model diagram (opens new window).
- [v40_KI47] Updated File Payment Multiple Authorisation state model guidance (opens new window) to use correct status codes.
- [v4.x.x Consultation 1] Corrected both the Domestic (opens new window) and International (opens new window) Scheduled Payment state diagrams.
- [CDRW-4476] Updated ISO 20022 text (opens new window) to replace references to draft standards with final standards such as the
Regulatory Technical Standards on strong customer authentication - [v40_KI20] Replaced 'ReceivedCreditTransfer' and 'DomesticCreditTransfer' with 'RCDT' and 'DMCT' in usage examples (Transactions - v4.0.1 (opens new window))
- [v40_KI16] Replaced AWAU with AWAF for Multiple Authorisation in File Payments (File Payments - v4.0.1 (opens new window))
- [CDRW-4828] Added clarification to PointInTime in the Data Dictionary to note that negative numbers are permitted (Payment Initiation API Profile - v4.0.1 (opens new window))
# Removed
- [CDRW-4758] Removed incorrect
OBInternalPermissions1Codecodeset references from the following locations:- GET /domestic-payment-consents/{ConsentId} (opens new window)
- GET /domestic-standing-order-consents/{ConsentId} (opens new window)
- GET /file-payment-consents/{ConsentId}/file (opens new window)
- GET /international-scheduled-payment-consents/{ConsentId}/funds-confirmation (opens new window)
- GET /international-standing-order-consents/{ConsentId} (opens new window)
- [v4.0.1 Draft 1] Removed invalid reference to
OBExternalConsentProprietaryCodecodeset in GET /domestic-standing-order-consents/{ConsentId} (opens new window) - [CDRW-4888] Removed
Signed Responsefrom the Endpoints Table (opens new window) forPOST /file-payment-consents/{ConsentId}/file. - [V4_KI40] The Release Management section has been removed from both Callback URL API Profile (opens new window) and Event Notification Subscription API Profile (opens new window). [V4_KI40] The top level Event Notification API Profile Release Management (opens new window) should be used instead.
- [v40_KI37] Removed Risk from the DomesticConsent Data Dictionary (Domestic Payments Consents - v4.0.1 (opens new window))
# Fixed
- [CDRW-5044] Corrected spelling errors across multiple documentation files:
- Fixed "infromation" to "information" in Accounts
- Fixed "duplicaton" to "duplication" in Transactions
- Fixed "Occurence" to "Occurrence" in table headers (5 instances across confirmation-of-funds-api-profile, account-and-transaction-api-profile, payment-initiation-api-profile, Parties, and domestic-payment-message-formats)
- Fixed "Retrive" to "Retrieve" in sequence diagrams (3 instances across event-notification-subscription-api-profile, event-notification-api-profile, and callback-url-api-profile)
- Fixed "Segmeent" to "Segment" in other-product-data-model
- Fixed "cant" to "cannot" in other-product-data-model
- [CDRW-5049] Fix incorrect
OBActiveCurrencyAndAmount_SimpleTyperegexes from^\d{1,13}$\|^\d{1,13}\.\d{1,5}$->^\d{1,13}$|^\d{1,13}\.\d{1,5}$(removed incorrect\). - [CDRW-5052] Fixed broken GitHub url link in table
docs/v4.0.1/profiles/payment-initiation-api-profile - [CDRW-5050] Added missing ^...$ wrappers to regex
v4.0.1/profiles/account-and-transaction-api-profilev4.0.1/profiles/payment-initiation-api-profilev4.0.1/profiles/vrp-profile
- [CDRW-5065] Transactions filtering example incorrectly showed
&as& - [v40_KI16] Updated Multiple Authorisation tables to correctly list
AWAFinstead ofAWAU. - [v40_KI20] Fixed
BankTransactionCodeexamples inTransactions - [CDRW-5073] Fixed CodeSet references and corrected
payment-detailsstatus code lists in PISP documentation:- Fixed incorrect
ExternalPaymentTransactionStatus1CodeCodeSet reference fromISO_External_CodeSet/OB_External_CodeSettoOB_Internal_CodeSetin File Payments (opens new window), International Payments (opens new window), and International Standing Orders (opens new window) - Corrected
payment-detailsstatus code lists to include missing codes and align ordering in Domestic Standing Orders (opens new window), File Payments (opens new window), and International Standing Orders (opens new window) - Corrected
POST /file-paymentsusage example response to show initial status asPDNG(was incorrectlyRCVD) in File Payments (opens new window)
- Fixed incorrect
- [CDRW-5056] Fixed list formatting in transaction permissions code (opens new window)
- [CDRW-5016 & CDRW-5015] Fixed the table of contents links on all the v4.0.1 pages.
- [v40_KI48] OBReadStatement2/Data/Statement/StatementInterest/RateType was incorrectly listed as using
OBInternalStatementInterestType1Code, this has been corrected toOBInternalStatementInterestRateType1Code - [CDRW-4902] Fixed incorrect codeset reference for
StatusReasonCodefromOBInternalPermissions1CodetoOBExternalStatusReason1Codein the response data dictionaries for the following locations:- Domestic Standing Orders (opens new window)
- International Payments (opens new window)
- International Scheduled Payment Consents (opens new window)
- International Scheduled Payments (opens new window)
- International Standing Order Consents (opens new window)
- International Standing Orders (opens new window)
- [CDRW-4894]
OBActiveCurrencyAndAmount_SimpleTyperegex pattern was not displaying correctly for the following fields on Payment Initiation API Profile (opens new window) and Variable Recurring Payments API Profile (opens new window).- OBCharge2/Amount/Amount
- OBRemittanceInformation2/Structured/ReferredDocumentAmount
- OBRegulatoryReporting1/Details/Amount/Amount
- [v40_KI35] Corrected the dates shown in the Examples of Periodic Limits (Examples 2 and 3) VRP Example 2 (opens new window) and VRP Example 3 (opens new window)
- [v40_KI19 and others] Addressed various typos:
- Added \ to the Pattern for Phone and Mobile in the Data Dictionary (opens new window)
- Added text to Overview re conditional Parties endpoints and fields, explaining what ASPSPs must do if they have implemented the /accounts/{AccountId}/parties' endpoint Overview (opens new window)
- Corrected typo in Release Management from 'create don' to 'created on' Release Management (opens new window)
- Corrected typo (missing a 'with') on Release Management (opens new window)
- Corrected class from OBWritePaymentDetailsResponse1 to OBWritePaymentDetails1 (opens new window)
- Corrected Codeset for ExternalPaymentTransactionStatus1Code from ISO_External_CodeSet to OB_Internal_CodeSet Data Dictionary (opens new window)
- [v4.x.x Consultation 1] Fixed PaymentContextCode in 2 examples from 'TransferToSell' to 'TransferToSelf' Usage Examples (opens new window)
- [CDRW-4714] Fixed the link to Permissions information across Transactions (opens new window), Accounts (opens new window) and Accounts & Transactions (opens new window) (AISP Resources and Data Models - v4.0.1 (opens new window))
- [v4.x.x Consultation 1] Corrected the wording in the Permissions table re ReadPAN Permissions Table (opens new window)
- [CDRW-4806] Added additional text to POST/domestic-payments to clarify the approach to status changes (applied to Domestic Payments, Domestic Scheduled Payments, Domestic Standing Orders, International Payments, International Scheduled Payments, International Standing Orders) Example wording from Post/domestic-payments (opens new window) with same wording used for each of the payment types:
- Original:
- Any operations on the domestic-payment resource will not result in a status change for the domestic-payment resource.
- Revised:
- Any further HTTP operations on the domestic-payment resource will not result in a status change for the domestic-payment resource.
- The Status will be updated by the ASPSP in line with payment processing.
- Original:
- [v40_KI10] Corrected MandateRelatedInformation to be 1..1 and confirm that frequency detail is mandatory Data Dictionary (opens new window)