-
Notifications
You must be signed in to change notification settings - Fork 9
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
Energy - GetAgreedPaymentSchedule API - manualPayment section should have paymentFrequency instead of billFrequency field #495
Comments
There are a few issues/questions raised against GetAgreedPaymentSchedule API, including this CR. The DSB is including a summary and proposed solution for each of them here to make it easy to review: Issue 1: Manual payments via payment schedule-plan (this CR):Summary:
Proposed solution: Issue 2: Multiple payment agreements for a single account (CR 511 comment)Summary:
Proposed solution: {
"data": {
"paymentSchedules": [ /// Array of payment schedules
{
"servicePointId": "string", //mandatory - ServicePointId for the paymentschedule
"amount": "string",
"paymentScheduleUType": "cardDebit",
"cardDebit": {
"cardScheme": "VISA",
"paymentFrequency": "string",
"calculationType": "STATIC"
},
"directDebit": {
"isTokenised": true,
"bsb": "string",
"accountNumber": "string",
"paymentFrequency": "string",
"calculationType": "STATIC"
},
"manualPayment": {
"billFrequency": "string"
}
}
]
},
"links": {
"self": "string"
},
"meta": {}
}, Issue 3: Paypal based payments (CR 511 comment)Summary
Proposed solution: "digitalWallet": {
"name": "string", // The name assigned to the digital wallet by the owner of the wallet, else the display name provided by the digital wallet provider
"identifier": "string", // The identifier of the digital wallet (dependent on type)
"type": ["EMAIL", "CONTACT_NAME", "TELEPHONE"] // The type of the digital wallet identifier
"provider": ["PAYPAL_AU", "OTHER"] // The provider of the digital wallet
"paymentFrequency": "string",
"calculationType": ["STATIC", "BALANCED", "CALCULATED"]
} Issue 4: Unclear
|
A payment plan may not be attached to a specific service point identifier and there is no mechanism to list all of them. An example of this is a customer who receives a Q1 bill and sets up a payment plan for this over 12 months, then receives a Q2 bill and sets up a payment plan for this over 12 months. For Months 3 - 9 there are two payment plans. Additionally, on an Infosec front. The agreed payment schedules CX language does not include NMI. While it seems logical Basic Energy Accounts scope would be included, this isn't explicitly the case. This CR proposes to introduce data which is not disclosed in the Data Cluster related to the scope. Finally, as this is now changing to an array of payment schedules the correct path for this endpoint is now
While this is following an existing pattern it's unclear why
The language of |
The following is the summary of feedback discussed during Energy MI call on 14th June: Issue 1: Manual payments via payment schedule-plan (this CR)No specific feedback was received during the call for this issue. In response to following @perlboy's comment:
As mentioned before, the intent of this API is not to describe payment plans details, it is to describe how a consumer has elected to pay for a given account or connection points within a given account. As mentioned in Issue 1 comment, the DSB will update the description of the API to ensure the intent is understood. Issue 2: Multiple payment agreements for a single accountFeedback in the call suggested making Issue 3: Paypal based paymentsThe following question was raised:
This was considered but not adopted as combining them would create dependency and add constraints to any future changes. The retailers noted they would review and provide any feedback to the Issue 4: Unclear isTokenised descriptionThe following comment from @perlboy's was discussed during the call:
The DSB agrees with the above suggestions and will incorporate it in the change. In response to following @perlboy's comment:
The proposed structure does not include NMI so there is no change to CX language required. Updated StructureBelow is the updated structure with above feedback incorporated. If no further feedback is received, the DSB proposes to recommend the change to the Chair for approval. {
"data": {
"paymentSchedules": [ /// Array of payment schedules
{
"servicePointId": "string", //optional- servicePointId for the paymentschedule. If absent, account level payment is assumed
"amount": "string",
"paymentScheduleUType": ["cardDebit", "directDebit", "digitalWallet", "manualPayment"]
"cardDebit": {
"cardScheme": ["VISA","MASTERCARD", "AMEX", "DINERS", "OTHER", "UNKNOWN"]
"paymentFrequency": "string",
"calculationType": ["STATIC", "BALANCE", "CALCULATED"]
},
"directDebit": {
"isTokenised": true,
"bsb": "string",
"accountNumber": "string",
"paymentFrequency": "string",
"calculationType": ["STATIC", "BALANCE", "CALCULATED"]
},
"digitalWallet": {
"name": "string", // The name assigned to the digital wallet by the owner of the wallet, else the display name provided by the digital wallet provider
"identifier": "string", // The identifier of the digital wallet (dependent on type)
"type": ["EMAIL", "CONTACT_NAME", "TELEPHONE"] // The type of the digital wallet identifier
"provider": ["PAYPAL_AU", "OTHER"] // The provider of the digital wallet
"paymentFrequency": "string",
"calculationType": ["STATIC", "BALANCED", "CALCULATED"]
},
"manualPayment": {
"billFrequency": "string"
}
}
]
},
"links": {
"self": "string"
},
"meta": {}
}, |
Firstly, reiterating my comment within the call, I'm finding it a bit difficult to see what the reasoning for merging payment acquisition methods with payment schedule when the schedule components appear broadly universal. The above updated structure is demonstrating the problem with doing so whereby a recipient must now process An approach to conditionality (using description for additional business rules) was already defined in banking but now the DSB seems to have reinvented the wheel with an inverse pattern. It is unclear why the DSB hasn't been consistent. A cleaner structure with a fair bit of similarity to banking would instead be: {
"data": {
"paymentSchedules": [ /// Array of payment schedules
{
"servicePointId": "string", //optional- servicePointId for the paymentschedule. If absent, account level payment is assumed
"amount": "string",
"paymentFrequency": "string", // Mandatory if paymentScheduleUType is cardDebit or directDebit
"calculationType": ["STATIC", "BALANCED", "CALCULATED"] // Mandatory if paymentScheduleUType is cardDebit or directDebit
"billFrequency": "string" // Mandatory if paymentScheduleUType is manualPayment
"paymentScheduleUType": ["cardDebit", "directDebit", "digitalWallet", "manualPayment"]
"cardDebit": {
"cardScheme": ["VISA","MASTERCARD", "AMEX", "DINERS", "OTHER", "UNKNOWN"]
},
"directDebit": {
"isTokenised": true,
"bsb": "string",
"accountNumber": "string"
},
"digitalWallet": {
"name": "string", // The name assigned to the digital wallet by the owner of the wallet, else the display name provided by the digital wallet provider
"identifier": "string", // The identifier of the digital wallet (dependent on type)
"type": ["EMAIL", "CONTACT_NAME", "TELEPHONE"] // The type of the digital wallet identifier
"provider": ["PAYPAL_AU", "OTHER"] // The provider of the digital wallet
}
}
]
},
"links": {
"self": "string"
},
"meta": {}
},
While making this optional is a solution for the problem raised, I reiterate again that the addition of
Not doing something (or worse still, not copying an existing pattern) because it might impact a future and undefined state is a terrible justification and in this case flies in the face of the Standards own Technical Principle 6:
Finally on this comment:
The proposed structure discloses It certainly seems that way because the Regardless, a further question comes about. If access has not been granted to a |
Agree to this point. |
This is a good catch @perlboy - thanks for highlighting it. We currently refer to NMI in the data language standards for the accounts, billing, and electricity servicepoints data clusters. The intent is to surface NMI where it is shareable in the scope, but if we've incorrectly surfaced this information then we'll do further analysis and consider raising a separate CR to deal with the issue. |
{
"data": {
"paymentSchedules": [ /// Array of payment schedules. Must have at least one entry
{
"amount": "string",
"paymentScheduleUType": ["cardDebit", "directDebit", "digitalWallet", "manualPayment"]
"cardDebit": {
"cardScheme": ["VISA","MASTERCARD", "AMEX", "DINERS", "OTHER", "UNKNOWN"]
"paymentFrequency": "string",
"calculationType": ["STATIC", "BALANCE", "CALCULATED"]
},
"directDebit": {
"isTokenised": true,
"bsb": "string",
"accountNumber": "string",
"paymentFrequency": "string",
"calculationType": ["STATIC", "BALANCE", "CALCULATED"]
},
"digitalWallet": {
"name": "string", // The name assigned to the digital wallet by the owner of the wallet, else the display name provided by the digital wallet provider
"identifier": "string", // The identifier of the digital wallet (dependent on type)
"type": ["EMAIL", "CONTACT_NAME", "TELEPHONE"] // The type of the digital wallet identifier
"provider": ["PAYPAL_AU", "OTHER"] // The provider of the digital wallet
"paymentFrequency": "string",
"calculationType": ["STATIC", "BALANCED", "CALCULATED"]
},
"manualPayment": {
"billFrequency": "string"
}
}
]
},
"links": {
"self": "string"
},
"meta": {}
}, Pending any other feedback, the DSB will recommend the above change for Issue 2 and the proposed solutions for issues 1, 3 and 4 stated this comment to the Chair for approval. |
Biza.io supports the proposal without |
Description
Currently provided structure for manualPayment section intend to capture the manual payment schedule of customer but requested information is billFrequency. Where Customer makes a manual payment based on instalment schedule, payment schedule (weekly, Fortnightly or monthly) is different to billing schedule (Monthly or Quarterly).
Area Affected
Get Agreed Payment Schedule - Energy API
Current Structure
manualPayment - represents a manual payment schedule where the customer pays in response to a delivered statement. Mandatory if paymentScheduleUType is set to manualPayment)
» billFrequency - The frequency with which a bill will be issued
Change Proposed
Change billFrequncy to PaymentFrequency (similar to card/direct Debit section). If manual payment is by instalment schedule then instalment frequency can be mapped other bill frequency shall be mapped as payment frequency.
manualPayment - represents a manual payment schedule where the customer pays in response to a agreed schedule or delivered statement. Mandatory if paymentScheduleUType is set to manualPayment)
» paymentFrequency - The frequency that payments will occur.
The text was updated successfully, but these errors were encountered: