2024-04-17 Carrier Billing - Meeting Minutes
Attendees & Representation
Type @ and your name to indicate your attendance
LF Staff:
Community:
@Pedro Díez García (Telefonica)
@Ludovic Robert (Orange)
@Rafał A. (Unlicensed) (Deustche Telekom)
@K Barath (Ericsson)
@Abdel Elmoumen (Orange)
Date
Apr 17, 2024
Status: FINAL
Final Date for Comments: Apr 25, 2024
Agenda
The project's Antitrust Policy, which you can find linked from the LF and project websites. The policy is important where multiple companies, including potential industry competitors, are participating in meetings. Please review and if you have any questions, please contact your company legal counsel. Members of the LF may contact Andrew Updegrove at the firm Gesmer Updegrove LLP, which provides legal counsel to the LF. |
Management of new meetings
Consolidated Work
Refund Track - Proposal Review
AoB
Minutes
Management of new meetings
Meeting minutes moved to CAMARA Wiki Confluence site.
@Pedro Díez García have contacted Evan Harrison from LF in order to generate Meeting Link in Zoom. Pending info from @Evan Harrison
Consolidated Work
PR#151 MERGED - meeting_minutes_readme_information - https://github.com/camaraproject/CarrierBillingCheckOut/pull/151
Refund Track - Proprosal Review
Proposal:
PR triggered - PR#152 - https://github.com/camaraproject/CarrierBillingCheckOut/pull/152
@Ludovic Robert also clarifies, after checking internally with business, that refund amount cannot exceed payment amount due to legal/fiscal reasons. @Ajit Raghavan shares the same view on that based on their experience.
Discussion during the meeting:
From 3rd April meeting:
Refund creation
Request model based on Payment API.
type
Discussion around this concept. @Ludovic Robert indicates probably when the refund is total there is no need to indicate the refundAmount by the merchant. In partial refund yes, it is needed. @Pedro Díez García also has doubts regarding this and will check with business. With regards to partial refund, there is the comment about how to manage the taxes. OPEN
List Of Refunds
Request Model
Regarding filter criteria:
@Ludovic Robert initiates a thread for further investment/discussion regarding the consideration of service as input for filter criteria OPEN
Comments from Orange within PR (@Ludovic Robert)
Most of this points are not request for change but question I got when I did this review.
Are we sure to manage
refund_in_progress
,totally_refunded
,partially_refunded
as TransactionOperationStatus ? my point is that a payment could have been Succeeded and then refunded. Both state are valid. Need to be sure we did not need to tackle that in a specificrefundStatus
.I'm still not sure if refund should be managed in a separate yaml or same yaml that payment. Have you @PedroDiez good rationale to make them separate?
Are we sure that refundAmount should be mandatory ? if
type
istotal
this could be source of unnecessary error (what about a request withtype:total
and amount inconsistent btw the payment and the refund?).If requester fill refundDetails do we need to make check vs payment item? I guess yes.
In payment we require a
referenceCode
in the request - do we need one here for the refund?
During meeting:
Tracking to be done under Pull Request
Exceptions and notifications models added to the proposal
Refund `type` concept
OPEN @Ludovic Robert indicates probably when the refund is total there is no need to indicate the refundAmount by the merchant. In partial refund yes, it is needed. @Pedro Díez García also has doubts regarding and its pending Business feedback from TEF. With regards to partial refund, there is the comment about how to manage the taxes (i.e. for partial refund it is needed to indicate proportional taxAmount?, it may be complex for developer).
Get list of payments.
CLOSED So far it is fine to not consider `service` as filter criteria.
Controlling Time for refund execution:
Comment raised by Barath (Ericsson), asking whether it has to be controlled by the API the period alloewd by business to be able to allow refund. Orange and Telefonica comments that is Business Logic from Telco Operator according to their business workflow.
Orange comments discussion:
ONGOING Are we sure to manage
refund_in_progress
,totally_refunded
,partially_refunded
as TransactionOperationStatus ? my point is that a payment could have been Succeeded and then refunded. Both state are valid. Need to be sure we did not need to tackle that in a specificrefundStatus
.The use of statuses related to the refund within the payment status concept can create confussion and misunderstanding. It is agreed to be renamed to "refundStatus" an also align this in carrier billing payment resource. Agreed by de WG. To be renamed
Also it is seen more suitable to move the "status" of the resource to the higher level of the resource, along with resource Identifier, because now it is part of "amount" model. Agreed by the WG. To be changed
Also need to cover the scenario where having several refunds in place.
OPEN Are we sure that refundAmount should be mandatory ? if
type
istotal
this could be source of unnecessary error (what about a request withtype:total
and amount inconsistent btw the payment and the refund?).Commented by Pedro that still pending feedback from business. Expected to have by the end of April
Ludovic highlights that solution would tend to be simple and decoupled from business and alignment is needed. Pedro will check internally. It could be easier in that way to manage as an oneOf option.
ONGOING If requester fill refundDetails do we need to make check vs payment item? I guess yes.
Yes, it is agreed the information has to be consistent between payment and related refunds. HTTP 422 (specific code pending) commented as initial approach.
During this point also exceptions model commented two main points:
createRefund
For non existing "paymentId". Probably suitable exception is 404 NOT FOUND
Set of 403 exceptions (Business Exceptions) explained
Pedro will provide more detail for "CARRIER_BILLING_REFUND.PAYMENT_NOT_ELIGIBLE_FOR_REFUND" within PR, requested specifically by business
Barath and Ludovic comments about "CARRIER_BILLING_REFUND.REFUND_DENIED" one and the consideration to have alignment with the event case (async checking)
Ludovic initiates discussion about the use of HTTP 403 vs other status, commenting 403 to his view is closer to authorization topics and also realted to Issue#127 discussion. Pedro will think about it and also discuss with Jose.
CLOSED In payment we require a
referenceCode
in the request - do we need one here for the refund?Checked online during the meetings and it is ok
OPEN Commented `merchantIdentifier` as filter criteria for get a list of refunds
Commented it makes sense for aggregator case from the business point of view, however it can be tricky for the developer as it would have to query payment list endpoint to obtain the information. Need to have some thinking about this
OPEN I'm still not sure if refund should be managed in a separate yaml or same yaml that payment. Have you @PedroDiez good rationale to make them separate?
Pedro comments it is not a technical consideration but a strategical one, in order to not have a big API with the aim of have full APIs implemented as well as to provide flexibility for Telco Operators to their roadmaps delivery of features.
Next actions are:
Make clear changes in the PR
Every to think about pending points
AoB
Abdel Elmoumen from Orange joins first time WG
Ludovic comments about two points:
He has provided some feedback within Issue#139 - https://github.com/camaraproject/CarrierBillingCheckOut/issues/139
Need to discuss within WG about metarelease scope within the WG. Specific point for the next meeting. Commenting in advance we should have a clear view before mid June as workload in summer generally decrease.
Next Meeting will be held on 7th May
Action items