Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions deliverables/5 refund/refund-delivery.yaml
Original file line number Diff line number Diff line change
@@ -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)
54 changes: 54 additions & 0 deletions deliverables/5 refund/refund-offer-delivery.yaml
Original file line number Diff line number Diff line change
@@ -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
32 changes: 32 additions & 0 deletions deliverables/5 refund/refund-offer-request.yaml
Original file line number Diff line number Diff line change
@@ -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:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An aftersales is a change on a transport contract = a fulfillment. A package is not a contract. Thus the fulfillment should be the central object of the request. Package Elements and Travellings parties are parts of the fulfillment to me canceled.

type: array
items:
type: string
description: fullfillments to refund
18 changes: 18 additions & 0 deletions deliverables/5 refund/refund-request.yaml
Original file line number Diff line number Diff line change
@@ -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
74 changes: 74 additions & 0 deletions deliverables/5 refund/refund.md
Original file line number Diff line number Diff line change
@@ -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) |