Api Documentation
KamioKash API (1.9.5)
Download OpenAPI specification:Download
Welcome to the KamioKash API Documentation
This documentation provides comprehensive guidance on the KamioKash Rewards API. The KamioKash API is designed to facilitate seamless integration with our rewards platform, enabling developers to leverage various endpoints to manage and distribute rewards efficiently.
Overview
The KamioKash API is a collaborative effort between Bluetrino and GoRhino, combining our expertise in fintech, rewards, and loyalty solutions to create a robust and scalable rewards management system. Whether you are looking to integrate reward functionalities into your application or automate reward distribution processes, our API offers the tools and resources needed to accomplish your goals.
Features
- User Management: Endpoints to manage user accounts and profiles.
- Reward Distribution: APIs to issue, track, and manage rewards.
- Transaction History: Access detailed transaction logs and reward histories.
- Analytics & Reporting: Generate reports and analyze reward distribution data.
- Security: Advanced security measures to protect user data and transactions.
Getting Started
To begin using the KamioKash API, you will need to:
- Obtain API Keys: Contact our support team to receive your API keys.
- Authentication: Implement authentication mechanisms using your API keys.
- Explore Endpoints: Utilize the detailed endpoint documentation to integrate the desired functionalities into your application.
Collaboration and Support
Bluetrino and GoRhino are committed to providing exceptional support and continuous improvements to the KamioKash API. Should you have any questions or require assistance, please refer to our support resources or contact us directly.
Get Api Key summary
Fetches a summary of information that is linked to the API key, including the org it is linked to as well as the obfuscated API Key
Authorizations:
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "org": "string",
- "apiKey": "string",
- "access": { },
- "campaignId": "string",
- "currency": "string",
- "logo": "string",
- "favicon": "string"
}
Search Products
Search Products, returns a paginated subset of products based on the search criteria
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
search | string Search Terms |
categoryId | string Category ID |
bookingRequired | boolean Booking Required |
category | string Category Name |
isAvailable | boolean Is Available |
longitude | number Example: longitude=28.0473 Geofence Longitude, use in conjuction with latitude |
latitude | number Example: latitude=-33.9897179 Geofence Latitude, use in conjuction with longitude |
radius | number Default: 10 Radius in KMs, use in conjuction with longitude and latitude |
tierId | string Tier ID |
tierPrecedence | number Tier Precedence Lower Numbers indicate higher priority, eg: Platinum > Gold this, Platinum = 5 and Gold = 4 |
tierPrecedenceOp | string (Operators) Enum: "gt" "lt" "gte" "lte" "eq" Tier Precedence Operator, available operators are gt, lt, gte, lte, eq Used in conjuction with tierPrecedence, eg: tierPrecedence=1&tierPrecedenceOp=gt will return all tiers with precedence greater than 1 |
minCost | number Minimum cost |
maxCost | number Maximum cost |
sort | string Default: 10 Example: sort=name:asc Sort Parameter, fields available are name, category, price |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "name": "string",
- "shortDescription": "string",
- "description": "string",
- "bookInAdvance": true,
- "tags": [
- "string"
], - "category": "string",
- "primaryImage": "string",
- "secondaryImages": [
- "string"
], - "variants": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "description": "string",
- "offerDetails": "string",
- "termsAndConditions": "string",
- "available": true,
- "price": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
], - "currency": "string",
- "website": "string",
- "weekdays": {
- "mon": true,
- "tue": true,
- "wed": true,
- "thu": true,
- "fri": true,
- "sat": true,
- "sun": true
}, - "branches": [
- {
- "id": "string",
- "name": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "addressLine3": "string",
- "suburb": "string",
- "city": "string",
- "province": "string",
- "country": "string",
- "postalCode": "string",
- "longitude": 0,
- "latitude": 0
}, - "contactDetails": {
- "contactName": "string",
- "email": "string",
- "phoneNumber": "string"
}, - "distance": 0
}
]
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Find Products based on a distance Vector
Find Product Recommendations based on a distance vector, Request Permissions from Kamiokash
Authorizations:
Request Body schema: application/jsonrequired
limit required | number Limit |
vector required | string Vector Array |
Responses
Request samples
- Payload
{- "limit": 0,
- "vector": "string"
}
Response samples
- 200
- 401
- 403
[- {
- "id": "string",
- "name": "string",
- "shortDescription": "string",
- "description": "string",
- "bookInAdvance": true,
- "tags": [
- "string"
], - "category": "string",
- "primaryImage": "string",
- "secondaryImages": [
- "string"
], - "variants": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "description": "string",
- "offerDetails": "string",
- "termsAndConditions": "string",
- "available": true,
- "price": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
], - "currency": "string",
- "website": "string",
- "weekdays": {
- "mon": true,
- "tue": true,
- "wed": true,
- "thu": true,
- "fri": true,
- "sat": true,
- "sun": true
}, - "branches": [
- {
- "id": "string",
- "name": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "addressLine3": "string",
- "suburb": "string",
- "city": "string",
- "province": "string",
- "country": "string",
- "postalCode": "string",
- "longitude": 0,
- "latitude": 0
}, - "contactDetails": {
- "contactName": "string",
- "email": "string",
- "phoneNumber": "string"
}, - "distance": 0
}
], - "distance": 0
}
]
Find Product
Find Product by ID
Authorizations:
path Parameters
id required | string |
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "name": "string",
- "shortDescription": "string",
- "description": "string",
- "bookInAdvance": true,
- "tags": [
- "string"
], - "category": "string",
- "primaryImage": "string",
- "secondaryImages": [
- "string"
], - "variants": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "description": "string",
- "offerDetails": "string",
- "termsAndConditions": "string",
- "available": true,
- "price": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
], - "currency": "string",
- "website": "string",
- "weekdays": {
- "mon": true,
- "tue": true,
- "wed": true,
- "thu": true,
- "fri": true,
- "sat": true,
- "sun": true
}, - "branches": [
- {
- "id": "string",
- "name": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "addressLine3": "string",
- "suburb": "string",
- "city": "string",
- "province": "string",
- "country": "string",
- "postalCode": "string",
- "longitude": 0,
- "latitude": 0
}, - "contactDetails": {
- "contactName": "string",
- "email": "string",
- "phoneNumber": "string"
}, - "distance": 0
}
]
}
Find Product Recommendations
Find Product Recommendations based on another product
Authorizations:
path Parameters
id required | string |
query Parameters
limit required | number |
Responses
Response samples
- 200
- 401
- 403
[- {
- "id": "string",
- "name": "string",
- "shortDescription": "string",
- "description": "string",
- "bookInAdvance": true,
- "tags": [
- "string"
], - "category": "string",
- "primaryImage": "string",
- "secondaryImages": [
- "string"
], - "variants": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "description": "string",
- "offerDetails": "string",
- "termsAndConditions": "string",
- "available": true,
- "price": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
], - "currency": "string",
- "website": "string",
- "weekdays": {
- "mon": true,
- "tue": true,
- "wed": true,
- "thu": true,
- "fri": true,
- "sat": true,
- "sun": true
}, - "branches": [
- {
- "id": "string",
- "name": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "addressLine3": "string",
- "suburb": "string",
- "city": "string",
- "province": "string",
- "country": "string",
- "postalCode": "string",
- "longitude": 0,
- "latitude": 0
}, - "contactDetails": {
- "contactName": "string",
- "email": "string",
- "phoneNumber": "string"
}, - "distance": 0
}
]
}
]
Find Product Suggestions Deprecated
Find products based on search queries, returns a list of suggestions based on the search criteria
Authorizations:
query Parameters
q required | string |
Responses
Response samples
- 200
- 401
- 403
{- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "products": [
- {
- "id": "string",
- "name": "string",
- "shortDescription": "string",
- "description": "string",
- "bookInAdvance": true,
- "tags": [
- "string"
], - "category": "string",
- "primaryImage": "string",
- "secondaryImages": [
- "string"
], - "variants": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "description": "string",
- "offerDetails": "string",
- "termsAndConditions": "string",
- "available": true,
- "price": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
], - "currency": "string",
- "website": "string",
- "weekdays": {
- "mon": true,
- "tue": true,
- "wed": true,
- "thu": true,
- "fri": true,
- "sat": true,
- "sun": true
}, - "branches": [
- {
- "id": "string",
- "name": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "addressLine3": "string",
- "suburb": "string",
- "city": "string",
- "province": "string",
- "country": "string",
- "postalCode": "string",
- "longitude": 0,
- "latitude": 0
}, - "contactDetails": {
- "contactName": "string",
- "email": "string",
- "phoneNumber": "string"
}, - "distance": 0
}
]
}
], - "categories": [
- {
- "id": "string",
- "name": "string"
}
]
}
Find All Tiers
Find All Tiers
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
name | string Tier Name |
precedence | integer The tier precedence |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Find Categories
Find categories based on search queries, returns a list of categories based on the search criteria
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
categoryId | string Category ID |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "name": "string"
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Search Orders
Search Orders, returns a paginated subset of orders based on the search criteria
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
ownerId | string Member Exteral Id |
includeLines | boolean Include Lines |
acrossCampaigns | boolean This flag will return all orders across all campaigns (use case: Site that includes both a tactical and always on campaign) |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "owner": "string",
- "total": 0,
- "lines": [
- {
- "id": "string",
- "productId": "string",
- "orderId": "string",
- "variantId": "string",
- "product": {
- "name": "string",
- "variant": "string",
- "description": "string",
- "primaryImage": "string",
- "variantDescription": "string",
- "offerDetails": "string",
- "termsAndConditions": "string"
}, - "requiresBooking": true,
- "cost": 0,
- "qty": 0,
- "total": 0,
- "codes": [
- {
- "code": "string",
- "redeemed": true
}
], - "booking": {
- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}, - "meta": { }
}
]
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Create a new Order
Create a new Order
Authorizations:
Request Body schema: application/jsonrequired
reference | string External ID or your reference to this order, use this to identify the order in your system, if not provided a random one will be generated |
owner required | string |
meta | object Metadata to be stored with the order |
required | Array of objects (CreateOrderLineDto) |
Responses
Request samples
- Payload
{- "reference": "string",
- "owner": "string",
- "meta": { },
- "lines": [
- {
- "productId": "string",
- "variantId": "string",
- "reference": "string",
- "quantity": 0,
- "booking": {
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}, - "meta": { }
}
]
}
Response samples
- 200
- 401
- 403
{- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "owner": "string",
- "total": 0,
- "lines": [
- {
- "id": "string",
- "productId": "string",
- "orderId": "string",
- "variantId": "string",
- "product": {
- "name": "string",
- "variant": "string",
- "description": "string",
- "primaryImage": "string",
- "variantDescription": "string",
- "offerDetails": "string",
- "termsAndConditions": "string"
}, - "requiresBooking": true,
- "cost": 0,
- "qty": 0,
- "total": 0,
- "codes": [
- {
- "code": "string",
- "redeemed": true
}
], - "booking": {
- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}, - "meta": { }
}
]
}
Get order by id
Find Order by ID
Authorizations:
path Parameters
id required | string The ID of the order |
query Parameters
ownerId | string The owner of the order |
acrossCampaigns | boolean This flag will return all orders across all campaigns (use case: Site that includes both a tactical and always on campaign) |
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "owner": "string",
- "total": 0,
- "lines": [
- {
- "id": "string",
- "productId": "string",
- "orderId": "string",
- "variantId": "string",
- "product": {
- "name": "string",
- "variant": "string",
- "description": "string",
- "primaryImage": "string",
- "variantDescription": "string",
- "offerDetails": "string",
- "termsAndConditions": "string"
}, - "requiresBooking": true,
- "cost": 0,
- "qty": 0,
- "total": 0,
- "codes": [
- {
- "code": "string",
- "redeemed": true
}
], - "booking": {
- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}, - "meta": { }
}
]
}
Decrypts the line
Decrypts the line
Authorizations:
path Parameters
id required | string |
lineId required | string |
query Parameters
ownerId | string Member Exteral Id |
acrossCampaigns | boolean This flag will return all orders across all campaigns (use case: Site that includes both a tactical and always on campaign) |
decrypt required | boolean |
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "productId": "string",
- "orderId": "string",
- "variantId": "string",
- "product": {
- "name": "string",
- "variant": "string",
- "description": "string",
- "primaryImage": "string",
- "variantDescription": "string",
- "offerDetails": "string",
- "termsAndConditions": "string"
}, - "requiresBooking": true,
- "cost": 0,
- "qty": 0,
- "total": 0,
- "codes": [
- {
- "code": "string",
- "redeemed": true
}
], - "booking": {
- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}, - "meta": { }
}
Create a new Order with a random product
Create a new Order with a random product, the product will be selected from the campaign and determined by weight This is used in conjunction with the Short Term Campaigns to create a random order for the user to redeem.
Authorizations:
Request Body schema: application/jsonrequired
reference | string External ID or your reference to this order, use this to identify the order in your system, if not provided a random one will be generated |
owner required | string Member Exteral Id |
cost | number Default: 1 Cost of the order |
meta | object Additional Metadata |
Responses
Request samples
- Payload
{- "reference": "string",
- "owner": "string",
- "cost": 1,
- "meta": { }
}
Response samples
- 200
- 401
- 403
{- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "owner": "string",
- "total": 0,
- "lines": [
- {
- "id": "string",
- "productId": "string",
- "orderId": "string",
- "variantId": "string",
- "product": {
- "name": "string",
- "variant": "string",
- "description": "string",
- "primaryImage": "string",
- "variantDescription": "string",
- "offerDetails": "string",
- "termsAndConditions": "string"
}, - "requiresBooking": true,
- "cost": 0,
- "qty": 0,
- "total": 0,
- "codes": [
- {
- "code": "string",
- "redeemed": true
}
], - "booking": {
- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}, - "meta": { }
}
]
}
Find Bookings
Find bookings based on search queries, returns a list of bookings based on the search criteria
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
id | string Booking ID |
ownerId | string Member Exteral Id |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Get a single Booking
Get a single booking based on the booking id
Authorizations:
path Parameters
id required | string |
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}
Update Booking
Update a booking status or booking date
Authorizations:
path Parameters
id required | string |
Request Body schema: application/jsonrequired
status | string (BookingStatus) Enum: "REQUESTED" "PENDING" "CONFIRMED" "UNSUCCESSFUL" "CANCELLED" |
date | string <date-time> Date of the booking |
pax | number Number of People in the booking |
notes | string Additional Notes |
Responses
Request samples
- Payload
{- "status": "REQUESTED",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}
Response samples
- 200
- 401
- 403
{- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}
Create Booking
Create a booking
Authorizations:
path Parameters
redemptionId required | string |
Request Body schema: application/jsonrequired
firstName required | string First Name |
lastName required | string Last Name |
string Email Address | |
phone | string Phone Number |
branch | string Branch ID |
date required | string <date-time> Date of the booking |
pax | number Number of People in the booking |
notes | string Additional Notes |
Responses
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}
Response samples
- 200
- 400
- 401
- 403
{- "id": "string",
- "dateRequested": "2019-08-24T14:15:22Z",
- "status": "REQUESTED",
- "meta": { },
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "branch": "string",
- "date": "2019-08-24T14:15:22Z",
- "pax": 0,
- "notes": "string"
}
Find All Members
Find All Members
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Create Member
Create Member
Authorizations:
Request Body schema: application/jsonrequired
firstName required | string |
lastName | string |
string | |
phone | string |
status | string (MemberStatus) Enum: "active" "inactive" |
idp | string Identity Provider, 'reference' is the default value and used if you are generating and storing your own user ids and links |
userId required | string The external ID of the member, an identifier from your system to locate the member. |
externalId required | string |
meta | object |
object (CommunicationPreferences) |
Responses
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "idp": "cognito",
- "userId": "member_123",
- "externalId": "string",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
Response samples
- 200
- 401
- 403
{- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
Find Member By IDP
Find Member by IDP and ID
Authorizations:
path Parameters
idp required | string The Identity Provider |
id required | string The User ID from the Identity Provider |
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
Find Member
Find Member by ID
Authorizations:
path Parameters
id required | string |
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
Update Member
Updates a Member
Authorizations:
path Parameters
id required | string |
Request Body schema: application/jsonrequired
firstName | string |
lastName | string |
string | |
phone | string |
status | string (MemberStatus) Enum: "active" "inactive" |
idp | string Identity Provider, 'reference' is the default value and used if you are generating and storing your own user ids and links |
userId | string The external ID of the member, an identifier from your system to locate the member. |
meta | object |
object (CommunicationPreferences) |
Responses
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "idp": "cognito",
- "userId": "member_123",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
Response samples
- 200
- 401
- 403
{- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
Delete Member
Deletes a Member
Authorizations:
path Parameters
id required | string |
Responses
Response samples
- 200
- 401
- 403
{- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phone": "string",
- "status": "active",
- "meta": { },
- "communicationPreferences": {
- "general": {
- "email": true,
- "sms": true
}, - "marketing": {
- "email": true,
- "sms": true
}, - "booking": {
- "email": true,
- "sms": true
}, - "earn": {
- "email": true,
- "sms": true
}, - "order": {
- "email": true,
- "sms": true
}
}
}
Find Tags
Find tags based on search queries, returns a list of tags based on the search criteria
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
tagId | string Tag ID |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "name": "string"
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Get All Wallets
Get All Wallets
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
externalId | string The external ID of the wallet, an identifier from your system to locate the wallet. |
ownerId | string The Owner of the wallet, the Member Identifier. |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "data": [
- {
- "id": "string",
- "currency": "string",
- "name": "string",
- "balance": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Create a Wallet
Create a Wallet
Authorizations:
Request Body schema: application/jsonrequired
externalId | string The external ID of the wallet, an identifier from your system to locate the wallet. |
name | string |
owner required | string The Owner of the wallet, the Member Identifier. |
Responses
Request samples
- Payload
{- "externalId": "wallet_123",
- "name": "string",
- "owner": "UUID"
}
Response samples
- 201
- 400
- 401
- 403
{- "id": "string",
- "currency": "string",
- "name": "string",
- "balance": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
Get a Wallet
Get a Wallet by ID
Authorizations:
path Parameters
id required | string |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "id": "string",
- "currency": "string",
- "name": "string",
- "balance": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
Update a Wallet
Update a Wallet
Authorizations:
path Parameters
id required | string |
Request Body schema: application/jsonrequired
name | string |
Responses
Request samples
- Payload
{- "name": "string"
}
Response samples
- 200
- 400
- 401
- 403
{- "id": "string",
- "currency": "string",
- "name": "string",
- "balance": 0,
- "tier": {
- "id": "string",
- "name": "string",
- "precedence": 0,
- "benefits": [
- "string"
], - "imageUrl": "string"
}
}
Get All Transactions
Get All Transactions
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
walletId | string |
dateFrom | string <date-time> |
dateTo | string <date-time> |
type | Array of strings (TransactionType) Items Enum: "EARN" "BURN" "EXPIRY" |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "data": [
- {
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "description": "string",
- "comment": "string",
- "externalId": "string",
- "type": "EARN",
- "amount": 0,
- "currency": "string",
- "walletId": "string"
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Get a Transaction
Get a Transaction by ID
Authorizations:
path Parameters
id required | string |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "description": "string",
- "comment": "string",
- "externalId": "string",
- "type": "EARN",
- "amount": 0,
- "currency": "string",
- "walletId": "string"
}
Create a BURN Transaction
Create a BURN Transaction
Authorizations:
Request Body schema: application/jsonrequired
date | string <date-time> Date of the transaction (uses current date if not provided) |
description required | string |
comment | string |
externalId required | string |
amount required | number |
walletId required | string |
meta | object |
Responses
Request samples
- Payload
{- "id": "test123",
- "amount": 1000,
- "date": "2019-01-01T00:00:00.000Z",
- "description": "The Answer to life, the universes, and everything",
- "comment": "42",
- "externalId": "MY_EXTERNAL_ID",
- "walletId": "MY_EXTERNAL_WALLET_ID"
}
Response samples
- 200
- 400
- 401
- 402
- 403
{- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "description": "string",
- "comment": "string",
- "externalId": "string",
- "type": "EARN",
- "amount": 0,
- "currency": "string",
- "walletId": "string"
}
Create an EARN Transaction
Create an EARN Transaction
Authorizations:
Request Body schema: application/jsonrequired
id required | string The unique identifier for this transaction |
amount required | number The value this transaction represents |
date required | string <date-time> The date of the transaction |
walletId required | string The wallet ID of the wallet this transaction is associated with |
description | string A description of the transaction |
comment | string A comment on the transaction [Internal Use] |
meta | object Any additional metadata associated with the transaction |
Responses
Request samples
- Payload
{- "id": "test123",
- "amount": 1000,
- "walletId": "EXTERNAL_ID",
- "date": "2019-01-01T00:00:00.000Z",
- "description": "Test Transaction",
- "comment": "Test Comment",
- "meta": {
- "test": "test",
- "bool": true,
- "meta": {
- "test": "test",
- "bool": true
}
}
}
Response samples
- 202
- 400
- 401
- 403
{- "status": "accepted",
- "requestId": "string",
- "statusCheckUrl": "string",
- "message": "string"
}
Get Leaderboard
Get Leaderboard, sorted by points, refreshes every 5 minutes
Authorizations:
query Parameters
page | number >= 1 Default: 1 Page number |
limit | number [ 0 .. 100 ] Default: 10 Items per page, set to zero for just a count of items |
Responses
Response samples
- 200
- 401
- 403
{- "data": [
- {
- "id": "string",
- "displayName": "string",
- "points": 0
}
], - "total": 0,
- "currentPage": 0,
- "pageSize": 0,
- "totalPages": 0
}
Search Reviews
Search Reviews, returns a paginated subset of reviews based on the search criteria
Authorizations:
Request Body schema: application/jsonrequired
memberId required | string ID of the member creating the review |
voucherId required | string ID of the voucher being reviewed |
partnerId required | string ID of the partner being reviewed |
rating required | number [ 1 .. 5 ] Rating given by the member |
reviewText required | string Text of the review |
Responses
Request samples
- Payload
{- "memberId": "string",
- "voucherId": "string",
- "partnerId": "string",
- "rating": 1,
- "reviewText": "string"
}
Response samples
- 201
- 401
- 403
{- "id": "string",
- "rating": 0,
- "reviewText": "string",
- "profanityScore": 0,
- "memberId": "string",
- "voucherId": "string",
- "reportedById": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
Report Review
Report a review, sets the review as reported.
Authorizations:
path Parameters
reviewId required | string |
Request Body schema: application/jsonrequired
reporterId required | number ID of the member reporting the review |
Responses
Request samples
- Payload
{- "reporterId": 0
}
Response samples
- 200
- 401
- 403
{- "id": "string",
- "rating": 0,
- "reviewText": "string",
- "profanityScore": 0,
- "memberId": "string",
- "voucherId": "string",
- "reportedById": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}