# Sancus Create Bnft All Endpoints Pathao's loyalty program. ## Authentication Use **Basic Auth** (username/password) for authentication ### Backend - [Create a Benefit](#Create-a-Benefit) - [Update a Benefit](#Update-a-Benefit) - [Publish a Benefit](#Publish-a-Benefit) - [List of Benefits](#List-of-Benefits) - [Upload a File](#Upload-a-File) #### Header ``` Authorization [required] Content-Type [application/json] ``` ## Backend ### Create a Benefit Create a benefit for the users.Creating a benefit has two modalities. * [Percentage Modality](#Percentage-Modality) * [Verification Modality](#Verification-Modality) #### Percentage Modality #### Url(Internal) ``` /benefits ``` #### Verb ``` POST ``` #### Request Payload ```json { { "title":"Artisan Banani 1", "city":[ "dhaka" ], "partner_type":"Clothing", "benefit_modality":{ "silver":{ "amount":10, "max_discount_amount": 100000, "description":"Deatils...This modality only works for silver user", "short_description":"Buy-1/Get-1" }, "gold":{ "amount":20, "max_discount_amount":100000, "description":"Deatils...This modality only works for gold user", "short_description":"This modality" } }, "partner_mobile_number":"01675450158", "thumbnail_url":"https://quicksilver-qa.pathaopay.xyz/images/sampleImage.jpeg", "short_description":"Upto 20% off", "description":"Upto 5% for Silver, 10% for Gold, 20% for Platinum users", "created_by":"team sancus", "visibility":true, "address": "Gulshan-1, Dhaka", "location": { "map_address": "Road16, Gulshan-1", "lat": 23.8103, "lon": 90.4125 }, "socials":{ "twitter":"www.artisan.com", "facebook":"www.facebook.com" }, "benefit_type":"percentage", "expires_at": "2021-11-23T11:27:29.538Z" } ``` | Key | Required | Type | Description | |-----------------------|----------|--------------------|------------------------------------------------------------------------------------| | title | ✔ | string | name of the partner where user can get the benefit. (**Max 30 characters**) | | | | city | ✔ | list of string | list of city/cities where the benefit will be available (**dhaka** and/or **chattogram**). **NB:** The city names are *Case Sensitive*. | | partner_type | ✔ | string | type of the partner e.g. Clothing, Fast Food, etc.(**15 characters**) | | benefit_modality | ✔ | list of dictionary | attributes of the benefit modality for a particular level. *The **max_discount_amount** is in **paisa** to avoid problems caused due to fraction* | | partner_mobile_number | ✔ | string | valid contact number (**11 digits**) | | thumbnail_url | ✔ | string | thumbnail url. | | | short_description | ✔ | string | short description of the root.(**max 20 characters**) | | description | ✔ | string | description of the root. (**max 150 characters**) | | created_by | ✔ | string | who created the benefit. | | website | ✔ | string | website of the partner (*Please put **https:// or http://** before the website URL*) | | visibility | ✔ | boolean | visibility of the benefit on the users' end.(**true** or **false**) | | address | ✔ | string | address of the partner (**max 50 characters**) | | location | ✔ | dictionary | location of the partner in the map. (*map address*, *lat*, *long*) | | social | ✔ | dictionary | social link of the partners e.g. **facebook, instagram, and twitter**. | | benefit_type | ✔ | string | type of the benefit e.g. **percentage**. | | expires_at | ✔ | string | the time of expiry of the benefit in ISO 8601 format e.g. **UTC+6(yyyy-mm-dd hh:mm:ss).** Something similar to (2021-11-23T11:27:29.538Z) this format| #### Response Payload ```json= { "id": "5ffd06775fe73800014bf009", "message": "Benefit created" } ``` #### Verification Modality #### Url(Internal) ``` /benefits ``` #### Verb ``` POST ``` #### Request Payload ```json { { "title":"Artisan Banani 1", "city":[ "dhaka" ], "partner_type":"Clothing", "benefit_modality":{ "silver":{ "amount":10, "max_discount_amount": 100000, "description":"Deatils...This modality only works for silver user", "short_description":"Buy-1/Get-1" }, "gold":{ "amount":20, "max_discount_amount":100000, "description":"Deatils...This modality only works for gold user", "short_description":"This modality" } }, "partner_mobile_number":"01675450158", "thumbnail_url":"https://quicksilver-qa.pathaopay.xyz/images/sampleImage.jpeg", "short_description":"Upto 20% off", "description":"Upto 5% for Silver, 10% for Gold, 20% for Platinum users", "created_by":"team sancus", "visibility":true, "address": "Gulshan-1, Dhaka", "location": { "map_address": "Road16, Gulshan-1", "lat": 23.8103, "lon": 90.4125 }, "socials":{ "twitter":"www.artisan.com", "facebook":"www.facebook.com" }, "benefit_type":"verification", "expires_at": "2021-11-23T11:27:29.538Z" } ``` | Key | Required | Type | Description | |-----------------------|----------|--------------------|------------------------------------------------------------------------------------| | title | ✔ | string | name of the partner where user can get the benefit. (**Max 30 characters**) | | | | city | ✔ | list of string | list of city/cities where the benefit will be available (**dhaka** and/or **chattogram**). | | partner_type | ✔ | string | type of the partner e.g. Clothing, Fast Food, etc.(**15 characters**) | | benefit_modality | ✔ | list of dictionary | attributes of the benefit modality for a particular level. ***For verification modality, put any acccepted value in the fields as shown in the example*** | | partner_mobile_number | ✔ | string | valid contact number (**11 digits**) | | thumbnail_url | ✔ | string | thumbnail url. | | | short_description | ✔ | string | short description of the root.(**max 20 characters**) | | description | ✔ | string | description of the root. (**max 150 characters**) | | created_by | ✔ | string | who created the benefit. | | website | ✔ | string | website of the partner. (*Please put **https://** before the website URL*) | | visibility | ✔ | boolean | visibility of the benefit on the users' end.(**true** or **false**) | | address | ✔ | string | address of the partner (**max 50 characters**) | | location | ✔ | dictionary | location of the partner in the map. (*map address*, *lat*, *long*) | | social | ✔ | dictionary | social link of the partners e.g. facebook, instagram, twitter etc. | | benefit_type | ✔ | string | type of the benefit e.g. **verification** . | | expires_at | ✔ | string | the time of expiry of the benefit in ISO 8601 format e.g. **UTC+6(yyyy-mm-dd hh:mm:ss).** Something similar to (2021-11-23T11:27:29.538Z) this format| #### Response Payload ```json= { "id": "5ffd06775fe73800014bf009", "message": "Benefit created" } ``` ### Update a Benefit Update a benefit for the users. #### Url(Internal) ``` /benefits ``` #### Verb ``` PUT ``` #### Update Payload ```json= { "id": "5ffd87ee9d875e00012a0207", "title":"Artisan Gulshan", "city":[ "dhaka" ], "partner_type":"Clothing", "benefit_modality":{ "silver":{ "amount":10, "max_discount_amount": 100000, "description":"Deatils...This modality only works for silver user", "short_description":"Silver 10%" } }, "partner_mobile_number":"01731375076", "thumbnail_url":"https://quicksilver-qa.pathaopay.xyz/images/sampleImage.jpeg", "short_description":"Upto 20% off", "description":"Upto 5% for Silver, 10% for Gold, 20% for Platinum users", "created_by":"team sancus", "visibility":true, "address": "Gulshan-1, Dhaka", "location": { "map_address": "Road 16, Gulshan circle", "lat": 23.8103, "lon": 90.4125 }, "socials":{ "twitter":"https://twitter.com/artisan", "facebook":"https://www.facebook.com/artisan" }, "website": "www.artisan.com", "benefit_type":"percentage", "expires_at": "2023-11-23T11:27:29.538Z" } ``` | Key | Required | Update | Type | |-----------------------|----------|--------|--------------------| | id | ✔ | | string | | title | ✔ | ✔ | string | | city |✔ | ✔ | list of string | | partner_type | ✔ | ✔ | string | | benefit_modality | ✔ | ✔ | list of dictionary | | partner_mobile_number | ✔ | | string | | thumbnail_url | ✔ | ✔ | string | | banner_url | ✔ | ✔ | string | | cover_image_url | ✔ | ✔ | string | | short_description | ✔ | ✔ | string | | description | ✔ | ✔ | string | | created_by | ✔ | | string | | website | ✔ | ✔ | string | | visibility | ✔ | ✔ | boolean | | address | ✔ | ✔ | string | | location | ✔ | ✔ | dictionary | | social | ✔ | ✔ | dictionary | | benefit_type | ✔ | ✔ | string | | expires_at | ✔ | ✔ | string | #### Response Payload ```json= { "message": "Benefit Updated" } ``` ### Publish a Benefit Publish a benefit for the users. #### Url(Internal) ``` /benefits/publish ``` #### Verb ``` PATCH ``` #### Publish Payload ```json= { "id": "5ffcfbc85fe73800014bf007" } ``` | Key | Required | Type | Description | |-----------------------|----------|--------------------|------------------------------------------------------------------------------------| | id | ✔ | string | id of the benefit that has been created. | #### Response Payload ```json= { "message": "Benefit Updated" } ``` ### List of Benefits List of all benefits of the existing users. #### Url(Internal) ``` /benefits ``` #### Verb ``` GET ``` #### List Payload ```json= { } ``` #### Response Payload ```json= { "data": [ { "ID": "5ffd06775fe73800014bf009", "Title": "Yellow", "Level": [ "silver", "gold" ], "Status": "draft", "City": [ "chattogram" ], "PartnerType": "Clothing", "BenefitModality": { "bronze": { "Amount": 5, "MaxDiscountAmount": 100000, "Description": "Artisan brings to you Happy Sale! It's something you have never witnessed before. Up to 40% discount on your desired winter and summer products.", "ShortDescription": "5% Discount" }, "silver": { "Amount": 10, "MaxDiscountAmount": 100000, "Description": "Artisan brings to you Happy Sale! It's something you have never witnessed before. Up to 40% discount on your desired winter and summer products.", "ShortDescription": "10% Discount" } }, "PartnerMobileNumber": "01675450158", "ThumbnailURL": "https://quicksilver-qa.pathaopay.xyz/images/sampleImage.jpeg", "ShortDescription": "20% discount", "Description": "Upto 5% for Silver, 10% for Gold, 20% for Platinum users", "CreatedBy": "team sancus", "Visibility": false, "Address": "Gulshan-1, Dhaka", "MapAddress": "", "Location": null, "Socials": { "facebook": "https://www.facebook.com/artisanoutfitters/", "twitter": "twitter.com" }, "BenefitType": "percentage", "Website": "https://artisanclick.com/", "ExpiresAt": "2021-11-23T11:27:29.538Z", "CreatedAt": "2021-01-12T02:16:23.501Z", "UpdatedAt": "2021-01-12T02:29:25.702Z" } ] } ``` **PS**: Additionally to search filtered *benefit list*, it is possible to filter with the following keys. You've to put them in the request payload. - ```"visibility" : true``` or ```"visibility" : false``` - ``` "city" : "dhaka" ``` or ``` "city" : "chattogram" ``` - ``` "status" : "published" ``` or ``` "status" : "draft"``` - ```"PartnerMobileNumber": "01675450158" ``` #### Example Request Payload ```json= { "visibility" : true, "city" : "dhaka" } ``` ### Upload a File Upload the ```thumbnail_url``` file for a benefit. #### Url(Internal) ``` /benefits/files ``` #### Verb ``` POST ``` #### Request Payload ##### Body ```form-data``` | Key | Value | |-----------|--------------------| | thumbnail | ```Select Files``` | **PS**: Max File Size <=1MB #### Response Payload ```json= { "thumbnail_url": "https://cdn.pathao.com/uploads/img/sancus/image-2021-01-13T12:15:08Zthumbnail_download.jpeg" } ``` *Clicking on the link on the response payload will redirect to a new tab where pressing **Send** request will open up the image.*