From 70bbaf2efb96d74da95bbef7791e8314b4a65406 Mon Sep 17 00:00:00 2001 From: Edwin van den Belt Date: Thu, 2 Jul 2026 08:35:33 +0200 Subject: [PATCH] Refund --- deliverables/5 refund/refund-delivery.yaml | 36 +++++++++ .../5 refund/refund-offer-delivery.yaml | 54 ++++++++++++++ .../5 refund/refund-offer-request.yaml | 32 ++++++++ deliverables/5 refund/refund-request.yaml | 18 +++++ deliverables/5 refund/refund.md | 74 +++++++++++++++++++ 5 files changed, 214 insertions(+) create mode 100644 deliverables/5 refund/refund-delivery.yaml create mode 100644 deliverables/5 refund/refund-offer-delivery.yaml create mode 100644 deliverables/5 refund/refund-offer-request.yaml create mode 100644 deliverables/5 refund/refund-request.yaml create mode 100644 deliverables/5 refund/refund.md diff --git a/deliverables/5 refund/refund-delivery.yaml b/deliverables/5 refund/refund-delivery.yaml new file mode 100644 index 0000000..4a60e60 --- /dev/null +++ b/deliverables/5 refund/refund-delivery.yaml @@ -0,0 +1,36 @@ +type: object +properties: + requestId: + type: string + description: a-sync | a unique ID, the response to this request MUST have the same ID (in case of a-sync call) + packageId: + type: string + description: the reference of the package + version: + type: string + description: the new version of the package + summary: + type: string + description: textual explanaition, which parts are refunded + status: + type: string + description: enumeration for tracking the refund (offer status = refunded or scheduled_refund) + enum: + - offered + - refund_in_progress # for a-sync responses + - refunded + - scheduled_refund + delayedReimbursement: + type: string + format: date-time + description: in case the reimbursement will be settled in the future + problems: + type: array + items: + type: string + description: a list of string, describing blocking issues, in the requested language (or local if not the requested language is not supported) + warnings: + type: array + items: + type: string + description: a list of string, describing non-blocking issues, in the requested language (or local if not the requested language is not supported) \ No newline at end of file diff --git a/deliverables/5 refund/refund-offer-delivery.yaml b/deliverables/5 refund/refund-offer-delivery.yaml new file mode 100644 index 0000000..1aa15f2 --- /dev/null +++ b/deliverables/5 refund/refund-offer-delivery.yaml @@ -0,0 +1,54 @@ +type: object +required: + - refundOfferId + - packageId + - version + - refundableAmount +properties: + requestId: + type: string + description: a unique ID, the response to this request MUST have the same ID (in case of a-sync call) + refundOfferId: + type: string + description: a unique ID, to identify the offer + summary: + type: string + description: human readable clarification of the offer, in the requested content language, if possible + fee: + $ref: '#/components/schemas/Price' + description: the fee to pay + refundableAmount: + $ref: '#/components/schemas/Price' + description: the amount that can be refunded + + packageId: + type: string + description: the reference of the package + version: + type: string + description: the version of the package to (partial) refund + expiryTime: + type: string + format: date-time + description: expiry time of rollback window, ISO 8601 + problems: + type: array + items: + type: string + description: a list of string, describing blocking issues, in the requested language (or local if not the requested language is not supported) + warnings: + type: array + items: + type: string + description: a list of string, describing non-blocking issues, in the requested language (or local if not the requested language is not supported) + delayedReimbursement: + type: string + format: date-time + description: in case the reimbursement will be settled in the future + paymentMethod: + type: string + description: the method of payment used for the refund + status: + type: string + description: enumeration for tracking the offer + const: offered \ No newline at end of file diff --git a/deliverables/5 refund/refund-offer-request.yaml b/deliverables/5 refund/refund-offer-request.yaml new file mode 100644 index 0000000..0892b77 --- /dev/null +++ b/deliverables/5 refund/refund-offer-request.yaml @@ -0,0 +1,32 @@ +type: object +required: + - packageId + - version +properties: + contentLanguage: + type: string + description: (policy) The language/localization of user-facing content, One IETF BCP 47 (RFC 5646) language tag. If missing, the local accepted language + requestId: + type: string + description: a unique ID, the response to this request MUST have the same ID (in case of a-sync call) + packageId: + type: string + description: the reference of the package to refund + version: + type: string + description: the version of the package to (partial) refund + packageElementRefs: + type: array + items: + type: string + description: parts to refund + travellingEntityRefs: + type: array + items: + type: string + description: travelling entities to refund + fulfillmentRefs: + type: array + items: + type: string + description: fullfillments to refund \ No newline at end of file diff --git a/deliverables/5 refund/refund-request.yaml b/deliverables/5 refund/refund-request.yaml new file mode 100644 index 0000000..3c73b31 --- /dev/null +++ b/deliverables/5 refund/refund-request.yaml @@ -0,0 +1,18 @@ +type: object +required: + - refundOfferId + - packageId + - version +properties: + contentLanguage: + type: string + description: (policy) The language/localization of user-facing content, One IETF BCP 47 (RFC 5646) language tag. If missing, the local accepted language + refundOfferId: + type: string + description: a unique ID, to identify the offer + packageId: + type: string + description: the reference of the package + version: + type: string + description: the version of the package to (partial) refund \ No newline at end of file diff --git a/deliverables/5 refund/refund.md b/deliverables/5 refund/refund.md new file mode 100644 index 0000000..bcbd91d --- /dev/null +++ b/deliverables/5 refund/refund.md @@ -0,0 +1,74 @@ +# Refund Offers Request - delivery + +_Required items_ + +| object | description | +| --- | --- | +| REFUND OFFERS REQUEST | The request to obtain refund offers | +| REFUND OFFERS DELIVERY | The accompaning response | +| REFUND REQUEST | The request to claim a refund offers | +| REFUND DELIVERY | The accompaning response | + +## REFUND OFFERS REQUEST DETAILS + +| field | type | optional/conditions | description | +| --- | --- | --- | --- | +| requestId | string | condition: a-sync | a unique ID, the response to this request MUST have the same ID (in case of a-sync call) | +| contentLanguage | string | optional | (policy) The language/localization of user-facing content, One IETF BCP 47 (RFC 5646) language tag. If missing, the local accepted language | +| packageId | string | required | the reference of the package to refund | +| version | string | required | the version of the package to (partial) refund | +| packageElementRefs | list of string | optional | parts to refund | +| travellingEntityRefs | list of string | optional | travelling entities to refund | +| fulfillmentRefs | list of string | optional | fullfillments to refund | + +### Example (indicative) + +```json +{ + "requestId": "32490-df324", + "packageId": "offer-1", + "version": "305e50bfa0767185c3f0987277b60f53" +} +``` + +## REFUND OFFER DELIVERY DETAILS + +| field | type | optional/conditions | description | +| --- | --- | --- | --- | +| requestId | string | condition: a-sync | a unique ID, the response to this request MUST have the same ID (in case of a-sync call) | +| refundOfferId | string | required | a unique ID, to identify the offer | +| summary | string | required | human readable clarification of the offer, in the requested content language, if possible | +| fee | Price | required | the fee to pay | +| refundableAmount | Price | required | the amount that can be refunded | +| packageId | string | required | the reference of the package | +| version | string | required | the version of the package to (partial) refund | +| expiryTime | date-time | required | expiry time of rollback window, ISO 8601 | +| problems | list of string | required | a list of string, describing blocking issues, in the requested language (or local if not the requested language is not supported) | +| warnings | list of string | required | a list of string, describing non-blocking issues, in the requested language (or local if not the requested language is not supported) | +| delayedReimbursement | date-time | optional | in case the reimbursement will be settled in the future | +| paymentMethod | string | optional | | +| status | string | optional | enumeration for tracking the offer | + +# REFUND + +## REFUND REQUEST DETAILS + +| field | type | optional/conditions | description | +| --- | --- | --- | --- | +| requestId | string | condition: a-sync | a unique ID, the response to this request MUST have the same ID (in case of a-sync call) | +| contentLanguage | string | optional | (policy) The language/localization of user-facing content, One IETF BCP 47 (RFC 5646) language tag. If missing, the local accepted language | +| refundOfferId | string | required | a unique ID, to identify the offer | +| packageId | string | required | the reference of the package | +| version | string | required | the version of the package to (partial) refund | + +## REFUND DELIVERY DETAILS + +| field | type | optional/conditions | description | +| --- | --- | --- | --- | +| requestId | string | condition: a-sync | a unique ID, the response to this request MUST have the same ID (in case of a-sync call) | +| packageId | string | required | the reference of the package | +| version | string | required | the new version of the package | +| summary | string | required | textual explanaition, which parts are refunded | +| status | string | optional | enumeration for tracking the refund (offer status = refunded or scheduled_refund) | +| problems | list of string | required | a list of string, describing blocking issues, in the requested language (or local if not the requested language is not supported) | +| warnings | list of string | required | a list of string, describing non-blocking issues, in the requested language (or local if not the requested language is not supported) |