Skip to main content

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:

  1. Obtain API Keys: Contact our support team to receive your API keys.
  2. Authentication: Implement authentication mechanisms using your API keys.
  3. 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.

Me

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:
(Api-KeyApi-Key-Secret)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "org": "string",
  • "apiKey": "string",
  • "access": { },
  • "campaignId": "string",
  • "currency": "string",
  • "logo": "string",
  • "favicon": "string"
}

Products

Search Products

Search Products, returns a paginated subset of products based on the search criteria

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "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:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
limit
required
number

Limit

vector
required
string

Vector Array

Responses

Request samples

Content type
application/json
{
  • "limit": 0,
  • "vector": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Find Product

Find Product by ID

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "shortDescription": "string",
  • "description": "string",
  • "bookInAdvance": true,
  • "tags": [
    ],
  • "category": "string",
  • "primaryImage": "string",
  • "secondaryImages": [
    ],
  • "variants": [
    ],
  • "currency": "string",
  • "website": "string",
  • "weekdays": {
    },
  • "branches": [
    ]
}

Find Product Recommendations

Find Product Recommendations based on another product

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string
query Parameters
limit
required
number

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find Product Suggestions Deprecated

Find products based on search queries, returns a list of suggestions based on the search criteria

Authorizations:
(Api-KeyApi-Key-Secret)
query Parameters
q
required
string

Responses

Response samples

Content type
application/json
{
  • "tags": [
    ],
  • "products": [
    ],
  • "categories": [
    ]
}

Tiers

Find All Tiers

Find All Tiers

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Find Tier By Id

Find Tier By Id

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "precedence": 0,
  • "benefits": [
    ],
  • "imageUrl": "string"
}

Categories

Find Categories

Find categories based on search queries, returns a list of categories based on the search criteria

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Find Category by ID

Find a category by its unique identifier

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Orders

Search Orders

Search Orders, returns a paginated subset of orders based on the search criteria

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Create a new Order

Create a new Order

Authorizations:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
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

Content type
application/json
{
  • "reference": "string",
  • "owner": "string",
  • "meta": { },
  • "lines": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "owner": "string",
  • "total": 0,
  • "lines": [
    ]
}

Get order by id

Find Order by ID

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "id": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "owner": "string",
  • "total": 0,
  • "lines": [
    ]
}

Decrypts the line

Decrypts the line

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "id": "string",
  • "productId": "string",
  • "orderId": "string",
  • "variantId": "string",
  • "product": {
    },
  • "requiresBooking": true,
  • "cost": 0,
  • "qty": 0,
  • "total": 0,
  • "codes": [
    ],
  • "booking": {
    },
  • "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:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
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

Content type
application/json
{
  • "reference": "string",
  • "owner": "string",
  • "cost": 1,
  • "meta": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "owner": "string",
  • "total": 0,
  • "lines": [
    ]
}

Bookings

Find Bookings

Find bookings based on search queries, returns a list of bookings based on the search criteria

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Get a single Booking

Get a single booking based on the booking id

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "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:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string
Request Body schema: application/json
required
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

Content type
application/json
{
  • "status": "REQUESTED",
  • "date": "2019-08-24T14:15:22Z",
  • "pax": 0,
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "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:
(Api-KeyApi-Key-Secret)
path Parameters
redemptionId
required
string
Request Body schema: application/json
required
firstName
required
string

First Name

lastName
required
string

Last Name

email
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

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "branch": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "pax": 0,
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "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"
}

Members

Find All Members

Find All Members

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Create Member

Create Member

Authorizations:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
firstName
required
string
lastName
string
email
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

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "status": "active",
  • "idp": "cognito",
  • "userId": "member_123",
  • "externalId": "string",
  • "meta": { },
  • "communicationPreferences": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "status": "active",
  • "meta": { },
  • "communicationPreferences": {
    }
}

Find Member

Find Member by ID

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "status": "active",
  • "meta": { },
  • "communicationPreferences": {
    }
}

Update Member

Updates a Member

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string
Request Body schema: application/json
required
firstName
string
lastName
string
email
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

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "status": "active",
  • "idp": "cognito",
  • "userId": "member_123",
  • "meta": { },
  • "communicationPreferences": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "status": "active",
  • "meta": { },
  • "communicationPreferences": {
    }
}

Delete Member

Deletes a Member

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "phone": "string",
  • "status": "active",
  • "meta": { },
  • "communicationPreferences": {
    }
}

Tags

Find Tags

Find tags based on search queries, returns a list of tags based on the search criteria

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Wallets

Get All Wallets

Get All Wallets

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Create a Wallet

Create a Wallet

Authorizations:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
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

Content type
application/json
{
  • "externalId": "wallet_123",
  • "name": "string",
  • "owner": "UUID"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "currency": "string",
  • "name": "string",
  • "balance": 0,
  • "tier": {
    }
}

Get a Wallet

Get a Wallet by ID

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "currency": "string",
  • "name": "string",
  • "balance": 0,
  • "tier": {
    }
}

Update a Wallet

Update a Wallet

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "currency": "string",
  • "name": "string",
  • "balance": 0,
  • "tier": {
    }
}

Transactions

Get All Transactions

Get All Transactions

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Get a Transaction

Get a Transaction by ID

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "comment": "string",
  • "externalId": "string",
  • "type": "EARN",
  • "amount": 0,
  • "currency": "string",
  • "walletId": "string"
}

Get a Transaction's Status

Get a Transaction's Status by ID

Authorizations:
(Api-KeyApi-Key-Secret)
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "accepted",
  • "requestId": "string",
  • "statusCheckUrl": "string",
  • "message": "string"
}

Create a BURN Transaction

Create a BURN Transaction

Authorizations:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
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

Content type
application/json
{
  • "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

Content type
application/json
{
  • "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:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
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

Content type
application/json
{
  • "id": "test123",
  • "amount": 1000,
  • "walletId": "EXTERNAL_ID",
  • "date": "2019-01-01T00:00:00.000Z",
  • "description": "Test Transaction",
  • "comment": "Test Comment",
  • "meta": {
    }
}

Response samples

Content type
application/json
{
  • "status": "accepted",
  • "requestId": "string",
  • "statusCheckUrl": "string",
  • "message": "string"
}

System

HealthController_check

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "info": {
    },
  • "error": { },
  • "details": {
    }
}

LeaderBoard

Get Leaderboard

Get Leaderboard, sorted by points, refreshes every 5 minutes

Authorizations:
(Api-KeyApi-Key-Secret)
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

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "currentPage": 0,
  • "pageSize": 0,
  • "totalPages": 0
}

Reviews

Search Reviews

Search Reviews, returns a paginated subset of reviews based on the search criteria

Authorizations:
(Api-KeyApi-Key-Secret)
Request Body schema: application/json
required
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

Content type
application/json
{
  • "memberId": "string",
  • "voucherId": "string",
  • "partnerId": "string",
  • "rating": 1,
  • "reviewText": "string"
}

Response samples

Content type
application/json
{
  • "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:
(Api-KeyApi-Key-Secret)
path Parameters
reviewId
required
string
Request Body schema: application/json
required
reporterId
required
number

ID of the member reporting the review

Responses

Request samples

Content type
application/json
{
  • "reporterId": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "rating": 0,
  • "reviewText": "string",
  • "profanityScore": 0,
  • "memberId": "string",
  • "voucherId": "string",
  • "reportedById": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}