Bluai loyalty API (7.0.0)

Download OpenAPI specification:

This is full API documentation of Bluai API loyalty platform.

ACO specific

Customer Care

Submit customer care form

Authorizations:
api_key
Request Body schema: application/json
required
inquiry_type
required
string
Enum: "Redemption Inquiry" "Update Profile" "Technical Issue or Issue Accessing the Account" "Cancel my Membership" "Renew the Contract" "Questions about the Programme" "Points not credited to Account" "Others"

Inquiry type

full_name
required
string
email
required
string <email>
country_code
required
string (countryCode)

Country short code

mobile
required
string
membership_id
string
partner_id
string
guest_name
string
reservation_number
string
details
string

Responses

Request samples

Content type
application/json
{
  • "inquiry_type": "Redemption Inquiry",
  • "full_name": "string",
  • "email": "user@example.com",
  • "country_code": "string",
  • "mobile": "string",
  • "membership_id": "string",
  • "partner_id": "string",
  • "guest_name": "string",
  • "reservation_number": "string",
  • "details": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

User activation validation

Validate user activation from activation email link

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
required
reference
required
string (userReference)

Unique user reference identifier

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Interest Form

Submit interest form.

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
title
required
string
Enum: "Mr" "Mrs" "Ms"
first_name
required
string
last_name
required
string
email
required
string <email>
telephone_code
required
string (telephoneCode)

Country calling code, see list

mobile
required
string (mobile)

User's mobile without country code

company_name
required
string <string>
partner_id
integer <int64>

Child accor partner

captcha_token
required
string

Responses

Request samples

Content type
application/json
{
  • "title": "Mr",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "company_name": "string",
  • "partner_id": 0,
  • "captcha_token": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get countries

Return list of countries belonging to partner

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Cities

Get list of cities of country

Authorizations:
(api_keybearer)
query Parameters
country_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get brands

Get list of brands belonging to partner

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get balance statement

Get statement of all balance transactions of authenticated user

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

day_range
integer <int32>

number of days in past since today to take transaction from

sort
string
Enum: "newest" "oldest"

Order by

type
string
Enum: "reward" "redeem"

Transaction type, if empty all

trans_class_id
any
start_date
string <date-time>
Example: start_date=2035-01-25 17:20:30

Start date

end_date
string <date-time>
Example: end_date=2035-01-25 17:20:30

End date

lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

exclude_zero_points_transactions
integer <int32>

exclude zero pints transactions

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "paginator": {
    }
}

ASB specific

Get multiple balance Deprecated

Get multiple balance of authenticated user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "balances": {
    },
  • "selected_by_user_program_code": "string"
}

Get statement list Deprecated

Get statement list

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

partner_code
required
string
Enum: "ASBC" "ASBM" "ASBP"
day_range
integer <int32>

number of days in past since today to take transaction from

sort
string
Enum: "newest" "oldest" "trans_class_asc" "trans_class_desc"

Order by

type
string
Enum: "reward" "redeem"

Transaction type, if empty all

product_id
any
trans_class_id
any
start_date
string <date-time>
Example: start_date=2035-01-25 17:20:30

Start date

end_date
string <date-time>
Example: end_date=2035-01-25 17:20:30

End date

lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "paginator": {
    }
}

Get pending reversal rewards list Deprecated

Get pending reversal rewards list

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

partner_code
required
string
Enum: "ASBC" "ASBM" "ASBP"
day_range
integer <int32>

number of days in past since today to take transaction from

sort
string
Enum: "newest" "oldest" "trans_class_asc" "trans_class_desc"

Order by

start_date
string <date-time>
Example: start_date=2035-01-25 17:20:30

Start date

end_date
string <date-time>
Example: end_date=2035-01-25 17:20:30

End date

lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total_points": 0,
  • "paginator": {
    }
}

Get program memberships

Get information about user's membership on points, miles and cashback ASB programs

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Program Membership

Set program membership

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
program_code
required
string
membership_number
required
string
first_name
string
last_name
string

Responses

Request samples

Content type
application/json
{
  • "program_code": "string",
  • "membership_number": "string",
  • "first_name": "string",
  • "last_name": "string"
}

Response samples

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

Get cashback orders

Get list of cashback orders

Authorizations:
api_key
query Parameters
type
string
Enum: "card" "account"
start_date
string <date-time>
Example: start_date=2023-01-30 12:40

yyyy-mm-dd hh:mm in UTC timezone

end_date
string <date-time>
Example: end_date=2023-01-30 12:40

yyyy-mm-dd hh:mm in UTC timezone

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get program changes file

Downloads a CSV file of program changes for a given period

Authorizations:
api_key
query Parameters
date_from
string <date>
Example: date_from=2023-01-01

Start date for changes, format yyyy-mm-dd

date_to
string <date>
Example: date_to=2023-01-31

End date for changes, must be on or before the current date, format yyyy-mm-dd

Responses

Response samples

Content type
text/csv
"Reference ID|Program Map|Status"
"KFHB-20240409|ASBM|closed"
"AJIB-20240409|ASBC|closed"
"VISA-123|ASBP|active"
"EOF"

Authentication

Get user access token

Get user access token by flow access token

Authorizations:
api_key
Request Body schema: application/json
required
flow_token
required
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "user_access_token": "string",
  • "refresh_token": "string"
}

Get user access token by refresh token

Get user access token by refresh token cookie

Authorizations:
api_key
cookie Parameters
refresh_token
string
Request Body schema: application/json
required
refresh_token
required
string

Refresh token for local storage on frontend

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "user_access_token": "string",
  • "refresh_token": "string"
}

SSO authentication

Single sign-on authentication

Authorizations:
api_key
Request Body schema: application/json
required
jwt
required
string

JWT token with claims iat (getFormattedDateTime) and sub (user code made of letters, digits and hyphens only). The code is registered as the partner prefix followed by the code (e.g. MED-123456; a code already carrying the prefix is not prefixed twice), and that stored value may not exceed 255 characters: a code sent with its prefix may be up to 255 characters long, a bare code up to 255 minus the prefix length (251 for MED-).

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "user_access_token": "string",
  • "refresh_token": "string"
}

Login user

Authenticate user by credentials

Authorizations:
api_key
Request Body schema: application/json
required
identifier
required
string

Any allowed user identifier

password
required
string <password>

password/pin (configured individually)

Responses

Request samples

Content type
application/json
{
  • "identifier": "string",
  • "password": "pa$$word"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Logout user

Logout authenticated user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Pin recovery

Reset user pin by identifier

Authorizations:
api_key
Request Body schema: application/json
required
identifier
required
string

Any allowed user identifier

Responses

Request samples

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

Response samples

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

Login flow step

Unauthenticated user needs to provide pin or password for the user of a flow. Completes "login" flow step type.

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
required
password
required
string <password>

password/pin (configured individually)

Responses

Request samples

Content type
application/json
{
  • "password": "pa$$word"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Set password for the user of a flow

Update user password as a flow step matching "update_password" flow step type

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
required
password
required
string <password>
password_confirmation
required
string <password>

Should be the same as password

Responses

Request samples

Content type
application/json
{
  • "password": "pa$$word",
  • "password_confirmation": "pa$$word"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Send email verification token

Send email verification token

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Verify email verification token

Verify email verification token

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
required
email_token
required
string

Token from verification email

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Password access flow step

Authenticated user needs to provide pin or password for the user of a flow. Completes "password" flow step type

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
required
password
required
string <password>

password/pin (configured individually)

Responses

Request samples

Content type
application/json
{
  • "password": "pa$$word"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Cardinal Cruise token

Issue token for Cardinal Cruise library

Authorizations:
api_key

Responses

Response samples

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

Cards validate authentication

Cards validate authentication

Authorizations:
api_key
Request Body schema: application/json
required
jwt
required
string

JWT token

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "status": "REDIRECT",
  • "jwt": "string",
  • "acs_url": "string",
  • "pa_req": "string",
  • "transaction_id": "string"
}

Update password by card authorization

Update password by card authorization

Authorizations:
api_key
Request Body schema: application/json
required
card_auth_jwt
required
string

JWT token

password
required
string

The password must be at least 8 characters

password_confirmation
required
string

The password must be at least 8 characters, and same with password

Responses

Request samples

Content type
application/json
{
  • "card_auth_jwt": "string",
  • "password": "string",
  • "password_confirmation": "string"
}

Response samples

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

Cards enrollment lookup

Cards enrollment lookup

Authorizations:
api_key
Request Body schema: application/json
required
jwt
required
string

JWT token

credit_card_number
required
string <= 16 characters
expiration_month
required
integer [ 1 .. 12 ]
expiration_year
required
integer
first_name
string
last_name
string
email
string

Responses

Request samples

Content type
application/json
{
  • "jwt": "string",
  • "credit_card_number": "string",
  • "expiration_month": 1,
  • "expiration_year": 0,
  • "first_name": "string",
  • "last_name": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "status": "REDIRECT",
  • "jwt": "string",
  • "acs_url": "string",
  • "pa_req": "string",
  • "transaction_id": "string"
}

Verify email verification token

Verify email verification token

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
required
email_token
required
string

Token from verification email

Responses

Request samples

Content type
application/json
null

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Send email verification token

Send email verification token

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Merchant SSO token

Generate Single sign-on token for authentication on merchant website

Authorizations:
(api_keybearer)
path Parameters
merchant_code
required
string

merchant code

Responses

Response samples

Content type
application/json
{
  • "token": "string",
  • "auth_url": "string"
}

BSF specific

User cards

Get list of cards of user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Sync Users

Get list of cards of user

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

User Balance

Get user balance

Authorizations:
api_key
path Parameters
user_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "status": 200
}

Balance

Get balance

Get balance of authenticated user

Authorizations:
(api_keybearer)
query Parameters
balance_type_id
string

get by balance type id, if the param not passed will return default type

Responses

Response samples

Content type
application/json
{
  • "balance": 0,
  • "total_points_reserved": 0,
  • "total_points_expired": 0,
  • "total_points_redeemed": 0,
  • "total_points_rewarded": 0,
  • "next_points_to_expire": 0,
  • "next_points_expiration_date": "2019-08-24",
  • "in_network_currency": {
    }
}

Get eligible cashback balance

Get cashback balance of authenticated user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "in_partner_currency": {
    },
  • "reward_sum": 0,
  • "redeem_sum": 0,
  • "cashback_validity_date": "2019-08-24"
}

Get upcoming total expiration points grouped by dates

Get upcoming total expiration points grouped by dates

Authorizations:
(api_keybearer)
query Parameters
balance_type_id
number

get by balance type id, if the param not passed will return default type

page
number

pagination offset

per_page
number

pagination limit, default - 15

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get balance statement

Get statement of all balance transactions of authenticated user

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

day_range
integer <int32>

number of days in past since today to take transaction from

sort
string
Enum: "newest" "oldest" "trans_class_asc" "trans_class_desc" "trans_action_asc" "trans_action_desc"

Order by

type
string
Enum: "reward" "redeem"

Transaction type, if empty all

product_id
any
trans_class_id
any
start_date
string <date-time>
Example: start_date=2035-01-25 17:20:30

Start date

end_date
string <date-time>
Example: end_date=2035-01-25 17:20:30

End date

lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

exclude_zero_points_transactions
integer <int32>

exclude zero pints transactions

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "paginator": {
    }
}

Pending reversal reward statement

Get statement of pending reversal rewards transactions of authenticated user

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

day_range
integer <int32>

number of days in past since today to take transaction from

sort
string
Enum: "newest" "oldest"

Order by

start_date
string <date-time>
Example: start_date=2035-01-25 17:20:30

Start date

end_date
string <date-time>
Example: end_date=2035-01-25 17:20:30

End date

header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "paginator": {
    },
  • "total_points": 0
}

Car

Get cars

Get list of cars

Authorizations:
(api_keybearer)
query Parameters
pickup_city_id
integer <int64>
return_city_id
integer <int64>
pickup_location_code
string
return_location_code
string
pickup_time
required
string <date-time>
return_time
required
string <date-time>
driver_age
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get car

Get car

Authorizations:
(api_keybearer)
path Parameters
car_offer_id
required
string
query Parameters
equips
Array of integers

Responses

Response samples

Content type
application/json
{
  • "item": {
    },
  • "invoice": {
    },
  • "errors": [
    ],
  • "payment_summary": {
    }
}

Get car countries

Return list of countries available for car booking

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get car cities

Get list of cities of country, available for car booking

Authorizations:
(api_keybearer)
query Parameters
country_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get car locations

Get list of locations and airports of city, available for car booking

Authorizations:
(api_keybearer)
query Parameters
city_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Carbon offset

Carbon offset list

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

search_phrase
string
sort_by
string
Enum: "name" "cost_per_kg"

Order by

sort_dir
string
Enum: "asc" "desc"

Order dir

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get carbon offset by Id

Authorizations:
(api_keybearer)
path Parameters
carbon_offset_id
required
integer <int64>

Carbon offset id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "code": "string",
  • "name": "string",
  • "short_description": "string",
  • "cost_per_kg": 0,
  • "currency_code": "string",
  • "points": 0,
  • "country": "string",
  • "location": "string",
  • "project_type": "string",
  • "project_url": "string",
  • "registry_link": "string",
  • "registry_name": "string",
  • "registry_project_id": "string",
  • "project_classification": "string",
  • "images": [
    ]
}

Create Carbon offset order

Create Carbon offset order.

Authorizations:
(api_keybearer)
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
offset_source_code
required
string
points
required
integer <int64> (points)

Responses

Request samples

Content type
application/json
{
  • "offset_source_code": "string",
  • "points": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get carbon offset kgCo2 amount by points

Authorizations:
(api_keybearer)
path Parameters
carbon_offset_id
required
integer <int64>

Carbon offset id

Request Body schema: application/json
points
required
integer <int64> (points)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "data": {
    }
}

Cart

Get cart

Get information for the cart for authenticated customer

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
{
  • "cart": {
    },
  • "invoice": {
    },
  • "disclaimer": "string",
  • "errors": [
    ]
}

Delete cart Deprecated

Delete cart of authenticated user

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get cart quantities

Get quantities for the cart for authenticated customer

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Update item quantity

Use it for add/update item to the cart

Authorizations:
(api_keybearer)
path Parameters
item_id
required
integer <int64>
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
required
quantity
required
integer <int32>

Responses

Request samples

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

Response samples

Content type
{
  • "id": 0,
  • "name": "string",
  • "stock_quantity": 0,
  • "cart_quantity": 0,
  • "calculated_quantity": 0,
  • "remaining_quantity_limit_for_user": 0,
  • "x1_delivery": true,
  • "electronic_delivery": true,
  • "is_favorite": true,
  • "image_url": "http://example.com",
  • "cart_item_price": {
    },
  • "error_messages": [
    ]
}

Remove item

Remove specified item from the cart

Authorizations:
(api_keybearer)
path Parameters
item_id
required
integer <int64>
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "cart": {
    },
  • "invoice": {
    },
  • "disclaimer": "string",
  • "errors": [
    ]
}

Cart of an item

Get cart of an item

Authorizations:
(api_keybearer)
path Parameters
item_id
required
integer <int64>
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

quantity
integer <int64>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "cart": {
    },
  • "invoice": {
    },
  • "disclaimer": "string",
  • "errors": [
    ]
}

Cash transaction

Get cash transaction

Retrieve cash transaction

Authorizations:
(api_keybearer)
path Parameters
transaction_id
required
integer <int64>

Cash transaction id

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_id": 0
}

Catalogue

Get brands

Get catalogue brands

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

vouchers
integer
Enum: 0 1

A boolean flag to filter brands based on voucher status.

  • true: Only include brands that have products classified as vouchers.
  • false: Include brands that do not have products classified as vouchers.
  • null: Include all brands, regardless of voucher status.
search_phrase
string

Search phrase

country_id
integer

country id

category_tags
Array of strings

Category tags

header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get categories

Get catalogue categories

Authorizations:
(api_keybearer)
query Parameters
category_tags
Array of strings

An array of category tags to filter the categories. Each tag is a string that represents a specific category or a set of categories.

vouchers
integer
Enum: 0 1

A boolean flag to indicate if only categories with active vouchers should be returned. - true returns only categories that have associated active vouchers. - false returns all categories regardless of voucher status.

header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{}

Get items

Get catalogue items filtered by criteria

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

search_phrase
string >= 2 characters

search products by name

category_ids
Array of integers <int64> [ items <int64 > ]

Category ids

category_tags
Array of strings

Category tags

country_id
required
integer <int64>

Country id

min_points
integer <int64> (points)

Minimum price in points to filter price

max_points
integer <int64> (points)

Maximum price in points to filter price

order
Array of strings
Items Enum: "newest" "oldest" "alphabetical_asc" "alphabetical_desc" "points_asc" "points_desc"

Criteria to order items list

brand_id
integer

Search products by brand id

brand
string >= 2 characters

Search products by brand name

vouchers
integer
Enum: 0 1

Vouchers

section
string
Enum: "deals" "spend_points"
header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get item

Get catalogue item

Authorizations:
(api_keybearer)
path Parameters
item_id
required
integer <int64>

Product item id

query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "brand_name": "string",
  • "category_id": 0,
  • "category_tags": [
    ],
  • "is_voucher": true,
  • "x1_delivery": true,
  • "electronic_delivery": true,
  • "image_url": "http://example.com",
  • "label": {
    },
  • "hot_deal": true,
  • "is_favorite": true,
  • "type_code": "store",
  • "group": "store",
  • "catalogue_item_price": {
    },
  • "remaining_quantity_limit_for_user": 0,
  • "category_name": "string",
  • "model": "string",
  • "sub_model": "string",
  • "description": "string",
  • "calculated_quantity": 0
}

Get favorites

Get all favorite items

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "paginator": {
    }
}

Add to favorites

Add item to favorites

Authorizations:
(api_keybearer)
path Parameters
item_id
required
integer <int64>
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Delete favorite item

Delete from favorites

Authorizations:
(api_keybearer)
path Parameters
item_id
required
integer <int64>
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

CBK specific

CBK customer cards

Get a list of the eligible CBK cards that belong to the user, used for the cashback card selection.

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Digital value

Create Digital value order

Create Digital value order.

Authorizations:
(api_keybearer)
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
digital_value_product_id
required
integer
destination_amount
required
number
destination_currency_code
required
string
mobile_number
string

Mobile number can be required for some products (digital_value_product_id)

account_number
string

Account number can be required for some products (digital_value_product_id)

Responses

Request samples

Content type
application/json
{
  • "digital_value_product_id": 0,
  • "destination_amount": 0,
  • "destination_currency_code": "string",
  • "mobile_number": "string",
  • "account_number": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Digital value services list

Get Digital value services list.

Authorizations:
(api_keybearer)
query Parameters
search_phrase
string

Name of service to search by

country_id
integer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get Digital value service with filters

Get Digital value service with filters.

Authorizations:
(api_keybearer)
path Parameters
service_id
required
integer
query Parameters
operator_id
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Digital value countries list

Get Digital value countries list.

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get Digital value operators list

Get Digital value operators list.

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

country_id
integer
service_id
integer
subservice_id
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Digital value promotions list

Get Digital value promotions list that are currently going.

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

operator_id
integer
operator_name
string
title
string
description
string
terms
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Digital value promotion

Get Digital value promotion.

Authorizations:
(api_keybearer)
path Parameters
promotion_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "operator_id": 0,
  • "operator_name": "string",
  • "title": "string",
  • "description": "string",
  • "terms": "string",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

Get Digital value products list

Get Digital value products list.

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

operator_id
integer
service_id
integer
subservice_id
integer
country_id
integer
region_id
integer
promotion_id
integer
type
string
Enum: "RANGED_VALUE_RECHARGE" "RANGED_VALUE_PIN_PURCHASE" "RANGED_VALUE_PAYMENT" "FIXED_VALUE_RECHARGE" "FIXED_VALUE_PIN_PURCHASE"

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Digital value product

Get Digital value product.

Authorizations:
(api_keybearer)
path Parameters
product_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "pin": { },
  • "type": "string",
  • "validity": { },
  • "availability_zones": [ ],
  • "price": {
    },
  • "regions": [
    ],
  • "required_fields": [
    ],
  • "supports_statement_inquiry": true,
  • "payment_modes": [
    ]
}

Get Digital value calculated points

Get Digital value calculated points

Authorizations:
(api_keybearer)
query Parameters
digital_value_product_id
required
integer
destination_currency_code
required
string
destination_amount
required
number

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Lookup Digital value mobile

Get Digital value operators related to given mobile .

Authorizations:
(api_keybearer)
Request Body schema: application/json
mobile
required
string

User's mobile with country code starting with +

Responses

Request samples

Content type
application/json
{
  • "mobile": 201212345678
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Lookup Digital value mobile

Get Digital value inquiry related to given product and account number.

Authorizations:
(api_keybearer)
Request Body schema: application/json
product_id
required
integer

Product ID

account_number
required
string

Account number

Responses

Request samples

Content type
application/json
{
  • "product_id": 1,
  • "account_number": 123456789
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Featured Collections

Get current collection

Get collection items filtered by criteria

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

page
integer <int64>

Page number

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "items": [
    ]
}

Flight

Get flights

Search for available flights. Either provide departure, arrival, and departure-date for a simple one-way or return search, or provide the flights array for a multi-city search. These two modes are mutually exclusive — if flights is provided, the single-leg parameters are ignored.

The response shape depends on the requested media type:

  • application/json;version=2 returns segment dates and times in a single RFC 3339 departure_datetime / arrival_datetime field.
  • application/json (default, legacy) returns the date and time of each segment split across departure_date (YYYY-MM-DD) / departure_time (HH:mm) and arrival_date / arrival_time.

Request dates always use DD-MM-YYYY; the response date format does not match the request format.

Authorizations:
(api_keybearer)
query Parameters
departure
string = 3 characters
Example: departure=KBP

IATA 3-letter code of departure airport. Required when flights is not provided.

arrival
string = 3 characters
Example: arrival=DEL

IATA 3-letter code of arrival airport. Required when flights is not provided.

departure-date
string^\d{2}-\d{2}-\d{4}$
Example: departure-date=25-04-2024

Date of the outbound flight in DD-MM-YYYY format. Must be today or in the future. Required when flights is not provided.

arrival-date
string^\d{2}-\d{2}-\d{4}$
Example: arrival-date=02-05-2024

Date of the return flight in DD-MM-YYYY format. Omit for one-way trips. Must be on or after departure-date.

adults
required
integer [ 1 .. 9 ]
Example: adults=1

Number of adult passengers (age 12+). Minimum 1, maximum 9.

children
integer [ 0 .. 9 ]
Example: children=0

Number of child passengers (age 2–11). Maximum 9.

infants
integer [ 0 .. 9 ]
Example: infants=0

Number of infant passengers (age 0–1). Cannot exceed the number of adults.

direct
integer
Enum: 0 1
Example: direct=1

Filter for direct (non-stop) flights only. Pass 1 to return only direct flights. Omit or pass 0 to return all flights.

class
string
Enum: "Economy" "Business" "PremiumEconomy" "First"
Example: class=Economy

Preferred cabin class.

Array of objects

Multi-city flight segments. Use this parameter instead of departure/arrival/departure-date for multi-city searches. Each item represents one flight leg.

Responses

Response samples

Content type
{
  • "items": [
    ]
}

Get flight

Retrieve a previously searched flight by its flight_code, recalculate its price in points, and validate it against the user's current balance. The response shape mirrors GET /v7/flights: request application/json;version=2 to get flight_item with RFC 3339 segment datetimes, otherwise the legacy shape with split *_date / *_time fields is returned.

Authorizations:
(api_keybearer)
path Parameters
flight_code
required
string
query Parameters
brand_code
string or null

Brand fare code to recheck price for a specific branded fare

Responses

Response samples

Content type
{
  • "data": {
    }
}

Get brand fares for a flight

Returns available branded fare options for the given flight code, with each option's price already converted into loyalty points. Use the brand_code returned here as the brand_code query parameter on GET /v7/flights/{flight_code} to recheck the price for a specific branded fare.

Authorizations:
(api_keybearer)
path Parameters
flight_code
required
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get flight ancillaries

Returns available ancillary services (meals, additional baggage, and seat selection) for a previously price-checked flight. Call this after GET /v7/flights/{flight_code} using the search_id returned from that response. Only supported for the VeTravel provider.

Authorizations:
(api_keybearer)
path Parameters
flight_code
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get airports for flights

Get airports for flights, grouped by city

Authorizations:
(api_keybearer)
query Parameters
search-term
required
string >= 2 characters

search airport by name or IATA code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get carriers

Return the list of supported carriers (airlines), one entry per IATA code, sorted by name. Each entry includes the carrier name, its 2-character IATA code, and a logo URL. Intended to populate carrier selectors (e.g. the passenger Frequent Flyer Program field) and to render carrier logos on the client.

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json

Checkout flight

Recalculate flight price based on provided brand fare and ancillaries without creating an order. The response shape mirrors GET /v7/flights/{flight_code} with added information about passengers and ancillaries.

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
flight_code
required
string

Flight reservation code returned by the flight search endpoint.

brand_code
string

Provider-specific identifier of the branded fare

required
object (passengers)

Passengers grouped by passenger type. The list sizes for adults, children, and infants must match the passenger counts captured in the original flight search.

Passenger-wide rules enforced by the API:

  • First/last name combinations must be unique across all passengers in the request.
  • The combined length of each passenger's first + last name must respect the platform's name-length limit.
  • The number of infants cannot exceed the number of adults (infants travel on an adult's lap).
email
string or null <email>

Contact email for the booking. Must be a valid email address when supplied.

mobile_code
string or null >= 2 characters

Country calling code of the contact mobile. Minimum 2 characters and must be a valid ISO country calling code.

mobile
string or null

Contact mobile number without the country calling code. Digits only and must satisfy the platform's mobile-number rules.

partner_external_transaction_code
string or null <= 255 characters

Partner External Transaction Code

Responses

Request samples

Content type
application/json
{
  • "flight_code": "string",
  • "brand_code": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
  • "passengers": {
    },
  • "email": "user@example.com",
  • "mobile_code": "+961",
  • "mobile": "70757959",
  • "partner_external_transaction_code": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Flow

Get flow by access token

Sometimes you may need to get flow by access token

Authorizations:
(api_keybearer)
header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Create flow

Creates new flow with access token which can be used to go over flow's steps

Authorizations:
api_key(bearerapi_key)
Request Body schema: application/json
optional
identifier
string

Any allowed user identifier. Not required if request authenticated with bearer token.

flow_code
any
Enum: "auth" "activation" "auth_order" "change_identifier"

One of the allowed flow

Responses

Request samples

Content type
application/json
{
  • "identifier": "string",
  • "flow_code": "auth"
}

Response samples

Content type
application/json
{
  • "flow_token": "7364598720736459872073645987207364598720",
  • "flow": {
    }
}

Create Authentication flow

Create authentication flow

Authorizations:
api_key(bearerapi_key)
Request Body schema: application/json
optional
identifier
string

Any allowed user identifier. Not required if request authenticated with bearer token.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "flow_token": "7364598720736459872073645987207364598720",
  • "flow": {
    }
}

Create registration flow

Create draft user and issue flow token for it

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
email
string <email>
confirm_email
string <email>
username
string
title
string
Enum: "Mr" "Mrs" "Ms"
first_name
string
middle_name
string
last_name
string
company_name
string
facebook
string
instagram
string
status
string
Enum: "active" "inactive" "suspended" "closed" "undefined"
partner_user_code
string
marital_status
string
Enum: "single" "married" "widowed" "divorced" "other"
dob
string <date>

Date of birth, yyyy-mm-dd

dob_day
integer

Alternatively to dob, parts of date can be specified separately

dob_month
integer

Alternatively to dob, parts of date can be specified separately

dob_year
integer

Alternatively to dob, parts of date can be specified separately

gender
string or null
Enum: "m" "f"
country_id
integer <int64>

Reference to country ID on the platform

nationality_country_id
integer <int64>

Reference to country ID on the platform

address_1
string

Personal address of user (line 1)

address_2
string

Personal address of user (line 2)

area_id
integer <int64>

Reference to area ID on the platform

city_id
integer <int64>

Reference to city ID on the platform

income_bracket
string
Enum: "$0 - $500" "$500 - $1,000" "$1,000 - $2,000" "$2,000 - $3,000" "$3,000 - $4,000" "$4,000 - $5,000" "$5,000 - $8,000" "$8,000 - $12,000" "$12,000 - $15,000" "More than $15,000"
num_children
integer <int64>
terms_and_conditions_accepted
boolean
privacy_policy_accepted
boolean
occupation_id
integer <int64>

Reference to occupation ID on the platform

postal_code
string
image
string <binary>

avatar of user

telephone_code
string (telephoneCode)

Country calling code, see list

mobile
string (mobile)

User's mobile without country code

password
string <password>

Password of user

confirm_password
string <password>

Should be the same as password

lang
string = 2 characters

aliases(lang_code,pref_lang)

Array of objects

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "confirm_email": "user@example.com",
  • "username": "string",
  • "title": "Mr",
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "company_name": "string",
  • "facebook": "string",
  • "instagram": "string",
  • "status": "active",
  • "partner_user_code": "string",
  • "marital_status": "single",
  • "dob": "2035-01-27",
  • "dob_day": 0,
  • "dob_month": 0,
  • "dob_year": 0,
  • "gender": "m",
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "area_id": 0,
  • "city_id": 0,
  • "income_bracket": "$0 - $500",
  • "num_children": 0,
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "occupation_id": 0,
  • "postal_code": "string",
  • "image": "string",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "password": "pa$$word",
  • "confirm_password": "pa$$word",
  • "lang": "st",
  • "settings": [
    ]
}

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Register Draft User

Complete flow by registering draft user that was assigned to flow

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "reference": "string"
}

Update draft user mobile

Make changes in draft user associated with flow. Completes "update_draft_user_mobile" flow step type

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
telephone_code
string (telephoneCode)

Country calling code, see list

mobile
required
string (mobile)

User's mobile without country code

Responses

Request samples

Content type
application/json
{
  • "telephone_code": "string",
  • "mobile": 70757959
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Create draft password

Set password for a draft user as a flow step. Completes "create_draft_user_password" flow step type

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
password
string <password>

Password of user

confirm_password
string <password>

Password of user (should be same as password)

Responses

Request samples

Content type
application/json
{
  • "password": "pa$$word",
  • "confirm_password": "pa$$word"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Update user mobile

Make changes in user associated with flow. Completes "updateMobile" flow step type

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
telephone_code
string (telephoneCode)

Country calling code, see list

mobile
required
string (mobile)

User's mobile without country code

Responses

Request samples

Content type
application/json
{
  • "telephone_code": "string",
  • "mobile": 70757959
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Create password reset flow

Create password reset flow and issue flow token for it

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
One of
type
required
string
user_code
required
string

Responses

Request samples

Content type
application/json
Example
{
  • "type": "user_code",
  • "user_code": "string"
}

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Reset password

Complete password reset flow by setting up a new password

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
password
string <password>

Password of user

confirm_password
string <password>

Password of user (should be same as password)

Responses

Request samples

Content type
application/json
{
  • "password": "pa$$word",
  • "confirm_password": "pa$$word"
}

Response samples

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

Create password update flow

Create password update flow and issue flow token for it

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
required
old_password
required
string
password
required
string
password_confirmation
required
string

Responses

Request samples

Content type
application/json
{
  • "old_password": "string",
  • "password": "string",
  • "password_confirmation": "string"
}

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Update password

Complete password update flow by setting up a new password

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Create profile update flow

Create profile update flow and issue flow token for it

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
email
string <email>
confirm_email
string <email>
username
string
title
string
Enum: "Mr" "Mrs" "Ms"
first_name
string
middle_name
string
last_name
string
company_name
string
facebook
string
instagram
string
status
string
Enum: "active" "inactive" "suspended" "closed" "undefined"
partner_user_code
string
marital_status
string
Enum: "single" "married" "widowed" "divorced" "other"
dob
string <date>

Date of birth, yyyy-mm-dd

dob_day
integer

Alternatively to dob, parts of date can be specified separately

dob_month
integer

Alternatively to dob, parts of date can be specified separately

dob_year
integer

Alternatively to dob, parts of date can be specified separately

gender
string or null
Enum: "m" "f"
country_id
integer <int64>

Reference to country ID on the platform

nationality_country_id
integer <int64>

Reference to country ID on the platform

address_1
string

Personal address of user (line 1)

address_2
string

Personal address of user (line 2)

area_id
integer <int64>

Reference to area ID on the platform

city_id
integer <int64>

Reference to city ID on the platform

income_bracket
string
Enum: "$0 - $500" "$500 - $1,000" "$1,000 - $2,000" "$2,000 - $3,000" "$3,000 - $4,000" "$4,000 - $5,000" "$5,000 - $8,000" "$8,000 - $12,000" "$12,000 - $15,000" "More than $15,000"
num_children
integer <int64>
terms_and_conditions_accepted
boolean
privacy_policy_accepted
boolean
occupation_id
integer <int64>

Reference to occupation ID on the platform

postal_code
string
image
string <binary>

avatar of user

telephone_code
string (telephoneCode)

Country calling code, see list

mobile
string (mobile)

User's mobile without country code

password
string <password>

Password of user

confirm_password
string <password>

Should be the same as password

lang
string = 2 characters

aliases(lang_code,pref_lang)

Array of objects

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "confirm_email": "user@example.com",
  • "username": "string",
  • "title": "Mr",
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "company_name": "string",
  • "facebook": "string",
  • "instagram": "string",
  • "status": "active",
  • "partner_user_code": "string",
  • "marital_status": "single",
  • "dob": "2035-01-27",
  • "dob_day": 0,
  • "dob_month": 0,
  • "dob_year": 0,
  • "gender": "m",
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "area_id": 0,
  • "city_id": 0,
  • "income_bracket": "$0 - $500",
  • "num_children": 0,
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "occupation_id": 0,
  • "postal_code": "string",
  • "image": "string",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "password": "pa$$word",
  • "confirm_password": "pa$$word",
  • "lang": "st",
  • "settings": [
    ]
}

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Update profile

Complete profile update flow py updating user data

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "ucid": "string",
  • "user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "dob": "2035-01-27",
  • "marital_status": "single",
  • "gender": "m",
  • "title": "Mr",
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "confirm_passcode": true,
  • "is_balance_pending": true,
  • "normalized_mobile": "string",
  • "middle_name": "string",
  • "income_bracket": "$0 - $500",
  • "occupation_id": 0,
  • "area_id": 0,
  • "city_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "postal_code": "string",
  • "num_children": 0,
  • "lang_code": "st",
  • "email_verified": 0,
  • "mobile_verified": 0,
  • "status": "active",
  • "profile_image_url": "http://example.com",
  • "company_name": "string",
  • "enrollment_date": "2019-05-17 01:00:00",
  • "settings": [
    ]
}

Skip flow step

If active step in flow response has attribute "optional", this endpoint can be used to instantly mark this step as passed

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Send password reset token to email

Send password reset token to email. First endpoint for "verify_password_reset_token" flow step type. Email will contain link to frontend containing reset link in URL and flow token as URL parameter, which frontend shoyld then redirect ti verification endpoint

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Verify password reset token

Verify password reset token. Second endpoint for "verify_password_reset_token" flow step type

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
required
password_reset_token
required
string

Password reset token took from email

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Create change identifier flow

Create flow of type change_identifier for authenticated user and issue flow token for it

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Create activation flow

Create activation flow

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
identifier
required
string

Identifier configured according to partner (mobile, email, user code or identification token taken from activation email)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Create order confirmation flow

Create order confirmation flow by order id

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Order-Access-Token
string

JWT token that can be used to identify order instead of bearer auth

Request Body schema: application/json
order_id
required
integer

Order ID

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Confirm Order

Complete order confirmation flow

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
X-Order-Access-Token
string

JWT token that can be used to identify order instead of bearer auth

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Update profile

Update profile of authenticated user. Can be used as a flow step of "update_user" step type or a final endpoint of "change_identifier" flow type

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
email
string <email>
confirm_email
string <email>
username
string
title
string
Enum: "Mr" "Mrs" "Ms"
first_name
string
middle_name
string
last_name
string
company_name
string
facebook
string
instagram
string
status
string
Enum: "active" "inactive" "suspended" "closed" "undefined"
partner_user_code
string
marital_status
string
Enum: "single" "married" "widowed" "divorced" "other"
dob
string <date>

Date of birth, yyyy-mm-dd

dob_day
integer

Alternatively to dob, parts of date can be specified separately

dob_month
integer

Alternatively to dob, parts of date can be specified separately

dob_year
integer

Alternatively to dob, parts of date can be specified separately

gender
string or null
Enum: "m" "f"
country_id
integer <int64>

Reference to country ID on the platform

nationality_country_id
integer <int64>

Reference to country ID on the platform

address_1
string

Personal address of user (line 1)

address_2
string

Personal address of user (line 2)

area_id
integer <int64>

Reference to area ID on the platform

city_id
integer <int64>

Reference to city ID on the platform

income_bracket
string
Enum: "$0 - $500" "$500 - $1,000" "$1,000 - $2,000" "$2,000 - $3,000" "$3,000 - $4,000" "$4,000 - $5,000" "$5,000 - $8,000" "$8,000 - $12,000" "$12,000 - $15,000" "More than $15,000"
num_children
integer <int64>
terms_and_conditions_accepted
boolean
privacy_policy_accepted
boolean
occupation_id
integer <int64>

Reference to occupation ID on the platform

postal_code
string
image
string <binary>

avatar of user

telephone_code
string (telephoneCode)

Country calling code, see list

mobile
string (mobile)

User's mobile without country code

password
string <password>

Password of user

confirm_password
string <password>

Should be the same as password

lang
string = 2 characters

aliases(lang_code,pref_lang)

Array of objects

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "confirm_email": "user@example.com",
  • "username": "string",
  • "title": "Mr",
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "company_name": "string",
  • "facebook": "string",
  • "instagram": "string",
  • "status": "active",
  • "partner_user_code": "string",
  • "marital_status": "single",
  • "dob": "2035-01-27",
  • "dob_day": 0,
  • "dob_month": 0,
  • "dob_year": 0,
  • "gender": "m",
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "area_id": 0,
  • "city_id": 0,
  • "income_bracket": "$0 - $500",
  • "num_children": 0,
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "occupation_id": 0,
  • "postal_code": "string",
  • "image": "string",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "password": "pa$$word",
  • "confirm_password": "pa$$word",
  • "lang": "st",
  • "settings": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "ucid": "string",
  • "user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "dob": "2035-01-27",
  • "marital_status": "single",
  • "gender": "m",
  • "title": "Mr",
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "confirm_passcode": true,
  • "is_balance_pending": true,
  • "normalized_mobile": "string",
  • "middle_name": "string",
  • "income_bracket": "$0 - $500",
  • "occupation_id": 0,
  • "area_id": 0,
  • "city_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "postal_code": "string",
  • "num_children": 0,
  • "lang_code": "st",
  • "email_verified": 0,
  • "mobile_verified": 0,
  • "status": "active",
  • "profile_image_url": "http://example.com",
  • "company_name": "string",
  • "enrollment_date": "2019-05-17 01:00:00",
  • "settings": [
    ]
}

GBK specific

GBK customer cards

Get a list of credit cards that belong to the user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Game

Get game

Get puzzle game information

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "data": {}
}

Post result

Post puzzle game result

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
is_solved
required
boolean

Is puzzle solved

Responses

Request samples

Content type
application/json
{
  • "is_solved": true
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "status": 200,
  • "code": 200
}

HotelBeds

Search available hotels

Get list of available hotels

Authorizations:
(api_keybearer)
query Parameters
check_in
required
string <date>
Example: check_in=2020-06-15
check_out
required
string <date>
Example: check_out=2020-06-15
rooms_count
required
integer >= 1

Number of requested rooms of this occupancy.

adults_count
required
integer >= 1

Number of adult passengers for this room.

children_count
required
integer >= 0

Number of child passengers for this room.

hotel_codes
Array of integers
accommodation_types
Array of strings
children_ages
Array of integers

Required when children_count greater than 0 , and length of children_ages must be equal to children_count

destination
string

Destination code , Required if none of 'hotel_codes' and 'geolocation' are set

object

Defines the geolocation data for hotel search, Required if none of 'hotel_codes' and 'destination' are set

min_category
integer [ 1 .. 5 ]
max_category
integer [ 1 .. 5 ]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Search available hotel detail

Get list of available hotel detail

Authorizations:
(api_keybearer)
query Parameters
search_code
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Room Offer

Get Room Offer

Authorizations:
(api_keybearer)
query Parameters
offer_code
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Hotel Countries

Get list of Hotel Countries

Authorizations:
(api_keybearer)
query Parameters
search_phrase
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Hotel Accommodations

Get list of Hotel Accommodations

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Hotels

Get list of hotels

Authorizations:
(api_keybearer)
query Parameters
search_phrase
string
hotel_country_code
string
destination_code
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Hotels Destinations

Get list of hotels destinations

Authorizations:
(api_keybearer)
query Parameters
search_phrase
string
hotel_country_code
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Inbox notifications

Get user notifications

Get push notifications of authenticated user

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Unread notifications count

Unread notifications count of authenticated user

Authorizations:
(api_keybearer)

Responses

Response samples

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

Remove notification

Remove push notification of authenticated user by id

Authorizations:
(api_keybearer)
path Parameters
notification_id
required
integer

Notification ID

Responses

Response samples

Content type
application/json
[ ]

Undo Remove notification

Undo remove push notification of authenticated user by id

Authorizations:
(api_keybearer)
path Parameters
notification_id
required
integer

Notification ID

Responses

Response samples

Content type
application/json
[ ]

Read notification

Read push notification of authenticated user by id

Authorizations:
(api_keybearer)
path Parameters
notification_id
required
integer

Notification ID

query Parameters
state
required
integer
Value: 1

State

Responses

Response samples

Content type
application/json
[ ]

Listeners

Get external affiliate order status by Id

Request Body schema: application/json
order_id
string^[1-2]-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0...

The clientTransactionId of the transaction being reported: the order global reference, suffixed -bonus when the notification is for the bonus leg of a split conversion.

transaction_status
integer
Enum: 0 1

SUCCESS - 1, FAILED - 0

transaction_rejection_message
string
transaction_rejection_error_code
string

Responses

Request samples

Content type
application/json
{
  • "order_id": "1-3fa85f64-5717-4562-b3fc-2c963f66afa6-bonus",
  • "transaction_status": 0,
  • "transaction_rejection_message": "string",
  • "transaction_rejection_error_code": "string"
}

Response samples

Content type
application/json
{
  • "success": true
}

Receive a Visa Points Network earn notification

Visa Points Network calls this endpoint when an earn transaction reaches a final state, and when an operator presses the test-delivery button in the VPN dashboard.

The delivery is authenticated by X-Webhook-Signature, an HMAC-SHA256 of the exact request body keyed with the partner's webhook secret. The header carries two comma-separated signatures while the secret rotates, and either one is accepted. A delivery is refused when X-Webhook-Timestamp is more than 5 minutes from server time. A transaction event is refused on the same bound applied to the body's own timestamp, which the signature covers and a replay cannot move.

The endpoint serves both Redemption and Marketplace orders: data.idempotency_key is the order global reference, and its first character names the component that owns the order. A repeated delivery of the same event is processed once and answered 200 every time.

The outcome is decided by reading data.id back from VPN, never by the event name. A delivery that arrives before VPN settles that transaction is answered 5xx and nothing is stored, so VPN redelivers it.

header Parameters
X-Webhook-Signature
required
string

Lowercase hex HMAC-SHA256 of the raw request body. The key is the partner's webhook secret without its whsec_ display prefix. Two comma-separated signatures are sent while the secret rotates.

X-Webhook-Timestamp
required
string

When the delivery was sent, as a unix epoch or an ISO-8601 instant such as 2026-08-27T14:04:06Z. Accepted within 5 minutes of server time.

X-Webhook-Event
string

The event type, repeated from the body.

X-Webhook-Event-Id
string

Identifies the event. Repeats across retries of the same event.

X-Webhook-Delivery-Id
string

Identifies one delivery attempt.

Request Body schema: application/json
required
event_id
string

Identifies the event.

event_type
required
string
Enum: "transaction.earn.success" "transaction.earn.failed" "webhook.test"

webhook.test carries no transaction and changes no state.

timestamp
string

When the event occurred. Required for a transaction event, and accepted within 5 minutes of server time.

object

Required for a transaction event. Absent from a webhook.test delivery.

Responses

Request samples

Content type
application/json
{
  • "event_id": "string",
  • "event_type": "transaction.earn.success",
  • "timestamp": "2026-08-27T14:04:06Z",
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "success": true
}

Merchant

List merchants

Authorizations:
(api_keybearer)
query Parameters
merchant_category_ids
Array of arrays

Filter by Merchant Category Ids

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get merchant by Id

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Merchant SSO token

Generate Single sign-on token for authentication on merchant website

Authorizations:
(api_keybearer)
path Parameters
merchant_code
required
string

merchant code

Responses

Response samples

Content type
application/json
{
  • "token": "string",
  • "auth_url": "string"
}

Merchant Categories

List merchant categories

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get merchant category by Id

Authorizations:
api_key
path Parameters
merchant_category_id
required
integer <int64>

merchant category id

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Offer

List offers

Authorizations:
(api_keybearer)
query Parameters
country_ids
Array of integers <int64> [ items <int64 > ]

If provided, offers will be searched for specified countries

segment_ids
Array of integers <int64> [ items <int64 > ]

If provided, offers will be searched for specified segments. Otherwise, user segments will be implied

offer_type_ids
Array of integers <int64> [ items <int64 > ]
Items Enum: 1 2 3

If provided, offers will be searched for offer type IDs

tier_id
integer <int64>

If provided, offers will be searched for specified tier. Otherwise, user tier will be implied

start_date
string <date-time>
Example: start_date=2035-01-25 17:20:30

If provided, sets lower date-time bound for offers dates

end_date
string <date-time>
Example: end_date=2035-01-25 17:20:30

If provided, sets upper date-time bound for offers dates

show_expired
boolean
Example: show_expired=1

Show offers even if they have expired

Responses

Response samples

Content type
application/json
{
  • "offers": [
    ]
}

Get offer

Authorizations:
(api_keybearer)
path Parameters
offer_id
required
string
query Parameters
show_expired
boolean
Example: show_expired=1

Show the offer even if it has expired

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "partner_name": "string",
  • "short_description": "string",
  • "discount": 0.1,
  • "category_id": 0,
  • "category_name": "string",
  • "created_at": "yyyy-mm-dd",
  • "start_date": "yyyy-mm-dd",
  • "end_date": "yyyy-mm-dd",
  • "description": "string",
  • "cover_image": "string",
  • "terms_and_conditions": "string",
  • "validity_start_date": "yyyy-mm-dd",
  • "validity_end_date": "yyyy-mm-dd",
  • "external_link": "string"
}

Order

Create order confirmation flow

Create order confirmation flow by order id

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Order-Access-Token
string

JWT token that can be used to identify order instead of bearer auth

Request Body schema: application/json
order_id
required
integer

Order ID

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "flow": {
    }
}

Confirm Order

Complete order confirmation flow

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
X-Order-Access-Token
string

JWT token that can be used to identify order instead of bearer auth

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get order

An order of one know type can be returned

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

header Parameters
X-Order-Access-Token
string

JWT token that can be used to identify order instead of bearer auth

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "item",
  • "invoice": {
    },
  • "items": [
    ]
}

Confirm order

Confirm order will start order processing and capture cash and points. The order processing is synchronously or synchronously, configured individually.

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

Request Body schema: application/json
flow_token
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get payment page

Get cash payment page to redirect payment page

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

query Parameters
screen_width
integer <int32>

Browser width of a screen of a webpage (Cybersource payment provider only)

screen_height
integer <int32>

Browser height of a screen of a webpage (Cybersource payment provider only)

Responses

Response samples

Content type
application/json
{
  • "payment_page": "string",
  • "payment_page_url": "string",
  • "payment_page_method": "get",
  • "payment_page_params": [
    ]
}

Confirm order cybersource payment

Confirm cybersource payment

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

Request Body schema: application/json
jwt
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get order status

Retrieve order status

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

header Parameters
X-Order-Access-Token
string

JWT token that can be used to identify order instead of bearer auth

Responses

Response samples

Content type
application/json
{
  • "order_type": "item",
  • "status": "waiting_confirmation",
  • "rejection_reason": {
    },
  • "point_payment_status": "not_applicable",
  • "cash_payment_status": "not_applicable",
  • "is_conversion": true
}

Get orders history

Get ordered items of the authenticated user in their partner program. Nizwa cashback orders additionally include the requested payout with three-decimal OMR precision, a first-six/last-four masked card, and a public rejection reason when rejected. Rejected orders retain the rejected status, not a new failed status; their payout amount is not a successfully credited amount. Missing cashback projection details are null and do not remove the order from history. Other partners and order types do not receive these additional fields.

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

start_date
string <date-time>
Example: start_date=2035-01-25 17:20:30

Start date

end_date
string <date-time>
Example: end_date=2035-01-25 17:20:30

End date

order_type
string
Deprecated
Enum: "item" "hotel" "flight" "car" "cashback" "affiliate" "user-transfer" "vop" "adhoc" "merchant" "pay-with-points" "carbon-offset" "digital-value"

Order Type

order_types
Array of strings
Items Enum: "item" "hotel" "flight" "car" "cashback" "affiliate" "user-transfer" "vop" "adhoc" "merchant" "pay-with-points" "carbon-offset" "digital-value"

Order Type

order_status
string
Deprecated
Enum: "waiting_confirmation" "confirmed" "in_process" "pending" "approved" "rejected" "reversal_in_process" "reverted"

Order Status

order_statuses
Array of strings
Items Enum: "waiting_confirmation" "confirmed" "in_process" "pending" "approved" "rejected" "reversal_in_process" "reverted"

Order Status

hide_failed
boolean

Hide failed order items

sort
string
Enum: "newest" "oldest"

Order by

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "paginator": {
    }
}

Order vouchers

List of all order vouchers

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Order item's vouchers

List of all order item's vouchers

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

item_id
required
integer <int64>

Id of product item (product_partner_redemption_id)

query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "code": "9c6aa9b0-702c-47fc-a9a8-7b2e8dffa9be",
  • "name": "string",
  • "quantity": 0,
  • "type_id": 0,
  • "type_code": "blu",
  • "group": "voucher",
  • "image_url": "http://example.com",
  • "vouchers": []
}

Get order render

Render order information in form of PDF or HTML

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

query Parameters
format
required
string
Enum: "pdf" "pdf-json" "html"

Responses

Response samples

Content type
No sample

Order promocodes

List of all order promocodes

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Order item's promocode

Item's promocode

Authorizations:
(api_keybearer)
path Parameters
order_id
required
integer <int64>

Order id

item_id
required
integer <int64>

Id of product item (product_partner_redemption_id)

header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get transaction type codes

Get transaction type codes

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get order type codes

Get order types

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get transaction classes Deprecated

Get transaction classes of orders made by user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Order placement

Place an order for a cart

Place an order for a cart

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
required

Item order input details

full_name
required
string
email
required
string <email>
mobile
required
string
additional_phone
string
area_id
integer <int64>

mandatory for non digital items

city_id
integer <int64>

mandatory for non digital items

country_id
integer <int64>

mandatory for non digital items

address1
string

mandatory for non digital items

address2
string

mandatory for non digital items

postal_code
string

mandatory for non digital items

partner_external_transaction_code
string (partnerExternalTransactionCode)

Partner External Transaction Code

pay_in_points
number <float>
pay_in_cash
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "full_name": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "additional_phone": "string",
  • "area_id": 0,
  • "city_id": 0,
  • "country_id": 0,
  • "address1": "string",
  • "address2": "string",
  • "postal_code": "string",
  • "partner_external_transaction_code": "string",
  • "pay_in_points": 0.1,
  • "pay_in_cash": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "item",
  • "invoice": {
    },
  • "items": [
    ]
}

Place an order for an Item

Place an order for an Item

Authorizations:
(api_keybearer)
path Parameters
item_id
required
integer <int64>
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
required
full_name
required
string
email
required
string <email>
mobile
required
string
additional_phone
string
area_id
integer <int64>

mandatory for non digital items

city_id
integer <int64>

mandatory for non digital items

country_id
integer <int64>

mandatory for non digital items

address1
string

mandatory for non digital items

address2
string

mandatory for non digital items

postal_code
string

mandatory for non digital items

partner_external_transaction_code
string (partnerExternalTransactionCode)

Partner External Transaction Code

quantity
integer <int64>
Default: 1

Responses

Request samples

Content type
application/json
{
  • "full_name": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "additional_phone": "string",
  • "area_id": 0,
  • "city_id": 0,
  • "country_id": 0,
  • "address1": "string",
  • "address2": "string",
  • "postal_code": "string",
  • "partner_external_transaction_code": "string",
  • "quantity": 1
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "item",
  • "invoice": {
    },
  • "items": [
    ]
}

Place an order for a hotelBeds offer

Authorizations:
(api_keybearer)
query Parameters
offer_code
required
string

Offer Code

room_count
integer

Room Count

required
Array of objects

Information of the holder of the booking.

remark
string

string [ 0 .. 2000 ] characters Free text sent to the hotelier. It can be used to request or inform of special requests to hotelier like - “Non-smoking room preferred”, “Twin bed please”, “Upper floor preferred”, “Late arrival”….

email
string
Array of objects

Array of objects (ApiBookingRoom) [ 1 .. 2147483647 ] items List of the rooms to be included in the booking.Attribute rooms required_with room_count ,room_count must be equal to count of rooms

pay_in_points
required
number
pay_in_cash
required
number

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "hotel",
  • "invoice": {
    },
  • "room_offer": {
    },
  • "hotel_reservation": {
    }
}

Place an order for a flight

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
flight_code
required
string

Flight reservation code returned by the flight search endpoint.

brand_code
string

Provider-specific identifier of the branded fare

required
object (passengers)

Passengers grouped by passenger type. The list sizes for adults, children, and infants must match the passenger counts captured in the original flight search.

Passenger-wide rules enforced by the API:

  • First/last name combinations must be unique across all passengers in the request.
  • The combined length of each passenger's first + last name must respect the platform's name-length limit.
  • The number of infants cannot exceed the number of adults (infants travel on an adult's lap).
email
string or null <email>

Contact email for the booking. Must be a valid email address when supplied.

mobile_code
string or null >= 2 characters

Country calling code of the contact mobile. Minimum 2 characters and must be a valid ISO country calling code.

mobile
string or null

Contact mobile number without the country calling code. Digits only and must satisfy the platform's mobile-number rules.

partner_external_transaction_code
string or null <= 255 characters

Partner External Transaction Code

pay_in_points
integer

Number of points the user agrees to spend. Must equal the points portion of the invoice recalculated from the reserved flight price.

pay_in_cash
number

Cash amount the user agrees to pay. Must equal the cash portion of the invoice recalculated from the reserved flight price.

Responses

Request samples

Content type
application/json
{
  • "flight_code": "string",
  • "brand_code": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
  • "passengers": {
    },
  • "email": "user@example.com",
  • "mobile_code": "+961",
  • "mobile": "70757959",
  • "partner_external_transaction_code": "string",
  • "pay_in_points": 0,
  • "pay_in_cash": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "flight",
  • "invoice": {
    },
  • "passengers": {
    },
  • "flight_item": {
    },
  • "flight_reservation": {
    },
  • "ancillary_summary": {
    }
}

Place an order for a car rent

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
car_offer_id
required
string

Car reservation code

title
string
Enum: "Mr" "Mrs" "Ms"
first_name
required
string
last_name
required
string
gender
string
Enum: "m" "f"
birth_date
string <date>
email
required
string <email>
country_id
required
integer

ID of country

area_id
integer

ID of area (state/province). Required if country is USA

mobile
required
string
city_name
required
string
street_number
required
string
postal_code
required
string
flight_number
string

In case customer gets car in airport, he adds number of incoming flight

equips
Array of strings

IDs of equips that should be booked additionally

pay_in_points
number <float>
pay_in_cash
integer <int64>
partner_external_transaction_code
string (partnerExternalTransactionCode)

Partner External Transaction Code

Responses

Request samples

Content type
application/json
{
  • "car_offer_id": "string",
  • "title": "Mr",
  • "first_name": "string",
  • "last_name": "string",
  • "gender": "m",
  • "birth_date": "2019-08-24",
  • "email": "user@example.com",
  • "country_id": 0,
  • "area_id": 0,
  • "mobile": "string",
  • "city_name": "string",
  • "street_number": "string",
  • "postal_code": "string",
  • "flight_number": "string",
  • "equips": [
    ],
  • "pay_in_points": 0.1,
  • "pay_in_cash": 0,
  • "partner_external_transaction_code": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "car",
  • "invoice": {
    },
  • "car_item": {
    },
  • "car_reservation": {
    },
  • "order_input": {
    },
  • "payment_summary": {
    }
}

List redeemable cashback cards

Returns a fresh list of the authenticated customer's redeemable cards (resource version 1; Accept: application/json; version=1, also the default). Currently supported for Nizwa. CIF is taken from the user's tenant-scoped blu reference number, preserving leading zeros. No customer identifier, user ID, tenant ID or pagination input is accepted from the caller.

Blu follows AFS pagination internally and returns one complete list. Only ACTIVE CREDIT cards with valid, unexpired dates are included. Inactive, expired, missing/invalid-expiry cards and cards without a PCI_ID or a valid masked number are hidden. Both primary and supplementary cards may qualify. Expiry is evaluated in Asia/Muscat; YYYY-MM remains valid through the last day of that month. Display first_digits + masking + last_digits, never a full PAN. Submit these two fields and card_id from the chosen option to POST /v7/cashback/orders.

An empty eligible list is a successful response. Upstream connection, HTTP, API and invalid-page failures produce error 612, with no partial or cached card data. An upstream pagination safety limit of 20 pages also fails with 612 rather than returning a truncated list. Clients must clear previously displayed options on failure. Responses are not cacheable.

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
Example
{
  • "data": [
    ]
}

Convert to cash

Cashback points to user card. For Nizwa, select a PCI_ID from GET /v7/cashback/cards. The order waits for email OTP confirmation; confirmation processes the payout synchronously. AFS credits the OMR amount to three decimal places with the statement text Cashback Redemption (subject to bank sign-off). A successful credit approves the order and triggers its confirmation email. Business rejection exposes the AFS message in status.rejection_reason.message. Timeout, HTTP 429 and 5xx failures use a generic message; points are reversed or reservations released. If the balance service is unavailable, compensation is retried until it can complete.

Blu uses the order UUID as both txn_reference and unique_id. Credit timeouts, 429 and 5xx are not automatically retried. Only an explicit HTTP 401 permits one token refresh/retry. Default timeouts are 30 seconds per HTTP request and 10 seconds to connect, configurable per tenant. AFS UAT limits are 2 QPS / 50,000 requests per day; quota failures follow the same rejection path. An ambiguous timeout must be reconciled with the bank before resubmission: AFS deduplication by txn_reference still requires bank confirmation. The reference alone is not an exactly-once guarantee.

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
points
required
integer <int64>

Number of points to be converted to money.

first_digits
string = 6 characters

First 6 digits of user's card

last_digits
string = 4 characters

Last 4 digits of user's card

card_id
string or null

Opaque PCI_ID returned by GET /v7/cashback/cards. For AFS cashback, submit it together with first_digits and last_digits from the selected card. Never submit a full card number.

account_number
string

Internal account number be used instead of card digits

partner_external_transaction_code
string (partnerExternalTransactionCode)

Partner External Transaction Code

cashback_target
string
Enum: "card" "account"

Cashback destination whose rate configuration prices the order. When omitted, the target is resolved from the payload: account when only account_number is provided; card in every other case (card digits only, both identifiers, or none).

Responses

Request samples

Content type
application/json
{
  • "points": 560,
  • "first_digits": 123456,
  • "last_digits": 1234
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "cashback"
}

Transfer to user

Transfer points to another user by identifier (reference or mobile).

With destination_partner_code the transfer becomes a program-to-program conversion: the receiver is looked up by their identifier in the destination program, the net amount is converted at the rate returned by POST /v7/user-transfer/calculated-points and credited in the destination program, where it follows that program's default point expiration. The converted amount must be a whole number of destination points.

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
points
required
integer <int64>

Number of points to be transferred.

all_points
boolean <byte>

If want to transfer all points on balance.

identifier
required
string

Allowed identifier the user transfer to within the same network (configured individually for the user-transfer).

is_sender_pay_commission
boolean
Default: true
destination_partner_code
string or null <= 50 characters

Partner code of the destination program (one of GET /v7/user-transfer/conversion-destinations). Omit for a transfer within the member's own program.

partner_external_transaction_code
string (partnerExternalTransactionCode)

Partner External Transaction Code

store_code
string (storeCode)

Store mapping code predefined in platform

pos_code
string (posCode)

POS mapping code predefined in platform

Responses

Request samples

Content type
application/json
{
  • "points": 0,
  • "all_points": true,
  • "identifier": "string",
  • "is_sender_pay_commission": true,
  • "destination_partner_code": "BSFPM",
  • "partner_external_transaction_code": "string",
  • "store_code": "string",
  • "pos_code": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Convert to affiliate

Convert points to affiliate program balance (i.e. Shukran Rewards / Gulf Air)

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
points
required
integer <int64>

Number of points to be converted to affiliate program.

affiliate_code
required
string

Code of affiliate program

account_number
string

Account number in affiliate program system. Can be required for some affiliates

partner_external_transaction_code
string (partnerExternalTransactionCode)

Partner External Transaction Code

custom_text
string

Partner custom data

first_name
string

User first name only latin letters. Can be required for some affiliates

last_name
string

User last name only latin letters. Can be required for some affiliates

mobile_number
string

Can be required for some affiliates

email
string

Can be required for some affiliates

Responses

Request samples

Content type
application/json
{
  • "points": 0,
  • "affiliate_code": "string",
  • "account_number": "string",
  • "partner_external_transaction_code": "string",
  • "custom_text": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "mobile_number": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "affiliate",
  • "invoice": {
    },
  • "affiliate_code": "FUR",
  • "affiliate_type": {
    },
  • "account_number": "string",
  • "transfer_points": 0,
  • "deduct_points": 0
}

Create Carbon offset order

Create Carbon offset order.

Authorizations:
(api_keybearer)
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
offset_source_code
required
string
points
required
integer <int64> (points)

Responses

Request samples

Content type
application/json
{
  • "offset_source_code": "string",
  • "points": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create Digital value order

Create Digital value order.

Authorizations:
(api_keybearer)
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
digital_value_product_id
required
integer
destination_amount
required
number
destination_currency_code
required
string
mobile_number
string

Mobile number can be required for some products (digital_value_product_id)

account_number
string

Account number can be required for some products (digital_value_product_id)

Responses

Request samples

Content type
application/json
{
  • "digital_value_product_id": 0,
  • "destination_amount": 0,
  • "destination_currency_code": "string",
  • "mobile_number": "string",
  • "account_number": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create VOP order

Create VOP order

Authorizations:
api_key
Request Body schema: application/json
approval_code
required
string (approvalCode)

Approval code from SMS

points
integer <int64> (itemPriceInPoints)

when missing, take max offer billing amount in points

Responses

Request samples

Content type
application/json
{
  • "approval_code": "string",
  • "points": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "vop",
  • "price_in_points": 0,
  • "cashback_amount": null,
  • "merchant_name": "string",
  • "card_last_four": "stri",
  • "support_email": "string",
  • "order_access_token": "string"
}

Create merchant order

Create merchant order

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
required
token
required
any

Merchant Order Access Token. The token received with /merchant-order-access-tokens end-point

otp
required
string
partner_code
required
string

code of partner providing loyalty benefits

amount
required
number <float>

order amount with 2 digits next to dot

currency_code
required
string

ISO 3-Letter Currency Code

merchant_store_code
string

optional, code of merchant store if need orders by store codes

merchant_order_code
string

optional, code of merchant order

notes
string

optional, additional notes

Responses

Request samples

Content type
application/json
{
  • "token": null,
  • "otp": "string",
  • "partner_code": "string",
  • "amount": 37.89,
  • "currency_code": "USD, EUR",
  • "merchant_store_code": "string",
  • "merchant_order_code": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "order_code": "stringstringstringstringstringstring"
}

Create Ad hoc order

Create adhoc order. Directly reduce user balance with certain amount of points

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
reference
required
string (userReference)

Unique user reference identifier

points
required
integer <int64>

Points to be charged from user's balance.

category
string

Free text

notes
string

Free text

country_code
string (countryCode)

Country short code

store_code
string (storeCode)

Store mapping code predefined in platform

pos_code
string (posCode)

POS mapping code predefined in platform

Responses

Request samples

Content type
application/json
{
  • "reference": "string",
  • "points": 0,
  • "category": "string",
  • "notes": "string",
  • "country_code": "string",
  • "store_code": "string",
  • "pos_code": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "adhoc",
  • "points": 0,
  • "notes": "string"
}

Create PwP order

Create Pay with Points order. Reduce user balance with certain amount of points by his card number.

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

X-Params
string

JWE-encrypted token with parameters encrypted according to "Encryption of sensitive data" documentation

Request Body schema: application/json
card_number
required
string = 16 characters
points
required
integer <int64>

Points to be charged from user's balance.

pwp_transaction_id
required
string <= 36 characters
vip_transaction_id
string <= 36 characters
amount
required
number <float>
currency
required
string
merchant_name
string <= 255 characters
merchant_category_code
string <= 10 characters

Responses

Request samples

Content type
application/json
{
  • "card_number": "stringstringstri",
  • "points": 0,
  • "pwp_transaction_id": "string",
  • "vip_transaction_id": "string",
  • "amount": 0.1,
  • "currency": "string",
  • "merchant_name": "string",
  • "merchant_category_code": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "pay-with-points",
  • "points": 0,
  • "amount": {
    },
  • "card_last_four": "stri",
  • "transaction_timestamp": "yyyy-mm-dd hh:mm:ss (2025-12-27 19:45:23)",
  • "merchant_name": "string"
}

Others

Calculate Prices

Calculate cash and point prices based on point prices

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
points
required
Array of integers

Responses

Request samples

Content type
application/json
{
  • "points": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Stores

Get list of stores for partner

Authorizations:
api_key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get countries

Return list of countries available on the platform

Authorizations:
api_key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Areas

Get list of areas of country, available on the platform

Authorizations:
api_key
path Parameters
country_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Cities

Get list of cities of area, available on the platform

Authorizations:
api_key
path Parameters
area_id
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Occupations

Get list of areas of occupations on the platform

Authorizations:
api_key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Translations

Get list of translations for this partner

Authorizations:
api_key
query Parameters
lang
required
string <= 2 characters

Language ID

date
integer <int64>

Check if modified since this getFormattedDateTime

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Affiliate Programs

Get list of available affiliate programs on the platform

Authorizations:
api_key
query Parameters
type_codes
Array of strings
Items Enum: "points_conversion" "miles_conversion" "amount_donated"
category_ids
Array of integers <int64> [ items <int64 > ]

Category IDs

name
string <= 100 characters

Search affiliates by name

sort
string
Enum: "newest" "oldest" "alpha_asc" "alpha_desc"

Sort result as Newest, Oldest, Alphabetical A-Z, Alphabetical Z-A

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get Affiliate Program

Get details of available affiliate program on the partner

Authorizations:
api_key
path Parameters
program_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Affiliate Program Calculated Points

Calculate points using affiliate program rate and apply any active bonus campaigns.

Authorizations:
api_key
Request Body schema: application/json
required
points
required
integer <int64> (points)
affiliate_code
required
string (affiliateCode)

Affiliate code

Responses

Request samples

Content type
application/json
{
  • "points": 1000,
  • "affiliate_code": "AFR"
}

Response samples

Content type
application/json
Example
{
  • "points": "1200",
  • "base_points": "1000",
  • "bonus_points": "200",
  • "total_points": "1200",
  • "campaign_id": 5
}

Affiliate Program Account Number

Validate account number for affiliate

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
account_number
required
string (accountNumber)

Account number in affiliate program system

affiliate_code
required
string (affiliateCode)

Affiliate code

Responses

Request samples

Content type
application/json
{
  • "account_number": "string",
  • "affiliate_code": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Cashback Calculated Points

Calculate points to cashback amount

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
points
required
integer <int64>

Points to calculate

cashback_target
string
Enum: "card" "account"

Cashback destination whose rate configuration is applied. Defaults to card when omitted.

Responses

Request samples

Content type
application/json
{
  • "points": 0,
  • "cashback_target": "card"
}

Response samples

Content type
application/json
{
  • "amount": 37.89,
  • "currency": "USD, EUR"
}

Get banners

Return list of banners

Authorizations:
api_key
query Parameters
page_code
string
Enum: "home" "earn_points" "spend_points" "hot_deals" "blu_travel"

Responses

Response samples

Content type
application/json
{}

Get channels

Return list of channels

Authorizations:
(api_keybearer)
query Parameters
country_id
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "data": []
}

Contact us

Submit contact us form

Authorizations:
api_key
Request Body schema: application/json
required
type
required
string
Enum: "customer" "business" "investor" "partner"

Type of author of form

source_form
string
Default: "contact_us"
Enum: "contact_us" "become_partner"

From which form the request is coming

name
required
string
company
string
email
required
string <email>
mobile
required
string
message
required
string

Responses

Request samples

Content type
application/json
{
  • "type": "customer",
  • "source_form": "contact_us",
  • "name": "string",
  • "company": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Otp

Send OTP to mobile

Send OTP(One Time Password) to mobile. First endpoint for "otp" flow step type

Authorizations:
api_key
header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "otp_token": "string",
  • "otp_attempts": "string",
  • "otp_token_expired_in_sec": "string",
  • "otp_template": "login"
}

Verify OTP

Verify OTP(One Time Password). You should use otp_token provided by send otp action. Second endpoint for "otp" flow step type

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
required
otp_token
required
string

Otp token provided by send otp action

otp_value
string

Responses

Request samples

Content type
application/json
{
  • "otp_token": "string",
  • "otp_value": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Partner

Get partner config

Get partner's order configuration values

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "client_min_version": {
    },
  • "order": {
    }
}

Get child partners

Get child partners of authenticated partner

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

name
string >= 2 characters

Search child partners by name

country_id
integer <int64>

Country id

area_id
integer <int64>

Area id

city_id
integer <int64>

City id

order
string
Enum: "alpha_asc" "alpha_desc"

Criteria to order list

brand_name
string >= 2 characters

Search child partners by brand name

Responses

Response samples

Content type
application/json
[]

Get partner details

Get details of certain partner

Authorizations:
api_key
path Parameters
partner_id
required
integer <int64>

Partner id

query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "website_url": "http://example.com",
  • "country_name": "string",
  • "city_name": "string",
  • "mobile": "string",
  • "whatsapp_number": "string",
  • "email": "string",
  • "address1": "string",
  • "address2": "string",
  • "lat": 0,
  • "lng": 0,
  • "google_maps_url": "string",
  • "image_urls": []
}

Surveys

Public survey response endpoints (no platform auth required).

Get survey by invitation token

Load a survey by its invitation token. The endpoint validates the token, lazily creates an in-progress survey_response on first call, and returns the survey metadata, ordered questions, previously saved answers and a first_unanswered_question_display_order resume cursor.

The caller authenticates with the partner api-key header; the invitation token in the path selects the survey and must belong to that partner. No member authentication is required. When the frontend has a logged-in member it may forward that member's Authorization: Bearer <token>; the invitation must then belong to that member, otherwise the request is rejected with 403 and code 1808 so the frontend can redirect away from a survey that is not the logged-in member's.

Authorizations:
api_key
path Parameters
token
required
string = 43 characters

43-character invitation token issued by the survey distribution flow.

query Parameters
partner_code
required
string
Example: partner_code=ZBG

Code of the partner whose branded frontend the survey link is being opened from. It reflects the serving frontend's partner (derived from its host/config), not a value embedded in the distributed link. It must match the partner the survey was created for; a missing, unknown, or mismatched value makes the survey link invalid (404), indistinguishable from an unknown token.

lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
Authorization
string
Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Optional Bearer <token> of the member currently logged in on the frontend. The survey endpoints stay public — the invitation token is the access key — but when this header is sent the platform resolves the member behind the token and requires the invitation to belong to that member, answering 403 with code 1808 otherwise. A token that belongs to no member (for example a session already cleared on the server) is ignored and the survey opens as for an anonymous caller.

Accept-Language
string
Example: en-US, en;q=0.9

Preferred language for the survey content (e.g. en, ar, fr). The request language wins: this header first, then the deprecated lang query parameter. Only when the request carries neither does the invited member's account language preference apply, then the partner default, then the first available translation. A requested language the survey has no translation for is skipped in favour of the next source.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Upsert a single answer

Idempotently store the answer for a single survey question. The endpoint re-runs the eligibility check on every call and validates the answer shape against the question's question_type.

Sending the same payload more than once for the same question overwrites the previously stored value (last-write-wins).

When the frontend has a logged-in member it may forward that member's Authorization: Bearer <token>; the invitation must then belong to that member, otherwise the request is rejected with 403 and code 1808.

Authorizations:
api_key
path Parameters
token
required
string = 43 characters

43-character invitation token issued by the survey distribution flow.

query Parameters
partner_code
required
string
Example: partner_code=ZBG

Code of the partner whose branded frontend the survey link is being opened from. It reflects the serving frontend's partner (derived from its host/config), not a value embedded in the distributed link. It must match the partner the survey was created for; a missing, unknown, or mismatched value makes the survey link invalid (404), indistinguishable from an unknown token.

header Parameters
Authorization
string
Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Optional Bearer <token> of the member currently logged in on the frontend. The survey endpoints stay public — the invitation token is the access key — but when this header is sent the platform resolves the member behind the token and requires the invitation to belong to that member, answering 403 with code 1808 otherwise. A token that belongs to no member (for example a session already cleared on the server) is ignored and the survey opens as for an anonymous caller.

Request Body schema: application/json
required
question_id
required
integer

Id of the question being answered. Must belong to the survey resolved from the token.

required
object or object

Shape depends on the question type:

  • RatingScale (1): {"rating": <int>} where rating is within [scale_min, scale_max].
  • YesNo (2): {"yes_no": <bool>}.

Responses

Request samples

Content type
application/json
{
  • "question_id": 4001,
  • "answer_value": {
    }
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Submit a completed survey

Mark the survey response as Completed. The endpoint re-runs the eligibility check, verifies that every required question has been answered, and persists submitted_at.

A SurveyCompletedEvent is emitted on success; downstream rewarding/triggers are owned by a separate ticket and may not be active yet.

Calling this endpoint a second time on the same already-completed response is a no-op and returns the same success payload (idempotent within the same tab).

When the frontend has a logged-in member it may forward that member's Authorization: Bearer <token>; the invitation must then belong to that member, otherwise the request is rejected with 403 and code 1808.

Authorizations:
api_key
path Parameters
token
required
string = 43 characters

43-character invitation token issued by the survey distribution flow.

query Parameters
partner_code
required
string
Example: partner_code=ZBG

Code of the partner whose branded frontend the survey link is being opened from. It reflects the serving frontend's partner (derived from its host/config), not a value embedded in the distributed link. It must match the partner the survey was created for; a missing, unknown, or mismatched value makes the survey link invalid (404), indistinguishable from an unknown token.

lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
Authorization
string
Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Optional Bearer <token> of the member currently logged in on the frontend. The survey endpoints stay public — the invitation token is the access key — but when this header is sent the platform resolves the member behind the token and requires the invitation to belong to that member, answering 403 with code 1808 otherwise. A token that belongs to no member (for example a session already cleared on the server) is ignored and the survey opens as for an anonymous caller.

Accept-Language
string
Example: en-US, en;q=0.9

Preferred language for the survey content in the response payload. The request language wins: this header first, then the deprecated lang query parameter. Only when the request carries neither does the invited member's account language preference apply, then the partner default, then the first available translation.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Trigger Manager

Get trigger campaigns list

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get items for a given campaign

Authorizations:
(api_keybearer)
path Parameters
campaign_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Badge Collections

Get badge collections (trigger campaigns) grouped by status

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "active": [
    ],
  • "expired": [
    ]
}

Get items for a given badge collection

Authorizations:
(api_keybearer)
path Parameters
collection_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

User

Operations about user

Register Draft User

Complete flow by registering draft user that was assigned to flow

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "reference": "string"
}

Reset password

Complete password reset flow by setting up a new password

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
password
string <password>

Password of user

confirm_password
string <password>

Password of user (should be same as password)

Responses

Request samples

Content type
application/json
{
  • "password": "pa$$word",
  • "confirm_password": "pa$$word"
}

Response samples

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

Update password

Complete password update flow by setting up a new password

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Update profile

Complete profile update flow py updating user data

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "ucid": "string",
  • "user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "dob": "2035-01-27",
  • "marital_status": "single",
  • "gender": "m",
  • "title": "Mr",
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "confirm_passcode": true,
  • "is_balance_pending": true,
  • "normalized_mobile": "string",
  • "middle_name": "string",
  • "income_bracket": "$0 - $500",
  • "occupation_id": 0,
  • "area_id": 0,
  • "city_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "postal_code": "string",
  • "num_children": 0,
  • "lang_code": "st",
  • "email_verified": 0,
  • "mobile_verified": 0,
  • "status": "active",
  • "profile_image_url": "http://example.com",
  • "company_name": "string",
  • "enrollment_date": "2019-05-17 01:00:00",
  • "settings": [
    ]
}

Activate user

Activate user after flow completion

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get profile

Get profile of authenticated user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "ucid": "string",
  • "user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "dob": "2035-01-27",
  • "marital_status": "single",
  • "gender": "m",
  • "title": "Mr",
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "confirm_passcode": true,
  • "is_balance_pending": true,
  • "normalized_mobile": "string",
  • "middle_name": "string",
  • "income_bracket": "$0 - $500",
  • "occupation_id": 0,
  • "area_id": 0,
  • "city_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "postal_code": "string",
  • "num_children": 0,
  • "lang_code": "st",
  • "email_verified": 0,
  • "mobile_verified": 0,
  • "status": "active",
  • "profile_image_url": "http://example.com",
  • "company_name": "string",
  • "enrollment_date": "2019-05-17 01:00:00",
  • "settings": [
    ]
}

Update profile

Update profile of authenticated user. Can be used as a flow step of "update_user" step type or a final endpoint of "change_identifier" flow type

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Flow-Token
string
Request Body schema: application/json
email
string <email>
confirm_email
string <email>
username
string
title
string
Enum: "Mr" "Mrs" "Ms"
first_name
string
middle_name
string
last_name
string
company_name
string
facebook
string
instagram
string
status
string
Enum: "active" "inactive" "suspended" "closed" "undefined"
partner_user_code
string
marital_status
string
Enum: "single" "married" "widowed" "divorced" "other"
dob
string <date>

Date of birth, yyyy-mm-dd

dob_day
integer

Alternatively to dob, parts of date can be specified separately

dob_month
integer

Alternatively to dob, parts of date can be specified separately

dob_year
integer

Alternatively to dob, parts of date can be specified separately

gender
string or null
Enum: "m" "f"
country_id
integer <int64>

Reference to country ID on the platform

nationality_country_id
integer <int64>

Reference to country ID on the platform

address_1
string

Personal address of user (line 1)

address_2
string

Personal address of user (line 2)

area_id
integer <int64>

Reference to area ID on the platform

city_id
integer <int64>

Reference to city ID on the platform

income_bracket
string
Enum: "$0 - $500" "$500 - $1,000" "$1,000 - $2,000" "$2,000 - $3,000" "$3,000 - $4,000" "$4,000 - $5,000" "$5,000 - $8,000" "$8,000 - $12,000" "$12,000 - $15,000" "More than $15,000"
num_children
integer <int64>
terms_and_conditions_accepted
boolean
privacy_policy_accepted
boolean
occupation_id
integer <int64>

Reference to occupation ID on the platform

postal_code
string
image
string <binary>

avatar of user

telephone_code
string (telephoneCode)

Country calling code, see list

mobile
string (mobile)

User's mobile without country code

password
string <password>

Password of user

confirm_password
string <password>

Should be the same as password

lang
string = 2 characters

aliases(lang_code,pref_lang)

Array of objects

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "confirm_email": "user@example.com",
  • "username": "string",
  • "title": "Mr",
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "company_name": "string",
  • "facebook": "string",
  • "instagram": "string",
  • "status": "active",
  • "partner_user_code": "string",
  • "marital_status": "single",
  • "dob": "2035-01-27",
  • "dob_day": 0,
  • "dob_month": 0,
  • "dob_year": 0,
  • "gender": "m",
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "area_id": 0,
  • "city_id": 0,
  • "income_bracket": "$0 - $500",
  • "num_children": 0,
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "occupation_id": 0,
  • "postal_code": "string",
  • "image": "string",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "password": "pa$$word",
  • "confirm_password": "pa$$word",
  • "lang": "st",
  • "settings": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "ucid": "string",
  • "user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "dob": "2035-01-27",
  • "marital_status": "single",
  • "gender": "m",
  • "title": "Mr",
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "confirm_passcode": true,
  • "is_balance_pending": true,
  • "normalized_mobile": "string",
  • "middle_name": "string",
  • "income_bracket": "$0 - $500",
  • "occupation_id": 0,
  • "area_id": 0,
  • "city_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "postal_code": "string",
  • "num_children": 0,
  • "lang_code": "st",
  • "email_verified": 0,
  • "mobile_verified": 0,
  • "status": "active",
  • "profile_image_url": "http://example.com",
  • "company_name": "string",
  • "enrollment_date": "2019-05-17 01:00:00",
  • "settings": [
    ]
}

Save user settings

Save user settings

Authorizations:
(api_keybearer)
Request Body schema: application/json
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "settings": [
    ]
}

Response samples

Content type
application/json
{
  • "settings": [
    ]
}

Set user language

Set user language

Authorizations:
(api_keybearer)
Request Body schema: application/json
lang
required
string

Language code

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get extended profile

Get extended profile of authenticated user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "ucid": "string",
  • "user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "dob": "2035-01-27",
  • "marital_status": "single",
  • "gender": "m",
  • "title": "Mr",
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "confirm_passcode": true,
  • "is_balance_pending": true,
  • "normalized_mobile": "string",
  • "middle_name": "string",
  • "income_bracket": "$0 - $500",
  • "occupation_id": 0,
  • "area_id": 0,
  • "city_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "postal_code": "string",
  • "num_children": 0,
  • "lang_code": "st",
  • "email_verified": 0,
  • "mobile_verified": 0,
  • "status": "active",
  • "profile_image_url": "http://example.com",
  • "company_name": "string",
  • "enrollment_date": "2019-05-17 01:00:00",
  • "settings": [
    ],
  • "tiers": [
    ],
  • "segments": [
    ],
  • "balance": {
    }
}

Register User

Register User. Some properties may vary depending on partner configuration.

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
first_name
required
string
middle_name
string
last_name
required
string
email
required
string <email>
confirm_email
required
string

Should be the same as email

telephone_code
string (telephoneCode)

Country calling code, see list

mobile
required
string (mobile)

User's mobile without country code

country_id
required
integer <int64>

Reference to country ID on the platform

nationality_country_id
integer <int64>

Reference to country ID on the platform

area_id
integer <int64>

Reference to area ID on the platform

city_id
integer <int64>

Reference to city ID on the platform

address_1
string

Personal address of user (line 1)

address_2
string

Personal address of user (line 2)

dob
string <date>

Date of birth, yyyy-mm-dd

marital_status
string
Enum: "single" "married" "widowed" "divorced" "other"
gender
string or null
Enum: "m" "f"
title
string
Enum: "Mr" "Mrs" "Ms"
password
required
string <password>

Password of user

confirm_password
required
string

Should be the same as password

terms_and_conditions_accepted
required
boolean
privacy_policy_accepted
boolean
reference
string
partner_user_code
string
postal_code
string
num_children
integer <int64>
income_bracket
string
Enum: "$0 - $500" "$500 - $1,000" "$1,000 - $2,000" "$2,000 - $3,000" "$3,000 - $4,000" "$4,000 - $5,000" "$5,000 - $8,000" "$8,000 - $12,000" "$12,000 - $15,000" "More than $15,000"
occupation_id
integer <int64>

Reference to occupation ID on the platform

lang_code
string = 2 characters
auto_cashback
boolean

If user should be applied to auto cashback program (if allowed by partner)

cashback_account
string

Account number auto cashback program (if allowed by partner)

tier_type
string or null
Enum: "home" "regular"
tier_code
string or null
company_name
string

Name of company that is employing user

mapping_id
string

Code of segment of user

card_auth_jwt
string or null

Token of card authentication (if allowed by partner)

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "confirm_email": "string",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "country_id": 0,
  • "nationality_country_id": 0,
  • "area_id": 0,
  • "city_id": 0,
  • "address_1": "string",
  • "address_2": "string",
  • "dob": "2019-08-24",
  • "marital_status": "single",
  • "gender": "m",
  • "title": "Mr",
  • "password": "pa$$word",
  • "confirm_password": "string",
  • "terms_and_conditions_accepted": true,
  • "privacy_policy_accepted": true,
  • "reference": "string",
  • "partner_user_code": "string",
  • "postal_code": "string",
  • "num_children": 0,
  • "income_bracket": "$0 - $500",
  • "occupation_id": 0,
  • "lang_code": "st",
  • "auto_cashback": true,
  • "cashback_account": "string",
  • "tier_type": "home",
  • "tier_code": "string",
  • "company_name": "string",
  • "mapping_id": "string",
  • "card_auth_jwt": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "ucid": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "telephone_code": "string",
  • "mobile": 70757959,
  • "reference": "string"
}

User cards

Get list of cards of user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete card

Delete card of an user

Authorizations:
(api_keybearer)
path Parameters
card_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Change password Deprecated

Change password of authenticated user by old password

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
old_password
string <password>

Old password or PIN of user

password
string <password>

New password or PIN of user

confirm_password
string <password>

New password or PIN of user (should be same as password)

Responses

Request samples

Content type
application/json
{
  • "old_password": "string",
  • "password": "string",
  • "confirm_password": "string"
}

Response samples

Content type
application/json
{
  • "user_access_token": "string",
  • "refresh_token": "string"
}

Get Affiliate memberships

Get Affiliate memberships of authenticated user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

User cards

Get list of cards of user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Sync Users

Get list of cards of user

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

User Balance

Get user balance

Authorizations:
api_key
path Parameters
user_id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "status": 200
}

User transfer

Calculate User Transfer Points

Calculate points using points count and "is sender pay commision"

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Request Body schema: application/json
points
integer
is_sender_pay_commission
boolean
Default: true
destination_partner_code
string or null <= 50 characters

Partner code of the destination program (one of GET /v7/user-transfer/conversion-destinations). Omit for a transfer within the member's own program.

Responses

Request samples

Content type
application/json
{
  • "points": 0,
  • "is_sender_pay_commission": true,
  • "destination_partner_code": "BSFPM"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get conversion destinations

Programs the authenticated member may convert points to (program-to-program conversion), with the current conversion rate derived from the two networks' point values (source point value / destination point value). Empty when the partner does not enable conversions. A conversion is only allowed to the member's own account in the destination program (error 819).

Authorizations:
(api_keybearer)
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Vop

VOP CLO transactions

Retrieve Visa CLO Cashback Transactions

Authorizations:
api_key
query Parameters
order_id
required
integer <int32>

Order ID

Responses

Response samples

Content type
application/json
{
  • "transaction_date": "yyyy-mm-dd",
  • "cashback_date": "yyyy-mm-dd",
  • "status": "posted",
  • "billing_amount": {
    },
  • "card_acceptor_id": 0,
  • "acquirer_bin": 0,
  • "masked_pan": "string",
  • "offer_name": "string",
  • "discount": 0.1,
  • "cashback_amount": {
    }
}

Approve VOP offer

Approve VOP offer using code sent to user in SMS

Authorizations:
(api_keybearer)
Request Body schema: application/json
pos_code
required
string (posCode)

POS mapping code predefined in platform

approval_code
required
string (approvalCode)

Approval code from SMS

Responses

Request samples

Content type
application/json
{
  • "pos_code": "string",
  • "approval_code": "string"
}

Response samples

Content type
application/json
{
  • "price_in_points": 0,
  • "cashback_amount": {
    },
  • "merchant_name": "string"
}

VOP validated redemption offer

VOP validated redemption offer

Authorizations:
api_key
path Parameters
approval_code
required
string

Unique code associated with offer

query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "redemption_offer": {
    },
  • "min_points": 0,
  • "max_points": 0,
  • "cap_value": 0,
  • "errors": [
    ]
}

Create VOP order

Create VOP order

Authorizations:
api_key
Request Body schema: application/json
approval_code
required
string (approvalCode)

Approval code from SMS

points
integer <int64> (itemPriceInPoints)

when missing, take max offer billing amount in points

Responses

Request samples

Content type
application/json
{
  • "approval_code": "string",
  • "points": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "vop",
  • "price_in_points": 0,
  • "cashback_amount": null,
  • "merchant_name": "string",
  • "card_last_four": "stri",
  • "support_email": "string",
  • "order_access_token": "string"
}

Get VOP offers

Get VOP offers

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "errors": [
    ]
}

Von

Get VON offers

Get VISA Offers Network (VON) offers for the authenticated user.

Authorizations:
(api_keybearer)
query Parameters
page
integer <int64>

Page number

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get VON dashboard

Get VISA Offers Network (VON) dashboard for the authenticated user, including pending and paid offers and summary amounts.

Authorizations:
(api_keybearer)
query Parameters
date_from
string <date>

Start date for the dashboard data (YYYY-MM-DD). Default is 2026-01-01.

date_to
string <date>

End date for the dashboard data (YYYY-MM-DD). Default is current date.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

KWFH specific

KWFH customer cards

Get a list of credit cards that belong to the user

Authorizations:
(api_keybearer)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Merchant API / Order

Create Merchant Order Creation Access Token

This end-point generates a token to create an merchant order. Token can be used for order creation once.

Authorizations:
api_key
Request Body schema: application/json
required
customer_identifier
required
string (customer_identifier)

mobile with country code or reference number of provider partner

partner_code
required
string (partner_code)

code of partner providing loyalty benefits

Responses

Request samples

Content type
application/json
{
  • "customer_identifier": "string",
  • "partner_code": "string"
}

Response samples

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

List merchant orders

List merchant orders

Authorizations:
api_key
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

start_date
required
string <date>
Example: start_date=2035-01-25

Start date

end_date
required
string <date>
Example: end_date=2035-01-25

End date

partner_code
required
string

Code of partner

merchant_store_code
string

Code of merchant store

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "stringstringstringstringstringstring",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "merchant",
  • "merchant_order_code": "string",
  • "notes": "string",
  • "is_reversal": 0
}

Create merchant order

Create merchant order

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
required
token
required
any

Merchant Order Access Token. The token received with /merchant-order-access-tokens end-point

otp
required
string
partner_code
required
string

code of partner providing loyalty benefits

amount
required
number <float>

order amount with 2 digits next to dot

currency_code
required
string

ISO 3-Letter Currency Code

merchant_store_code
string

optional, code of merchant store if need orders by store codes

merchant_order_code
string

optional, code of merchant order

notes
string

optional, additional notes

Responses

Request samples

Content type
application/json
{
  • "token": null,
  • "otp": "string",
  • "partner_code": "string",
  • "amount": 37.89,
  • "currency_code": "USD, EUR",
  • "merchant_store_code": "string",
  • "merchant_order_code": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "order_code": "stringstringstringstringstringstring"
}

Revert merchant order

Revert merchant order by order code

Authorizations:
api_key
path Parameters
order_code
required
string

Order code

header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
required
partner_code
required
string

code of partner providing loyalty benefits

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "order_type": "item",
  • "status": "waiting_confirmation",
  • "rejection_reason": {
    },
  • "point_payment_status": "not_applicable",
  • "cash_payment_status": "not_applicable",
  • "is_conversion": true
}

Partial revert merchant order

Partially revert merchant order by order code and amount

Authorizations:
api_key
path Parameters
order_code
required
string

Order code

header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
required
partner_code
required
string

code of partner providing loyalty benefits

amount
required
number <float>

order amount with 2 digits next to dot

currency_code
required
string

ISO 3-Letter Currency Code

Responses

Request samples

Content type
application/json
{
  • "partner_code": "string",
  • "amount": 37.89,
  • "currency_code": "USD, EUR"
}

Response samples

Content type
application/json
{
  • "order_status": "waiting_confirmation",
  • "reversion_code": "string",
  • "reversion_date": "2023-01-30 12:40:15"
}

Merchant API / Pending Reward Transaction

Create pending transaction

Create pending transaction

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
required
is_reversal
required
integer
Enum: 0 1
customer_identifier
required
string (customer_identifier)

mobile with country code or reference number of provider partner

partner_code
required
string (partner_code)

code of partner providing loyalty benefits

required
object [ 0.01 .. 999999999.99 ]
transaction_date
required
string <date-time>

format Y-m-d H:i:s, example 2035-01-25 17:20:30

Responses

Request samples

Content type
application/json
{
  • "is_reversal": 0,
  • "customer_identifier": "string",
  • "partner_code": "string",
  • "transaction_amount": {
    },
  • "transaction_date": "2035-01-25 17:20:30"
}

Response samples

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

Merchant API / Reward

Create reward

Create reward

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
required
customer_identifier
required
string (customer_identifier)

mobile with country code or reference number of provider partner

partner_code
required
string (partner_code)

code of partner providing loyalty benefits

required
object [ 0.01 .. 999999999.99 ]
transaction_date
required
string <date>

format Y-m-d, example 2024-10-24

Responses

Request samples

Content type
application/json
{
  • "customer_identifier": "string",
  • "partner_code": "string",
  • "transaction_amount": {
    },
  • "transaction_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "code": "f5d62b05-370e-48be-a755-8675ca146431",
  • "bonus_codes": [
    ]
}

Reverse reward

Reverse reward

Authorizations:
api_key
path Parameters
reward_code
required
string

Reward code

header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
required
partner_code
required
string (partner_code)

code of partner providing loyalty benefits

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Marketplace API / Affiliate

Get Affiliate Programs

Get list of available affiliate programs on the platform

Authorizations:
api_key
query Parameters
type_codes
Array of strings
Items Enum: "points_conversion" "miles_conversion" "amount_donated"
sort_by
string
Enum: "newest" "oldest" "alpha_asc" "alpha_desc"

Sort result as Newest, Oldest, Alphabetical A-Z, Alphabetical Z-A

header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get affiliate program

Get details of a specific affiliate program

Authorizations:
api_key
path Parameters
program_code
required
string
header Parameters
Accept-language
string
Default: en
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Affiliate account number validation

Validate account number for affiliate

Authorizations:
api_key
path Parameters
program_code
required
string
Request Body schema: application/json
required
account_number
required
string (accountNumber)

Account number in affiliate program system

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Create Marketplace Affiliate Order

This operation allows the transfer of a specified value (points, money ..etc) to the balance of a member within a targeted affiliate program.

Authorizations:
api_key
Request Body schema: application/json
required
client_order_code
required
string (clientOrderCode) <= 36 characters

Order code on the client side

affiliate_program_code
required
string

The code representing the target affiliate program (e.g., GAF).

value
integer >= 1

The value (points, money ..etc) that will be transferred to the balance of a member within a targeted affiliate program.

object

The member's credentials in the target affiliate program. The required credentials may vary among affiliates, So refer to the program details to customize this field.

Responses

Request samples

Content type
application/json
{
  • "client_order_code": "string",
  • "affiliate_program_code": "GAF",
  • "value": 1,
  • "account_credentials": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Marketplace API / Car

Get countries

Returns an up-to-date list of supported countries.

Note: The data returned from this endpoint does not change often and is suitable for long-retention caching or being loaded into a database. However, it should not be treated as static and should be refreshed weekly.

Authorizations:
api_key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get cities

Returns an up-to-date list of supported cities within the specified country.

Note: The data returned from this endpoint does not change often and is suitable for long-retention caching or being loaded into a database. However, it should not be treated as static and should be refreshed weekly.

Authorizations:
api_key
query Parameters
country_code
required
string
Example: country_code=AE

ISO 3166-1 alpha-2 country code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get airports

Returns an up-to-date list of supported airports within the specified country.

Note: The data returned from this endpoint does not change often and is suitable for long-retention caching or being loaded into a database. However, it should not be treated as static and should be refreshed weekly.

Authorizations:
api_key
query Parameters
country_code
required
string
Example: country_code=AE

ISO 3166-1 alpha-2 country code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Search rental locations

This endpoint allows users to search for car rental locations (cities, airports) based on a provided search term. It helps users find available rental locations by entering a partial or complete name of the city or airport.

Note: To optimize performance, consider importing data on countries, cities, and airports into your local database and creating a local endpoint for faster search results. However, depending on your integration needs, using this endpoint directly might suffice.

Authorizations:
api_key
query Parameters
search_term
required
string >= 3

Partial or complete name of the city or airport

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Search available car rental offers

This endpoint allows clients to search for available car rental offers based on specific criteria such as pickup and dropoff locations, driver age, and source country. The search can accommodate various location types and formats. The supported search scenarios include:

  • Both pickup and dropoff locations being cities or airports.
  • Both pickup and dropoff locations being specified by geographical coordinates.
Authorizations:
api_key
Request Body schema: application/json
required
required
object
required
object
driver_age
required
integer [ 18 .. 100 ]

It is necessary to calculate the correct under-age and over-age fees. When provided, then you are able to receive the young driver fee (YDS) or senior driver fee (SDS) which the supplier charges at the rental location for young / senior drivers (usually under 25 or above 80)

source_country
required
string (sourceCountryCode)

Specifies the driver's country of residence (format:ISO 3166-1 alpha-2 code) in order to get the correct rates returned from the suppliers

Responses

Request samples

Content type
application/json
{
  • "pickup": {
    },
  • "dropoff": {
    },
  • "driver_age": 30,
  • "source_country": "AE"
}

Response samples

Content type
application/json
[]

Get car rental offer by its code

Authorizations:
api_key
path Parameters
offer_code
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create Marketplace Vehicle Order

Place an order for a car rent

Authorizations:
api_key
Request Body schema: application/json
required
client_order_code
required
string

Order code on the client side

car_offer_code
required
string
required
object
Array of objects

Specifies the optional equipment that customers can reserve along with their car rental. Availability of these items may vary. Examples include an Infant Seat (0-1 year) and GPS (Global Positioning System). For a comprehensive list of available equipment types for a car rental offer, please refer to the Get car rental offer by its code endpoint

Responses

Request samples

Content type
application/json
{
  • "client_order_code": "string",
  • "car_offer_code": "rAULheswWEyor9F0fQr3Cw-8",
  • "reservation_holder": {
    },
  • "requested_equipments": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Marketplace API / Flight

Get airports

Get airports for flights, grouped by city

Authorizations:
api_key
query Parameters
search-term
required
string >= 2 characters

search airport by name, city, country and IATA code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get flights

Get a list of available flights according to the search criteria

Authorizations:
api_key
query Parameters
departure_airport
required
string = 3 characters
Example: departure_airport=MAD

IATA 3-letter code of airport where trip begins

arrival_airport
required
string = 3 characters
Example: arrival_airport=BCN

IATA 3-letter code of airport where trip ends

depart
required
string <date>

date of the departure flight in format YYYY-MM-DD

return
required
string <date>

date of the return flight in format YYYY-MM-DD (omitted if this is not a round trip)

direct
required
integer
Enum: 0 1

direct flights without any stops

cabin_class
required
string
Enum: "Economy" "Business" "PremiumEconomy" "First"
adults
required
integer [ 1 .. 9 ]

number of adults (age 12+) in trip

children
required
integer <= 9

number of children (age 2-12) in trip

infants
required
integer <= 9

number of infants (age 0-2) in trip. Cannot exceed number of adults

Responses

Response samples

Content type
application/json;version=2
[
  • {
    }
]

Get flight

Retrieve a flight by its code

Authorizations:
api_key
path Parameters
flight_code
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create Marketplace Flight Order

Reserve a flight from the list of available ones synchronously by its code

Authorizations:
api_key
Request Body schema: application/json
required
client_order_code
required
string (clientOrderCode) <= 36 characters

Order code on the client side

flight_code
required
string

Flight code

required
object (mpFlightPassengers)
required
object (customerContactDetails)

Responses

Request samples

Content type
application/json
{
  • "client_order_code": "string",
  • "flight_code": "string",
  • "passengers": {
    },
  • "contact_details": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Marketplace API / Hotel

Get Destinations

Retrieve a list of hotel destinations based on search criteria.

Authorizations:
api_key
query Parameters
search_phrase
string >= 2 characters

Search destinations by name

country_code
string

ISO 3166-1 alpha-2 country code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Accommodation Types

Returns the list of available accommodation types

Authorizations:
api_key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Search available hotel offers

Search hotels and rooms available offers in a given time period based on the specified criteria

Authorizations:
api_key
Request Body schema: application/json
required
required
object
required
object
required
object

Only one criterion is allowed in the request

object

Responses

Request samples

Content type
application/json
{
  • "stay": {
    },
  • "occupancy": {
    },
  • "search_criteria": {
    },
  • "filter": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Get hotel offer by its code

Retrieve detailed information about a hotel offer and rooms available using its unique code

Authorizations:
api_key
query Parameters
offer_code
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Obtain the latest room rate & associated comments

The "checkRate" operation is essential for evaluating room rates before confirming a booking. This operation provides crucial information, including rate comments, also known as contract remarks or contract comments, which are vital details for travelers when reserving a hotel room.

Rate comments may encompass various elements such as:

  • Hotelier remarks, e.g., specific instructions like key collection at 522 Main Street.
  • Tax information related to the booking.
  • Notifications about any emergent hotel issues, such as repair works or temporarily closed facilities.
Authorizations:
api_key
Request Body schema: application/json
required
rate_code
required
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create Marketplace Hotel Order

Book a hotel room(s) by its rate code

Authorizations:
api_key
Request Body schema: application/json
required
client_order_code
required
string (clientOrderCode) <= 36 characters

Order code on the client side

room_rate_code
required
string
required
object (bookingHolder)

Information of the holder of the booking.

required
Array of objects (guest) [ 1 .. 10 ] items [ items ]

Ensure that the number of guest groups corresponds to the number of rooms in the offer

remark
string (bookingHolderRemark)

string [ 0 .. 2000 ] characters Free text sent to the hotelier. It can be used to request or inform of special requests to hotelier like - “Non-smoking room preferred”, “Twin bed please”, “Upper floor preferred”, “Late arrival”….

Responses

Request samples

Content type
application/json
{
  • "client_order_code": "string",
  • "room_rate_code": "string",
  • "booking_holder": {
    },
  • "guests_groups": [
    ],
  • "remark": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Marketplace API / Item

Get marketplace items

List all marketplace items available for partner with their translations, for synchronization

Authorizations:
api_key

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create Marketplace Item Order

Create Marketplace Item Order

Authorizations:
api_key
Request Body schema: application/json
required
client_order_code
string (clientOrderCode) <= 36 characters

Order code on the client side

item_code
required
string

Item code

country_code
required
string

ISO 3166-1 alpha-2 country code

object

Not required for items with electronic delivery

object

Not required for items with electronic delivery

Responses

Request samples

Content type
application/json
{
  • "client_order_code": "string",
  • "item_code": "string",
  • "country_code": "string",
  • "delivery_address": {
    },
  • "delivery_contacts": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Cancel Marketplace Item Order

Cancel Marketplace Item Order

Authorizations:
api_key
path Parameters
platform_order_code
required
string

Order code on the platform side

Request Body schema: application/json
reason
any

Reason for cancellation

Responses

Request samples

Content type
application/json
{
  • "reason": null
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Marketplace API / Order

Get marketplace order

Authorizations:
(api_keybearer)
path Parameters
order_code
required
string

Responses

Response samples

Content type
application/json
{
  • "schema": {
    }
}

Get order status

Retrieves the status of an order from the marketplace platform using our platform order code

Authorizations:
api_key
path Parameters
order_code
required
string

Code of the order on the platform side

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Partner API / Audit Trail

Get audit trail records

Returns a paginated list of audit trail records

Authorizations:
api_key
query Parameters
start_date
required
string <date-time>

Filter records created after this date (ISO 8601 format).

end_date
required
string <date-time>

Filter records created before this date (ISO 8601 format).

log_type
string
Enum: "admin" "user"

Type of log to filter the results.

page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Partner API / Custom

Get balance

Get balance by card number

Authorizations:
api_key
query Parameters
card_number
string
header Parameters
X-Params
string

JWE-encrypted token with parameters encrypted according to "Encryption of sensitive data" documentation

Responses

Response samples

Content type
application/json
{
  • "balance": 0,
  • "in_network_currency": 0,
  • "network_currency_code": "string"
}

Get user data by Reference ID

Get user data by Reference ID

Authorizations:
api_key
path Parameters
reference_id
required
string

Responses

Response samples

Content type
application/json
{
  • "user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "middle_name": "string",
  • "mobile": "string",
  • "is_card_issued": "string",
  • "last_card_used_date": "string",
  • "points_available": "string",
  • "user_status": "string"
}

Create PwP order

Create Pay with Points order. Reduce user balance with certain amount of points by his card number.

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

X-Params
string

JWE-encrypted token with parameters encrypted according to "Encryption of sensitive data" documentation

Request Body schema: application/json
card_number
required
string = 16 characters
points
required
integer <int64>

Points to be charged from user's balance.

pwp_transaction_id
required
string <= 36 characters
vip_transaction_id
string <= 36 characters
amount
required
number <float>
currency
required
string
merchant_name
string <= 255 characters
merchant_category_code
string <= 10 characters

Responses

Request samples

Content type
application/json
{
  • "card_number": "stringstringstri",
  • "points": 0,
  • "pwp_transaction_id": "string",
  • "vip_transaction_id": "string",
  • "amount": 0.1,
  • "currency": "string",
  • "merchant_name": "string",
  • "merchant_category_code": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "pay-with-points",
  • "points": 0,
  • "amount": {
    },
  • "card_last_four": "stri",
  • "transaction_timestamp": "yyyy-mm-dd hh:mm:ss (2025-12-27 19:45:23)",
  • "merchant_name": "string"
}

Partner API / Import

Import Users

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Import users request

file
required
string <binary>
should_send_welcome_notification
boolean

Whether to trigger welcome SMS notification to user. If not specified, default configuration for partner will be applied.

is_update
boolean

Whether uploaded file is registration or update (by default registration).

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Import Tiers

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Import users tiers request

file
required
string <binary>

Responses

Import Cards

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Import user cards

file
required
string <binary>

Text file formatted as agreed with partner

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Import reward transactions

Authorizations:
api_key
Request Body schema: application/json
required

Import reward transactions staged in database

start_date
string <date>

Earliest date of staged transactions, yyyy-mm-dd

end_date
string <date>

Latest date of staged transactions, yyyy-mm-dd

thread_count
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "thread_count": 0
}

Validate reward transactions

Authorizations:
api_key
Request Body schema: application/json
required

Validate if transactions staged in database for reward have errors

thread_count
integer <int32>

Responses

Request samples

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

Upload reward transactions

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Reward transactions upload request

file
required
string <binary>
source_type_id
integer <int32>

Responses

Response samples

Content type
application/json
"File Uploaded Successfully"

Import affiliate order statuses

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Import affiliate order statuses request

code
required
string

Program code

file
required
string <binary>

File containing results of affiliate order processing with rows in the following format: Order Id,Status,Code,Description; where: Order Id - Order ID returned from affiliate order request; Status - Processing result, either Success or Failed; Code - Alphanumeric external order reference assigned on partner's side; Description - Error message for orders with status Failed

Responses

Import Bonus Points

Imports a pipe-delimited (|), PGP-encrypted bonus points file used to award points in bulk.

Each row supports an optional 4th Rule Code column (Unique Identifier|Points|Description|Rule Code) that selects the point-expiration rule applied to the awarded points:

  • default — use the partner's default expiration rule.
  • no-expiry — the awarded points never expire.
  • an active rule_code of one of the partner's point-expiration rules — that rule's period applies.
  • empty or omitted — the partner's default expiration rule applies.

Any other value rejects the row with Unknown or inactive Rule Code "..." in the import report. Reserved codes (default, no-expiry) are matched case-sensitively.

Authorizations:
api_key
Request Body schema: multipart/form-data
required

Import bonus points request

file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Partner API / Offline Voucher

Order Offline Voucher

Order Offline Voucher. Request is idempotent by order_code parameter

Authorizations:
api_key
Request Body schema: application/json
required
order_code
required
string

Order code

product_code
required
string

Product code

Responses

Request samples

Content type
application/json
{
  • "order_code": "string",
  • "product_code": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Use Offline Voucher

Use Offline Voucher by voucher code and serial number

Authorizations:
api_key
path Parameters
voucher_code
required
string
Request Body schema: application/json
serial_number
string

PIN or serial number of voucher

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "data": {
    }
}

Partner API / Redemption

Ad hoc redeem Deprecated

Directly reduce user balance with certain amount of points

Authorizations:
api_key
Request Body schema: application/json
reference
required
string (userReference)

Unique user reference identifier

points
required
integer <int64>

Points to be charged from user's balance.

description
string

Free text

country_code
string (countryCode)

Country short code

store_code
string (storeCode)

Store mapping code predefined in platform

pos_code
string (posCode)

POS mapping code predefined in platform

Responses

Request samples

Content type
application/json
{
  • "reference": "string",
  • "points": 0,
  • "description": "string",
  • "country_code": "string",
  • "store_code": "string",
  • "pos_code": "string"
}

Response samples

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

Create Ad hoc order

Create adhoc order. Directly reduce user balance with certain amount of points

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
reference
required
string (userReference)

Unique user reference identifier

points
required
integer <int64>

Points to be charged from user's balance.

category
string

Free text

notes
string

Free text

country_code
string (countryCode)

Country short code

store_code
string (storeCode)

Store mapping code predefined in platform

pos_code
string (posCode)

POS mapping code predefined in platform

Responses

Request samples

Content type
application/json
{
  • "reference": "string",
  • "points": 0,
  • "category": "string",
  • "notes": "string",
  • "country_code": "string",
  • "store_code": "string",
  • "pos_code": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
  • "date": "2023-01-30 12:40:15",
  • "status": {
    },
  • "rejection_reason": {
    },
  • "order_type": "adhoc",
  • "points": 0,
  • "notes": "string"
}

Reverse Order

Reverse order by ID

Authorizations:
api_key
path Parameters
order_id
required
integer <int64>

Order id

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Partner API / Rewarding

Ad hoc reward

Directly increase user balance with certain amount of points

Authorizations:
api_key
Request Body schema: application/json
reference
required
string (userReference)

Unique user reference identifier

points
required
integer <int64>

Number of points to be added to user's balance.

description
string

Free text

country_code
string (countryCode)

Country short code

store_code
string (storeCode)

Store mapping code predefined in platform

pos_code
string (posCode)

POS mapping code predefined in platform

expiration_rule_code
string or null <= 100 characters

Controls how the awarded points expire. Accepts:

  • no-expiry (also accepted as No Expiry) — the awarded points never expire.
  • default — the partner's default expiration rule (configured in the Partner Module) applies.
  • the code of an active point_expiration_rule belonging to the calling partner — that rule's period is used to compute the expiry date.

The reserved values default and no-expiry are matched case-insensitively and ignore surrounding spaces, and they cannot be used as actual rule codes. When omitted, null or empty, behaves the same as default.

Responses

Request samples

Content type
application/json
{
  • "reference": "string",
  • "points": 0,
  • "description": "string",
  • "country_code": "string",
  • "store_code": "string",
  • "pos_code": "string",
  • "expiration_rule_code": "blu-3y-def"
}

Response samples

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

Reward product (user reference)

Process reward transactions immediately. Idempotent if trx_code parameter or Idempotent header provided. If provided both then header is used.

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
trx_code
string

Unique transaction code, used for existence validation.

reversal
required
integer <byte>

This field is to indicate if the transaction is a regular one (0) or a reversal (1).

required
object

The transaction amount

transaction_date
required
string <date>

This is the date of the transaction

description
string
type
string
mcc
string

The MCC is the merchant category code ID

pos_code
string

POS code predefined in platform

store_code
string

Store code predefined in platform

product_code
required
string (rewardProductCode)

Reward product external mapping code

required
object (transactionAmount)

The transaction amount in base currency.

country_code
string (countryCode)

Country short code

reference
required
string (userReference)

Unique user reference identifier

Responses

Request samples

Content type
application/json
{
  • "trx_code": "string",
  • "reversal": 0,
  • "billing_amount": {
    },
  • "transaction_date": "yyyy-mm-dd",
  • "description": "string",
  • "type": "string",
  • "mcc": "string",
  • "pos_code": "string",
  • "store_code": "string",
  • "product_code": "string",
  • "transaction_amount": {
    },
  • "country_code": "string",
  • "reference": "string"
}

Response samples

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

Staged product reward (user reference)

Process reward transactions in some time. Idempotent if trx_code parameter or Idempotent header provided. If provided both then header is used.

Authorizations:
api_key
header Parameters
Idempotency-Key
required
string

Unique value generated by the client which the server uses to recognize subsequent retries of the same request. How you create unique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions. You should resend the same value when got connection timeout error but send new key when got any error response.

Request Body schema: application/json
trx_code
string

Unique transaction code, used for existence validation.

reversal
required
integer <byte>

This field is to indicate if the transaction is a regular one (0) or a reversal (1).

required
object

The transaction amount

transaction_date
required
string <date>

This is the date of the transaction

description
string
type
string
mcc
string

The MCC is the merchant category code ID

pos_code
string

POS code predefined in platform

store_code
string

Store code predefined in platform

product_code
required
string (rewardProductCode)

Reward product external mapping code

required
object (transactionAmount)

The transaction amount in base currency.

country_code
string (countryCode)

Country short code

reference
required
string (userReference)

Unique user reference identifier

Responses

Request samples

Content type
application/json
{
  • "trx_code": "string",
  • "reversal": 0,
  • "billing_amount": {
    },
  • "transaction_date": "yyyy-mm-dd",
  • "description": "string",
  • "type": "string",
  • "mcc": "string",
  • "pos_code": "string",
  • "store_code": "string",
  • "product_code": "string",
  • "transaction_amount": {
    },
  • "country_code": "string",
  • "reference": "string"
}

Response samples

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

Reward event

Not Implemented!!! Process reward transactions immediately or in some time (event-type only). Idempotent if trx_code parameter or Idempotent header provided. If provided both then header is used.

Authorizations:
api_key
Request Body schema: application/json
trx_code
string

Unique transaction code, used for existence validation.

reversal
required
integer <byte>

This field is to indicate if the transaction is a regular one (0) or a reversal (1).

required
object

The transaction amount

transaction_date
required
string <date>

This is the date of the transaction

description
string
type
string
mcc
string

The MCC is the merchant category code ID

pos_code
string

POS code predefined in platform

store_code
string

Store code predefined in platform

product_code
required
string (rewardProductCode)

Reward product external mapping code

user_code
required
string (userReference)

Unique user reference identifier

event_id
required
integer <int64>
events_count
integer
object (transactionAmount)

The transaction amount in base currency.

Responses

Request samples

Content type
application/json
{
  • "trx_code": "string",
  • "reversal": 0,
  • "billing_amount": {
    },
  • "transaction_date": "yyyy-mm-dd",
  • "description": "string",
  • "type": "string",
  • "mcc": "string",
  • "pos_code": "string",
  • "store_code": "string",
  • "product_code": "string",
  • "user_code": "string",
  • "event_id": 0,
  • "events_count": 0,
  • "transaction_amount": {
    }
}

Response samples

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

Reward product (user card)

Process reward transactions immediately. Idempotent by trx_code parameter.

Authorizations:
api_key
Request Body schema: application/json
trx_code
required
string

Unique transaction code, used for existence validation.

reversal
required
integer <byte>

This field is to indicate if the transaction is a regular one (0) or a reversal (1).

required
object

The transaction amount

transaction_date
required
string <date>

This is the date of the transaction

description
string
type
string
mcc
string

The MCC is the merchant category code ID

pos_code
string

POS code predefined in platform

store_code
required
string

Store code predefined in platform

product_code
required
string (rewardProductCode)

Reward product external mapping code

card_number
required
string (userCardNumber)

RSA encrypted user’s card number. Private key should be stored in backend side to decrypt.

auth_code
any

This is the transaction authorization code.

required
object (transactionAmount)

The transaction amount in base currency.

country_code
string (countryCode)

Country short code

Responses

Request samples

Content type
application/json
{
  • "trx_code": "string",
  • "reversal": 0,
  • "billing_amount": {
    },
  • "transaction_date": "yyyy-mm-dd",
  • "description": "string",
  • "type": "string",
  • "mcc": "string",
  • "pos_code": "string",
  • "store_code": "string",
  • "product_code": "string",
  • "card_number": "string",
  • "auth_code": null,
  • "transaction_amount": {
    },
  • "country_code": "string"
}

Response samples

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

Staged product reward (user card)

Process reward transactions in some time. Idempotent by trx_code parameter.

Authorizations:
api_key
Request Body schema: application/json
trx_code
required
string

Unique transaction code, used for existence validation.

reversal
required
integer <byte>

This field is to indicate if the transaction is a regular one (0) or a reversal (1).

required
object

The transaction amount

transaction_date
required
string <date>

This is the date of the transaction

description
string
type
string
mcc
string

The MCC is the merchant category code ID

pos_code
string

POS code predefined in platform

store_code
required
string

Store code predefined in platform

product_code
required
string (rewardProductCode)

Reward product external mapping code

card_number
required
string (userCardNumber)

RSA encrypted user’s card number. Private key should be stored in backend side to decrypt.

auth_code
any

This is the transaction authorization code.

required
object (transactionAmount)

The transaction amount in base currency.

country_code
string (countryCode)

Country short code

Responses

Request samples

Content type
application/json
{
  • "trx_code": "string",
  • "reversal": 0,
  • "billing_amount": {
    },
  • "transaction_date": "yyyy-mm-dd",
  • "description": "string",
  • "type": "string",
  • "mcc": "string",
  • "pos_code": "string",
  • "store_code": "string",
  • "product_code": "string",
  • "card_number": "string",
  • "auth_code": null,
  • "transaction_amount": {
    },
  • "country_code": "string"
}

Response samples

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

Partner API / Transactions

Get staged transactions

Get staged transaction

Authorizations:
api_key
query Parameters
page
integer <int64>

Page number

per_page
integer <int64>

Max records to return

start_date
string <date>
Example: start_date=yyyy-mm-dd

This is the start date and time of selection

end_date
string <date>
Example: end_date=yyyy-mm-dd

This is the end date and time of selection

status
string (importSourceRowStatus)
Enum: "UNPROCESSED" "VALIDATED" "PROCESSED" "SKIPPED" "VALIDATION_FAILED" "FAILED" "DUPLICATE" "VOIDED" "REVERSED" "CANCELED"

Transaction status

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "paginator": {
    }
}

Partner API / User

Register User

Register User

Authorizations:
api_key
query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Correlation-Id
string <uuid>

Unique identifier value generated by the client which the server will maintain in the response headers. Accepts alphanumeric values, hyphen, underscore and dot

Request Body schema: application/json
user_code
required
string (userReference)

Unique user reference identifier

balance
integer

Points to add to user's balance, configurable

mapping_id
string

Comma-separated segment mapping ids to assign the user to on registration. Applied only for partners whose registration runs the segment command; required for ASB.

partner_user_code
string

Configurable per partner

first_name
required
string
last_name
required
string
email
string <email>

Can be required depending on configuration

mobile
string

User's mobile with country code. Can be required depending on configuration

dob
string

Date of birth, yyyy-mm-dd. Configurable per partner

marital_status
string
Enum: "single" "married" "widowed" "divorced" "other"

Configurable per partner

gender
string or null
Enum: "m" "f"

Configurable per partner

lang_code
string = 2 characters
Enum: "en" "ar" "fr"

User's preferred language. Configurable per partner

status
string
Enum: "active" "suspended" "closed"

Configurable per partner

country_id
integer <int64>

Reference to country ID on the platform

area_id
integer <int64>

Reference to area ID on the platform

city_id
integer <int64>

Reference to city ID on the platform

Responses

Request samples

Content type
application/json
{
  • "user_code": "string",
  • "balance": 0,
  • "mapping_id": "SEG1,SEG2",
  • "partner_user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "mobile": 970757959,
  • "dob": "2019-05-17",
  • "marital_status": "single",
  • "gender": "m",
  • "lang_code": "en",
  • "status": "active",
  • "country_id": 0,
  • "area_id": 0,
  • "city_id": 0
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Update User

Update User. Accounts whose status is closed are excluded from the lookup by reference number: if several users share the same reference number, closed accounts are ignored, and if every matching account is closed the request fails with a "user does not exist" error.

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

query Parameters
lang
string = 2 characters
Deprecated
Default: "en"
Enum: "en" "ar" "fr"

Defines the language the system will use in the response fields where applicable

header Parameters
X-Correlation-Id
string <uuid>

Unique identifier value generated by the client which the server will maintain in the response headers. Accepts alphanumeric values, hyphen, underscore and dot

Request Body schema: application/json
partner_user_code
string

Configurable per partner

first_name
required
string
last_name
required
string
email
string <email>

Can be required depending on configuration

mobile
string

User's mobile with country code. Can be required depending on configuration

dob
string

Date of birth, yyyy-mm-dd. Configurable per partner

marital_status
string
Enum: "single" "married" "widowed" "divorced" "other"

Configurable per partner

gender
string or null
Enum: "m" "f"

Configurable per partner

lang_code
string = 2 characters
Enum: "en" "ar" "fr"

User's preferred language. Configurable per partner

status
string
Enum: "active" "suspended" "closed"

Configurable per partner

country_id
integer <int64>

Reference to country ID on the platform

area_id
integer <int64>

Reference to area ID on the platform

city_id
integer <int64>

Reference to city ID on the platform

Responses

Request samples

Content type
application/json
{
  • "partner_user_code": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "mobile": 970757959,
  • "dob": "2019-05-17",
  • "marital_status": "single",
  • "gender": "m",
  • "lang_code": "en",
  • "status": "active",
  • "country_id": 0,
  • "area_id": 0,
  • "city_id": 0
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Update user status

Update user status. Accounts whose status is closed are excluded from the lookup by reference number: if several users share the same reference number, closed accounts are ignored, and if every matching account is closed the request fails with a "user does not exist" error.

Authorizations:
api_key
Request Body schema: application/json
reference
string (userReference)

Unique user reference identifier

status
string
Enum: "active" "inactive" "suspended" "closed"

Responses

Request samples

Content type
application/json
{
  • "reference": "string",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get user balance

Get user balance

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

header Parameters
X-Correlation-Id
string <uuid>

Unique identifier value generated by the client which the server will maintain in the response headers. Accepts alphanumeric values, hyphen, underscore and dot

Responses

Response samples

Content type
application/json
{
  • "balance": 0,
  • "total_points_reserved": 0,
  • "total_points_expired": 0,
  • "total_points_redeemed": 0,
  • "total_points_rewarded": 0,
  • "next_points_to_expire": 0,
  • "next_points_expiration_date": "2019-08-24",
  • "in_network_currency": {
    }
}

Get user cards

Get list of cards of an user

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

header Parameters
X-Correlation-Id
string <uuid>

Unique identifier value generated by the client which the server will maintain in the response headers. Accepts alphanumeric values, hyphen, underscore and dot

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add new card

Add a new card to a user

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

header Parameters
X-Correlation-Id
string <uuid>

Unique identifier value generated by the client which the server will maintain in the response headers. Accepts alphanumeric values, hyphen, underscore and dot

Request Body schema: application/json
card_number
required
string = 16 characters
primary_status
integer
Enum: 1 2

whether card is primary (2 - supplementary, 1 - primary)

Responses

Request samples

Content type
application/json
{
  • "card_number": "stringstringstri",
  • "primary_status": 1
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Update user cards

Provide multiple user cards and actions that should be applied to user cards

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

header Parameters
X-Params
string

JWE-encrypted token with parameters encrypted according to "Encryption of sensitive data" documentation

Request Body schema: application/json
Array of objects

Responses

Request samples

Content type
application/json
{
  • "cards": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Delete card

Delete card of an user

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

card_number
required
string
header Parameters
X-Correlation-Id
string <uuid>

Unique identifier value generated by the client which the server will maintain in the response headers. Accepts alphanumeric values, hyphen, underscore and dot

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get program status

Check if user is associated with affiliate program

Authorizations:
api_key
path Parameters
program_code
required
string
user_code
required
string

Unique code associated with user

Responses

Response samples

Content type
application/json
{
  • "program_id": 0,
  • "status": "enabled",
  • "membership_number": "string"
}

Enable Program

Associate affiliation program with user

Authorizations:
api_key
path Parameters
program_code
required
string
user_code
required
string

Unique code associated with user

Request Body schema: application/json
required
membership_number
required
string

Default account number for given program

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Disable Program

Remove association of affiliation program with user

Authorizations:
api_key
path Parameters
program_code
required
string
user_code
required
string

Unique code associated with user

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Attach Segment

Associate segment with user

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

mapping_id
required
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Detach Segment

Remove association of segment with user

Authorizations:
api_key
path Parameters
user_code
required
string

Unique code associated with user

mapping_id
required
string

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Create or update a user's external identifier

Allows a partner to submit a user-specific identifier (e.g., a loyalty program membership number). If an identifier of the same affiliation already exists for the user, it will be updated. Otherwise, a new one will be created.

Authorizations:
api_key
Request Body schema: application/json
required

The affiliation user identifier details.

user_code
required
string

The partner's unique code for the user.

affiliation_code
required
string

A code representing the affiliation of identifier being stored. This code is provided by the platform.

identifier_value
required
string <= 255 characters

The actual value of the identifier.

Responses

Request samples

Content type
application/json
{
  • "user_code": "USR-12345",
  • "affiliation_code": "QATAR_AIRWAYS",
  • "identifier_value": "QR987654321"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Partner API / User Authentication

Login user by reference

Authenticate user by reference

Authorizations:
api_key
Request Body schema: application/json
required
reference
required
string

User reference (with or without partner code)

Responses

Request samples

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

Response samples

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