# Generic Redemption APIs

Here is the skeleton of APIs, Xoxoday requires, whilst communicating with your point system.

Xoxoday can support varying API designs with few restrictions.

1. Should be REST APIs.
2. Content-type should be JSON.
3. Should be HTTPS&#x20;

Use these API Skeletons to design your APIs.<br>

## **Fetch Redemption Point Balance**

Xoxoday will use this API to fetch a user’s points from your point system.<br>

### **Request:**

| **Method**   | **URL**                                       |
| ------------ | --------------------------------------------- |
| **GET/POST** | https\://<3rd-party-api-url-for-fetch-points> |

| **Params**                                                                | **Values**                                                                                                                                                                                                    |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><strong>unique\_id\*</strong></p><p><strong>auth\_token\*</strong></p> | <p>Unique identifier of a user </p><p>Some authorization value to successfully allow the request from xoxoday to your system. Authorization can be but not limited to hash, Basic auth, Bearer token <br></p> |

**\* Key name can be different, there’s no restriction**

### **Request Body:**

```
{
"unique_id":"DB123",
"auth_token":"0fe121f67cb0b90ef39fd83380bf1e12310912c86f4d7d5bfed3f3198e531b4f8d8af179b68361da28d0bc0353ce45ac7c374aa9c51dfb54c6705571f5ab8fe8"
}
```

### **Sample Response:**

```
Status: 200 OK 
Body: 
{ 
   "status":"1",
   "points_info":{ 
      "points_received":"2000",
      "points_redeemed":"1300",
      "points_available":"700"
   }
}
```

**\* This is just a sample response, it can vary according to your API design.**

## **Update Redemption Transaction**

Xoxoday will use this API to update a user’s points in your point system.

### **Request:**

| **Method**         | **URL**                                        |
| ------------------ | ---------------------------------------------- |
| **POST/PUT/PATCH** | https\://<3rd-party-api-url-for-update-points> |

| **Params**                                                                                                                                                                   | **Values**                                                                                                                                                                                                     |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><strong>unique\_id\*</strong></p><p><strong>auth\_token\*</strong><br></p><p><strong>total\_points\_redeemed\*</strong></p><p><strong>total\_points\_added\*</strong></p> | <p>Unique identifier of a user </p><p>Some authorization value to successfully allow the request from Xoxoday to your system. Authorization can be but not limited to hash, Basic auth, Bearer token, etc.</p> |

\* Key name can be different, there’s no restriction

### **Request Body:**

```
{ 
"unique_id":"TTEO32S99ERCL",
"auth_token":"0fe121f67cb0b90ef39fd83380bf1e12310912c86f4d7d5bfed3f3198e531b4f8d8af179b68361da28d0bc0353ce45ac7c374aa9c51dfb54c6705571f5ab8fe8",
"total_points_redeemed":"129",
"total_points_added":null,
"extra": { 
 "order_id": "AB1890082790",
 "amount": "129",
 "products": [
{
 "id": "123456",
"name": "product name",
"price": 29
},...
] 
}
}
```

### **Sample Response:**

```
Status: 200 OK

Body:

{ 
   "status":"1",
   "message":"Successfully updated"
}

```

**\*  This is just a sample response, it can vary according to your API design.**<br>
