# MobilePay GiftCards
Questions
* Do we need quantities for products? How do we handle them?
* How do we handle different languages?
* Product reference can only contain a-z, A-Z, 0-9, _ or -, is that OK?
* Should we display the value/discount of the product you are buying?
Notes
* API to update purchase terms per Marketplace Seller, must be versioned
* Expiration date should be after delivery time
* We need to be able to refund up to 14 days after gift card purchase, probably needs a cancel endpoint
* Do we wanna go for no status updates or balance checks or put it as a hard requirement
## MobilePay Marketplace API
Owned by MobilePay called by Marketplace Seller
<details>
<summary><b>POST products</b></summary>
Adds a new product to the Marketplace
##### Request
```json
{
"productReference": "Uy9C9PB9kqU8M2tep5MAA", // We will be idempotent on this value
"productDetails": {
{
"language": "DA",
"productName": "Matas Gavekort",
"productDescroption": "Et gavekort til Matas, der kan bruges I alle Matas butikker.",
"productImageUrls": [
"https://gogift.dk/matas/image1.png",
"https://gogift.dk/matas/image2.png"
],
"detailsUrl": "https://matas.dk/gavekort",
"validity": "Gælder 2 år fra købsdato"
},
{
"language": "EN"
"productName": "Matas Gift Card",
"productDescroption": "A gift card for Matas that can be used in all Matas stores.",
"productImageUrls": [
"https://gogift.dk/matas/image1.png",
"https://gogift.dk/matas/image2.png"
],
"detailsUrl": "https://matas.dk/gavekort",
"validity": "Valid 2 years from purchase"
}
}
"currencyCode": "DKK",
"configuration": {
"incremental": {
"minimum": 100,
"maximum": 10000,
"increment": 50,
"pricePer": 0.90,
"vatPer": 0.10,
"type": "amount | quantity"
}
},
"unwrappingLogoUrl": "https://gogift.dk/assets/matas-logo",
"marketplaceImageUrl": "https://gogift.dk/assets/matas-logo",
"expirationDate": "2011-02-29 12:43:00"
}
```
##### Response 200 OK
</details>
<details>
<summary><b>PATCH products/:productReference</b></summary>
Updates a product on the Marketplace
##### Request
```json
{
"productDetails": {
{
"language": "DA",
"productName": "Matas Gavekort",
"productDescroption": "Et gavekort til Matas, der kan bruges I alle Matas butikker.",
"productImageUrls": [
"https://gogift.dk/matas/image1.png",
"https://gogift.dk/matas/image2.png"
],
"detailsUrl": "https://matas.dk/gavekort"
},
{
"language": "EN"
"productName": "Matas Gift Card",
"productDescroption": "A gift card for Matas that can be used in all Matas stores.",
"productImageUrls": [
"https://gogift.dk/matas/image1.png",
"https://gogift.dk/matas/image2.png"
],
"detailsUrl": "https://matas.dk/gavekort"
}
},
"validityMonthsFromPurchase": 24
}
```
##### Response 200 OK
##### Response 404 NotFound
</details>
<details>
<summary><b>GET products/:productReference</b></summary>
Returns details for a product on the Marketplace
##### Response 200 OK - Same as POST products request
</details>
<details>
<summary><b>GET products</b></summary>
Returns details for all products on the Marketplace owned by the calling Marketplace Seller
##### Response 200 OK - Same as POST products request
</details>
<details>
<summary><b>DELETE products/:productReference</b></summary>
Removes a product from the Marketplace
##### Response 200 OK
</details>
## Marketplace API
Owned by Marketplace Seller called by MobilePay
<details>
<summary><b>POST orders</b></summary>
Creates a new order for a specific configuration of a product
##### POST orders
```json
{
"orderId": "fc6b8155-624a-4d10-9aad-c1df10809913", // You must be idempotent on this id
"productReference": "Uy9C9PB9kqU8M2tep5MAA",
"configuration": {
"fixed": {
"id": "49e93bf3-07df-4bdb-af7c-500318814cfa"
},
"incremental": {
"amount": 100
}
}
}
```
#### Response 200 OK
```json
{
"orderReference": "UxKD92jdNDjapqld"
}
```
</details>
<details>
<summary><b>GET orders/:orderReference</b></summary>
Returns details for a specific order
#### Response 200 OK
```json
{
"productReferenceId": "Uy9C9PB9kqU8M2tep5MAA",
"expiryDate": "2011-02-29 12:43:00",
"completelyUsed": "true",
"remainingValue": "230 kr.",
"barcodes": [
{
"id": "jdkIDJWkw928wJDlda"
"url": "https://gogift.dk/code/917238273/1",
"title": "1x Popcorn",
"description": "Vis denne og få 1,5L popcorn!"
}
]
}
```
</details>