# Version control

v4.0 - 27th June 2024

Area Changes
All
  • Enum/codeset repository (opens new window) created on GitHub. OBL enums have been removed from namespaced enumeration page and participants should refer to this respository for values. Note, OBExternal* enum names have been updated to OBInternal*
  • New optional StatusReason array containing 0..*:
    • StatusReasonCode
    • Path
    • StatusReasonDescription
  • Sequence diagrams and consent status models updated with ISO values
  • Usage examples updated
All Alignment with ISO 20022:
  • ISO code names replaced by code value (e.g. AcceptedWithoutPosting is now ACWP)
  • Address fields aligned to ISO definition and rationalised into single address definition OBPostalAddress7.
  • LEI added to Creditor/Debtor/CreditorAgent objects
  • UltimateCreditor and UltimateDebtor added
  • MandateRelatedInformation added to DirectDebit and StandingOrder, this object replaces some fields from v3.1.11
  • RemittanceInformation object updated to ISO format, this replaces ‘reference’ in payment requests. The object name has been updated to OBRemittanceInformation2.
  • CreditorAccount & CreditorAgent now have the same (optional) fields across API endpoints
  • Proxy added to CreditorAccount/DebtorAccount (across AISP, PISP & CBPII)
AISP ISO 20022 changes
  • AccountType (OBExternalAccountType1Code) renamed to AccountCategory (OBInternalAccountType1Code)
  • AccountSubType renamed to AccountTypeCode
  • MORT (Mortgage) and WALT (Wallet) added to OBExternalAccountSubType1Code
  • Name added to Servicer in OBReadAccount6
  • StatementFrequencyAndFormat added to Account in OBReadAccount6
  • PaymentPurposeCode added to Transaction in OBReadTransaction6
  • CategoryPurposeCode added to Transaction in OBReadTransaction6
PISP ISO20022 changes
  • CategoryPurposeCode added to Risk object
  • RemittanceInformation added to payments
  • RegulatoryReporting added to payments
Errors
  • Simplified error object, top level Code and Message have been marked as optional and deprecated.
  • Error codes now in ISO 20022 code value format (4 chars) in the OBExternalStatusReason1Code enum
  • Additional guidance on errors experienced in the redirect flow or from PSU initiated changes
VRP
  • ContractPresentIndicator typo fixed
  • Added guidance on dynamic reference information for VRP payments
  • StatusReason now uses ExternalStatusReason1Code
  • To assist with version migration:
    • Introduced optional HTTP PUT/PATCH verbs for consents
    • Added payload version header
Payments
  • Updated payment message types information to include ISO 20022 changes, CHAPS migration and CBPR+
  • Richer payment status information aligned to ISO 20022 ExternalTransactionStatus1code
Various All 3.1.11 KI’s (opens new window) addressed
AISP
  • Added new ExtendedProprietaryBankTransactionCodes array to Transactions (TDA decision 264)
  • Permission code table updated with UltimateCreditor, UltimateDebtor and StatementFrequencyAndFormat
Various Frequency in OBMandateRelatedInformation1 object made mandatory
PISP CreditorAgent added to
  • Domestic Payment Consent
  • Domestic Payment
  • File payment Consents
  • File payment
Security Profile The Security Profile has been updated to FAPI 1 Advanced (opens new window)

# 19th September 2024 - Errata fixes

Path/Area Change/Issue resolved
OBReadConsentResponse1 (opens new window) Status was listed as 0..1 in data dictionary but correctly shown as 1..1 in UML
OBReadConsentResponse1 (opens new window) Codeset class was listed as OBInternalPermissions1Code instead of OBInternalConsentStatus1Code
OBReadAccount6/Data/Account/StatementFrequencyAndFormat/Format (opens new window) Codeset repo value from row above had duplicated down
OBReadTransaction6/Data/Transaction/PaymentPurposeCode (opens new window) Codeset repo link had duplicated across rows and link was unclickable
OBReadStandingOrder6/Data/StandingOrder/NextPaymentDateTime (opens new window) Class type text had truncated and was showing as ISODate
OBReadStandingOrder6 (opens new window) RemittanceInformation was missing from AISP Standing Order Data Dictionary
OBReadOffer1/Data/Offer/OfferType (opens new window) Codeset updated to OBExternalOfferType1Code in data dictionary
OBFundsConfirmationConsentResponse1/Data/Status (opens new window) Status was listed as 0..1 in data dictionary
OBFundsConfirmationConsentResponse1 (opens new window) UML diagram was showing cached version with ‘StatusCode’ from original draft release
OBFundsConfirmationConsentResponse1 (opens new window) OBInternalPermissions1Code had duplicated across rows
OBFundsConfirmationConsentResponse1/Data/StatusReason/StatusReasonDescription (opens new window) Field length was missing from table
OBDomesticVRPConsentRequest (opens new window) Data element occurrence was showing as 0..1 in data dictionary but correctly shown as 1..1 in UML
OBDomesticVRPConsentResponse (opens new window) StatusReason/Path was not showing in data dictionary
OBDomesticVRPResponse (opens new window) Data. StatusReason. StatusReasonDescription max length was listed as 256 instead of 500.
OBDomestic2/CreditorAgent/SchemeName (opens new window) Table was missing link to codeset repo
OBDomestic2/CreditorAgent/LEI (opens new window) Was missing from table but present in UML
OBWriteDomesticConsentResponse5/Data/Status (opens new window) Codeset listed was legacy value
OBWriteDomesticConsentResponse5/Data/StatusReason/StatusReasonCode (opens new window) Codeset updated to OBExternalStatusReason1Code in data dictionary
SCASupportData/RequestedSCAExemptionType (opens new window) Description updated to “This field allows a PISP to request specific SCA Exemption for a Payment Initiation”
GET /domestic-payment-consents/{ConsentId}/funds-confirmation description (opens new window) Paragraph previously referred to ‘Authorised’ and for consistency has been updated to ‘AUTH’
OBWriteDomesticResponse5/Data/StatusReason/StatusReasonCode (opens new window) Codeset updated to OBExternalStatusReason1Code
OBMultiAuthorisation1/Status (opens new window) Codeset updated to OBExternalStatus2Code
domestic-vrp-consents (opens new window) Wording updated to clarify use of CANC
Create Domestic Standing Order Consent example (opens new window) JSON example frequency information updated
OBDomestic2 DebtorAccount and Debtor share base class (opens new window) Swaggers have in-line definitions, table has been updated.
OBDomesticVRPInitiation and OBDomesticVRPInstruction contain CreditorAgent (opens new window) This was removed in KI v319_KI9 but was not removed from spec pages.
OBRemittanceInformation2/Unstructured (opens new window) Data dictionary class column updated to clarify this is an array of Max140Text values.
OBWritePaymentDetails1 (opens new window) UML updated to address cardinality for Data and PaymentDetails.
GET /file-payments/{FilePaymentId} (opens new window) Table for POST /file-payments had duplicated across sections
VRP State model description (opens new window) StatusCode was misspelled
ToC links - various Addressed some non-working links
OBRisk1 (opens new window)
  • Fixed CareOf entry in the data dictionary which had split across multiple lines
  • Addressed missing / in OBRisk1/DeliveryAddress/DistrictName XPath entry
  • Addressed missing / in OBRisk1/DeliveryAddress StreetName XPath entry
  • Addressed missing / in OBRisk1/DeliveryAddress/TownLocationName XPath entry
  • Restored truncated text from OBRisk1/PaymentContextCode class description entry (link to codeset repo)
  • Restored definition for OBRisk1/PaymentPurposeCode and fixed link to codeset repo
  • OBRisk1/DeliveryAddress/AddressType description and class columns contained merged data
OBWritePaymentDetailsResponse1 (opens new window)
  • Removed OBWritePaymentDetailsResponse1/Data/StatusDetail/StatusUpdateDateTime entry from data dictionary
  • Restored field size listing for OBWritePaymentDetails1/StatusDetail/StatusReasonDescription to Max256Text
  • Corrected OBWritePaymentDetailsResponse1/Data/StatusDetail/StatusReason name from StatusReasonCode to StatusReason
  • Codesets updated in data dictionary
  • Restored original UML diagram layout without Meta or Links
OBDomestic2 (opens new window) Restored missing Proxy to OBDomestic2/CreditorAccount
OBRemittanceInformation2 (opens new window) OBRemittanceInformation2/Structured/ReferredDocumentInformation/RelatedDate type ISODateTime was truncated in data dictionary.
OBInternationalRefundAccount1 (opens new window) Updated OBInternationalRefundAccount1/Creditor/LEI description to align with rest of spec
OBWriteDomesticScheduledConsentResponse5 (opens new window)
  • OBWriteDomesticScheduledConsentResponse5/Data/Status codeset corrected to OBInternalConsentStatus1Code
  • OBWriteDomesticScheduledConsentResponse5/Data/StatusReason/StatusReasonCode codeset corrected to OBExternalStatusReason1Code
  • OBWriteDomesticScheduledResponse5 (opens new window) OBWriteDomesticScheduledResponse5/Data/Status codeset updated to ExternalPaymentTransactionStatus1Code and link to codesets added.
    OBWriteDomesticStandingOrderConsentResponse6 (opens new window)
    • OBWriteDomesticStandingOrderConsentResponse6/Data/Status codeset updated to OBInternalConsentStatus1Code
    • OBWriteDomesticStandingOrderConsentResponse6/Data/StatusReason/StatusReasonCode codeset updated to OBExternalStatusReason1Code
    OBWriteFileConsentResponse4 (opens new window) OBWriteFileConsentResponse4/Data/Status codeset updated to OBInternalConsentStatus1Code
    OBWriteFileConsentResponse4 (opens new window) OBWriteFileConsentResponse4/Data/StatusReason/StatusReasonCode codeset updated to OBExternalStatusReason1Code
    OBInternational3 (opens new window) Erroneous OBInternational3/Purpose removed
    OBWriteInternationalConsentResponse6 (opens new window)
    • OBWriteInternationalConsentResponse6/Data/Status codeset updated to OBInternalConsentStatus1Code
    • OBWriteInternationalConsentResponse6/Data/StatusReason/StatusReasonCode codeset updated to OBExternalStatusReason1Code
    • XPath and Description for OBWriteInternationalConsentResponse6/Data/Debtor/LEI had merged
    International Paymnet funds-confirmation description (opens new window) Removed reference to OBInternalPermissions1Code codeset
    OBInternationalScheduled3 (opens new window) Erroneous OBInternationalScheduled3/Purpose removed
    OBInternationalStandingOrder4 (opens new window) Erroneous OBInternationalStandingOrder4/Purpose removed
    OBInternalFinancialInstitutionIdentification4Code A number of instances of this codeset were incorrectly truncated to OBInternalFinancialInstitutionIdentification4Co in data dictionary listings
    OBWriteFileResponse3 (opens new window) OBWriteFileResponse3/Data/StatusReason/StatusReasonCode codeset updated to OBExternalStatusReason1Code
    OBDomesticStandingOrder3 (opens new window) OBDomesticStandingOrder3/FirstPaymentAmount fields were present but top level entry had merged.
    File paymnets state model (opens new window) Initiation state model was not present
    Date format description (opens new window) Description was showing old error enum value
    CEG links Some CEG links were not working
    Codeset repo link (opens new window) Corrected spelling of 'repository'
    AISP Consent (opens new window) Clarified use of CANC in AISP Consent Re-authentication
    OBDomesticVRPConsentResponse (opens new window) Updated data dictionary with codeset name for Status and link to codeset repository
    OBDomesticVRPResponse (opens new window)
    • Updated data dictionary with codeset name for Status and link to codeset repository
    • Aligned 'Type' of StatusReason to OBStatusReason, consistent with other entries in spec
    OBWriteDomesticScheduledResponse5 (opens new window) OBWriteDomesticScheduledResponse5/Data/StatusReason/StatusReasonCode updated codeset to OBExternalStatusReason1Code
    OBSCASupportData1 (opens new window) SCASupportData/AppliedAuthenticationApproach Removed erroneous description in class column
    SCASupportData (opens new window) Class and description colummn entries were swapped for SCASupportData/RequestedSCAExemptionType
    domestic-vrps (opens new window) PATC was incorrectly included in payment status list
    OBInternationalRefundAccount1 (opens new window) OBInternationalRefundAccount1/Account/SchemeName description was missing from data dictionary
    Example JSON A number of example JSON have been updated
    OBDomesticVRPDetails (opens new window) Some elements of VRP payment-details had not been restored fully in the data dictionary
    OBReadTransaction6 (opens new window) Removed erroneous link to GitHub repo for ExternalBankTransactionFamily1Code and ExternalBankTransactionSubFamily1Code