-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decision Proposal 067 - Draft Standards Feedback Cycle 6 #67
Comments
Just a quick note to request that RateString data type should allow for negative interest rates as these are not only possible but increasingly common within capital markets. The specification for RateString explicitly defines "A positive number (or zero)", this is not an assumption that can be made and there is demonstrable instances within European institutions where negative interest rates are being offered. Suggest the range of RateString is -1 < 0 > 1. |
Hi @csirostu, at the moment the fields that RateString apply to are positive onlay as we spilt deposit and lending rates as well as bonus and penalty rates in all structures. As such expanding the definition of the type could be detrimental to those structures rather than advantageous. When we encounter a field where positive and negative are needed I would suggest we would rename the existing type to PositiveRateString (consistent with PositiveInteger) and create a new RateString with expanded constraints. -JB- |
Hi @JamesMBligh, 10 years ago I would have thought the suggestion that deposit rates could be negative would be absurd however there is already demonstrable cases (in Germany in particular) of precisely this (negative interest on business deposit accounts) happening. With Q1 inflation having just come back as 0% and official interest rates much closer to zero than not it is not outside the realm of possibility. For this reason I would suggest the CDS should avoid predicting monetary policy. I'd also suggest an emergency change to facilitate this possibility would be problematic as well given a situation where Data Holders are likely to have some much larger external challenges should it eventuate. Looking to the UK Open Banking standard, in particular on the SME Unsecured Loan definition (although I believe this is consistent) they specify |
I’d be interested in other opinions from the community on this topic since it hasn’t been raised as a concern by the Finanicial Institutioms (which could be oversight). Some alternatives for addressing this are:
|
imho, rate range is a regulatory concern and should be mostly market driven. CDS only needs to set an agreed data type and data format for rates so that different parties can interpret the data in the same way. |
Changing data type constraints post-go-live would obviously be significantly more costly. Data types should reflect the market reality and not be artificially constrained. Unnecessarily tight constraints do not give the right guidance to developers and testers of providers or recipients and an ‘edge case’ with a negative interest rate should not fail. We therefore recommend PositiveRateString be created and retro-fitted and RateString being used for lending and deposit rates (also possible even though most Australian banks would have a zero floor). |
Fair enough. I'll make the change unless there are objections. |
Hi James, |
Hi @anzbankau, I believe that the V1 API end point and payload decisions are currently reflected on the standards site if you're looking at v0.8.0 or higher according to the change log. That said, there were many changes and my reviews may have missed something. If you see any discrepancies on the standards site please raise them here and Brian or I will fix them. We are planning to publish a final V1 position at the end of May so correcting things between now and then would be the intent. -JB- |
Hi James,
Thanks. |
Thanks @anzbankau, I’ll check these. I thought they were already done. |
Access Token Refresh Token |
@anzbankau, you were correct, we had accidentally reverted. Should be fixed now. |
In response to @commbankoss: Access Tokens Refresh Tokens -JB- |
Change not made or reverted: Person.[phoneNumbers] to be OptionalThis change was agreed to but not actioned or has since been reverted. Change not made or reverted: Mandatory array with 'May be empty' to be OptionalMandatory arrays with Description = 'May be empty' are still present (e.g. Person.emailAddresses) after proposed post 12/3/19 and accepted post 13/3/19. |
Hi James, |
…dates Removed numbering and updated change log for InfoSec
This comment is largely a continuation of the discussion at the now closed Decision Proposal 064 - Scopes, Claims & Tokens and includes responses to questions posed there. Data minimization principleIn response to this comment: @assem-ali raises an interesting point. If a Data Recipient is attempting to both conform to the ACCC Rule’s data minimisation principle and give good CX, for example, by stating that only the three months of transactions will be downloaded, the standards as they stand do not facilitate this message being reinforced at the Data Holder. Consent APIIn response to this comment: Language may be causing a bit of confusion here. A separate consent API is not an extension to the OIDC standard. It augments OIDC where it does not cater for them. It is treated more like a data API than an Identity Provider functionality. Please see this draft extension to the FAPI standard for a fuller explanation. We disagree that extending OAuth2 and OIDC minimises the cost of compliance for both recipients and holders versus a consent API. The extension approach is expensive for all parties because consumers and data holders can no longer rely on existing certified OpenID libraries, servers and services without modification, testing and recertification. If the regime is later moved to a consent API solution, then the change would again create complexity for data recipients and data holders as they move back towards standard security solutions. In response to this comment:
Static registration of purpose and type will lead to multiple client_ids being registered for the same physical application in a number of cases. Consider the example of a credit card origination application which uses transaction data to make a credit decision and to also allow a customer to optionally import payees as part of the set up process for internet banking. In this case the Data Recipient will need to register two client_ids for the same physical application:
We agree that this not part of OIDC. However OIDC does not have a profile for Known Channel Authentication. In Known Channel Authentication, there are more steps, each with their own risk of error. Hence, there is a greater need for error information in order to provide a quality customer experience. A notable consequence of limiting the request to 5 mins is that Data Holders will be unable to exercise their option allow joint account holders to authorise a consent inside a consent authorisation, rather than through the pre-authorisation process. It is possible to solve this problem (and introduce new ones) by allowing consent authorisations to be modified. In this way a joint account holder can complete their authorisation an hour/day/week later and the newly authorised account can be added to the consent at that time. This solution though, is complex for Data Recipients to implement – a new account may appear at any time without notification. Further, the disclosure of exactly which accounts were included in the consent when may be confusing to customers.
Statuses that may be useful to the Data Recipient:
Westpac supports disconnecting the expiry of the authorisation from the expiry of the refresh token. |
Hi James, |
This is a clarification In response to a question received from a member of this community. This is not a decision related to the standards, it is an informative clarification regarding the use or interpretation of the standards. A paraphrase of the question is:
To clarify, the intent of the statements around optionality align with the intent of the regime to give Customers' control of the sharing of their data. Product Reference data, however, is not Customers data. It is data that represents the Bank's products. In this context the technical standard for Product Reference has been designed to allow the Bank the flexibility to represent their products as accurately as they would in other channels. The ability to leave out certain parts of the schema, where doing so best represents the products, is a part of the schema. This clarification only applies to compliance with the technical standards, however. Other regulatory requirements that apply to the accurate representation of financial products would also need to be considered. |
Hi @JamesMBligh, |
With regards to the POST /banking/accounts/balances, what is the purpose (or what will it be used for in future) of the meta: {} in the accountIds body parameter of the request? { |
James, |
Changes to FAPI draftsA number of minor changes have occurred in the [FAPI-R] and [FAPI-RW] normative reference drafts which need to be accommodated in the documentation. These include:
Minor issues with product data specificationWe’ve noticed the following issues with the product data specification:
|
In the definition of BankingAccountDetail, I believe there is a redundant definition. It nominates that addressUType is required. addressUType is not a property of BankingAccountDetail. It is a property of CommonPhysicalAddress where it is already defined as required. |
For TransactionDetail, if there is no extra transaction detail, should the call have to return an extendedData section with just a "service": "X2P1.01" record eg
|
Hi James, There is currently inconsistency in the documentation for pagination on the standards site. https://consumerdatastandardsaustralia.github.io/standards/#pagination states:
https://consumerdatastandardsaustralia.github.io/standards/#tocSlinkspaginated states:
Thanks. |
There appear to be mixed parameters representing date boundaries in the transaction calls.
Should they all be newest-time and oldest-time, or should they be start-time and end-time? |
There is a typo in the license declaration of the published swagger spec:
The MIT License is issued by an American entity and therefore the spelling is American. As the word "license" is being used as a noun this should not be changed and instead referenced as "MIT License". |
These changes have been incorporated and will be pushed live shortly
This is now fixed in the published standards.
This has been changed and will be pushed live shortly. -JB- |
In response to @speedyps:
@kirky61 is doing some housekeeping and removing some of the redundant objects and files in the standards repo -JB- |
In response to @speedyps:
It would be reasonable to interpret this transaction as not having any additional data so a call to the transaction detail end point should not occur as the isDetailAvailable field in the transaction list API should be set to false. This raises the question as to the expected handling of a call to transaction detail when isDetailAvailable is false. This is currently indeterminate in the standard but the implication is that it should result in an error (probably 400 Bad Request). If clarification on this is required feedback would be welcome as part of consultation on the imminent May draft. -JB- |
In response to @anzbankau:
Thanks. This has been fixed and will be pushed live shortly. -JB- |
In response to @speedyps:
Thanks. This was an oversight. It is fixed and will be pushed shortly. -JB- |
In response to @csirostu:
Licence is now replaced with License. -JB- |
The items flagged above have now been pushed live -JB- |
Hi @JamesMBligh in current draft, all of the endpoints have two tags, e.g.
May I suggest to remove
The main reason is these tags are fed into standard swagger tool to group endpoints into API, some codegen generates Interface name out of the tags. e.g, |
Another minor issue I found in current draft swagger https://consumerdatastandardsaustralia.github.io/standards/includes/swagger/cds_full.json is the indents are inconsistent. |
Can we please get some clarification on the below scenarios? It may be more implementation related but would prefer there's a position in the standard to provide consistent behaviour across the board. Assume a customer has 5 accounts: A1, A2, A3, A4, A5. On day 1, customer gives consent to A1, A2. Data Recipient receives:
On day 10, customer adds account A3. Data Recipient receives:
NOTE: Customer ID (sub in ID Token) does not change between different consent/authorisation based on our understanding. Questions:
On day 20, customer adds accounts A1 & A4. Assuming here Data Holder presents all possible accounts to customer during consent. Data Recipient receives:
NOTE: A1 in this case is duplicated in C1 and C3. Data Recipient has now 3 different consents with 3 different validity periods. Questions:
Thank you. |
With respect to Decision #61 there's a comment in the decision that we'd like to get some clarification. It is mentioned that:
Our interpretation to this statement is that:
Is this correct? Should case 1 be a MUST for same PPID for personal as well as business accounts from the same portal? Thanks. |
Hi James, Product API header values Request
Response
Unless the intention is otherwise? Additionally we notice that x-Correlation-Id is specified in the response header, but not in the request header documentation. Thanks. |
Hi James, Re:
|
I am locking this thread. Please provide feedback at #70 -JB- |
This issue has been opened to capture feedback on the standards as a whole. The standards site will be incrementally updated to accommodate this feedback. This is the sixth cycle of holistic feedback for the standards and has been open to capture feedback post the closure of version 1 of the API end points and payloads.
-JB-
The text was updated successfully, but these errors were encountered: