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.
Status
title
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
Most of this points are notrequest for changebut question I got when I did this review.
Are we sure to managerefund_in_progress,totally_refunded,partially_refundedas 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@PedroDiezgood rationale to make them separate?
Are we sure that refundAmount should be mandatory ? iftypeistotalthis could be source of unnecessary error (what about a request withtype:totaland 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 areferenceCodein 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
Status
title
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.
Status
colour
Green
title
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:
Status
colour
Yellow
title
ONGOING
Are we sure to managerefund_in_progress,totally_refunded,partially_refundedas 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.
Status
title
OPEN
Are we sure that refundAmount should be mandatory ? iftypeistotalthis could be source of unnecessary error (what about a request withtype:totaland 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.
Status
colour
Yellow
title
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.
Status
colour
Green
title
CLOSED
In payment we require areferenceCodein the request - do we need one here for the refund?
Checked online during the meetings and it is ok
Status
title
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
Status
title
OPEN
I'm still not sure if refund should be managed in a separate yaml or same yaml that payment. Have you@PedroDiezgood 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.
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.