Download OpenAPI specification:
This is full API documentation of Bluai API loyalty platform.
Submit customer care form
| 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 |
{- "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"
}{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Validate user activation from activation email link
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| reference required | string (userReference) Unique user reference identifier |
{- "reference": "string"
}{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Submit interest form.
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| 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 |
{- "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"
}{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Return list of countries belonging to partner
[- {
- "id": 0,
- "name": "string",
- "telephone_code": "string",
- "short_code": "str",
- "alpha2_code": "st",
- "alpha3_code": "str",
- "iso_code": "str",
- "postcode_regex": "string"
}
]Get statement of all balance transactions of authenticated user
| 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 |
{- "items": [
- {
- "id": 0,
- "type": "string",
- "date": "2019-08-24T14:15:22Z",
- "description": "string",
- "transaction_points": 0,
- "reservation_number": "string",
- "is_reward": true
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}Get multiple balance of authenticated user
{- "balances": {
- "ASBP": {
- "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}, - "ASBM": {
- "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "selected_by_user_program_code": "string"
}Get statement list
| 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 |
{- "items": [
- {
- "id": 0,
- "partner_name": "string",
- "name": "string",
- "action_id": 0,
- "action_title": "string",
- "trans_class_id": 0,
- "trans_class_title": "string",
- "exception_rule_name": "string",
- "date": "2019-08-24T14:15:22Z",
- "transaction_points": 0,
- "cash_payment": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "transaction_amount": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}, - "original_amount": {
- "amount": 0.1,
- "currency_code": "string"
}, - "description": "string"
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}Get pending reversal rewards list
| 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 |
{- "items": [
- {
- "description": "string",
- "date": "string",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
], - "total_points": 0,
- "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}Get information about user's membership on points, miles and cashback ASB programs
[- {
- "program_code": "string",
- "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": "string",
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "is_active": 0
}
]Set program membership
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| program_code required | string |
| membership_number required | string |
| first_name | string |
| last_name | string |
{- "program_code": "string",
- "membership_number": "string",
- "first_name": "string",
- "last_name": "string"
}{- "message": "string"
}Get list of cashback orders
| 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 |
[- {
- "order_id": 0,
- "partner_code": "ASBP",
- "user_reference": "string",
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "card_number": "123456xxxxxx7890",
- "account_number": "string",
- "type": "card",
- "date": "2023-01-30 12:40"
}
]Downloads a CSV file of program changes for a given period
| 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 |
"Reference ID|Program Map|Status" "KFHB-20240409|ASBM|closed" "AJIB-20240409|ASBC|closed" "VISA-123|ASBP|active" "EOF"
Get user access token by flow access token
| flow_token required | string |
{- "flow_token": "string"
}{- "user_access_token": "string",
- "refresh_token": "string"
}Get user access token by refresh token cookie
| refresh_token | string |
| refresh_token required | string Refresh token for local storage on frontend |
{- "refresh_token": "string"
}{- "user_access_token": "string",
- "refresh_token": "string"
}Single sign-on authentication
| 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. |
{- "jwt": "string"
}{- "user_access_token": "string",
- "refresh_token": "string"
}Authenticate user by credentials
| identifier required | string Any allowed user identifier |
| password required | string <password> password/pin (configured individually) |
{- "identifier": "string",
- "password": "pa$$word"
}{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Reset user pin by identifier
| identifier required | string Any allowed user identifier |
{- "identifier": "string"
}{- "message": "string"
}Unauthenticated user needs to provide pin or password for the user of a flow. Completes "login" flow step type.
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| password required | string <password> password/pin (configured individually) |
{- "password": "pa$$word"
}{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}Update user password as a flow step matching "update_password" flow step type
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| password required | string <password> |
| password_confirmation required | string <password> Should be the same as password |
{- "password": "pa$$word",
- "password_confirmation": "pa$$word"
}{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Send email verification 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 |
| X-Flow-Token | string |
{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}Verify email verification 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 |
| X-Flow-Token | string |
| email_token required | string Token from verification email |
{- "email_token": "string"
}{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}Authenticated user needs to provide pin or password for the user of a flow. Completes "password" flow step type
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| password required | string <password> password/pin (configured individually) |
{- "password": "pa$$word"
}{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Cards validate authentication
| jwt required | string JWT token |
{- "jwt": "string"
}{- "status": "REDIRECT",
- "jwt": "string",
- "acs_url": "string",
- "pa_req": "string",
- "transaction_id": "string"
}Update password by card authorization
| 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 |
{- "card_auth_jwt": "string",
- "password": "string",
- "password_confirmation": "string"
}{- "user_access_token": "string"
}Cards enrollment lookup
| 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 |
string |
{- "jwt": "string",
- "credit_card_number": "string",
- "expiration_month": 1,
- "expiration_year": 0,
- "first_name": "string",
- "last_name": "string",
- "email": "string"
}{- "status": "REDIRECT",
- "jwt": "string",
- "acs_url": "string",
- "pa_req": "string",
- "transaction_id": "string"
}Verify email verification 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 |
| email_token required | string Token from verification email |
null{- "errors": [
- {
- "status": 0,
- "code": 105,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get user balance
| user_id required | integer <int64> |
{- "user": {
- "balance": {
- "balance": "string",
- "sum_expired_points": "string",
- "sum_redeemed_points": "string",
- "expiry_period": "string",
- "next_points_to_expire": "string",
- "next_expiry": "string",
- "sum_expiring_points": "string"
}
}, - "status": 200
}Get balance of authenticated user
| balance_type_id | string get by balance type id, if the param not passed will return default type |
{- "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}Get cashback balance of authenticated user
{- "in_partner_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "reward_sum": 0,
- "redeem_sum": 0,
- "cashback_validity_date": "2019-08-24"
}Get upcoming total expiration points grouped by dates
| 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 |
{- "data": [
- {
- "points": 0,
- "points_expiration_date": "string"
}
]
}Get statement of all balance transactions of authenticated user
| 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 |
{- "items": [
- {
- "id": 0,
- "partner_name": "string",
- "name": "string",
- "action_id": 0,
- "action_title": "string",
- "trans_class_id": 0,
- "trans_class_title": "string",
- "exception_rule_name": "string",
- "date": "2019-08-24T14:15:22Z",
- "transaction_points": 0,
- "cash_payment": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "cash_payment_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "transaction_amount": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}, - "original_amount": {
- "amount": 0.1,
- "currency_code": "string"
}, - "description": "string",
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "merchant_descriptor_name": "string",
- "card_last_four_digits": "string"
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}Get statement of pending reversal rewards transactions of authenticated user
| 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 |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "items": [
- {
- "description": "string",
- "date": "2019-08-24T14:15:22Z",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "transaction_action_id": 0,
- "transaction_class_id": 0,
- "merchant_descriptor_name": "string",
- "card_last_four_digits": "string"
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}, - "total_points": 0
}Get list of cars
| 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> |
[- {
- "car_offer_id": "string",
- "car_name": "string",
- "vendor_name": "string",
- "class_name": "string",
- "category_name": "string",
- "fuel_type": "string",
- "passenger_quantity": "string",
- "door_count": "string",
- "air_condition": "string",
- "transmission_type": "string",
- "iata_reference_number": "string",
- "pickup_coordinates": "string",
- "price_in_points": 0,
- "pickup_datetime": "string",
- "return_datetime": "string"
}
]Get car
| car_offer_id required | string |
| equips | Array of integers |
{- "item": {
- "car_offer_id": "string",
- "car_name": "string",
- "vendor_name": "string",
- "class_name": "string",
- "category_name": "string",
- "fuel_type": "string",
- "passenger_quantity": "string",
- "door_count": "string",
- "air_condition": "string",
- "transmission_type": "string",
- "iata_reference_number": "string",
- "pickup_coordinates": "string",
- "return_coordinates": "string",
- "pickup_address": {
- "address_line": "string",
- "city_name": "string",
- "country_name": "string",
- "postal_code": "string",
- "state_prov": "string",
- "street_number": "string"
}, - "pickup_datetime": "string",
- "return_address": {
- "address_line": "string",
- "city_name": "string",
- "country_name": "string",
- "postal_code": "string",
- "state_prov": "string",
- "street_number": "string"
}, - "return_datetime": "string",
- "insurance": {
- "currency": "string",
- "included_in_rate": 0,
- "local_currency": "string",
- "local_price": 0.1,
- "name": "string",
- "per_day_price": 0.1,
- "per_rental_price": 0.1,
- "quantity": 0,
- "rate": 0.1,
- "type": 0,
- "unit_name": "string"
}, - "payment_rule_description": "string",
- "cancellation_description": "string",
- "equips": {
- "name": "string",
- "type": "string",
- "unit_name": "string",
- "per_day_price": 0.1,
- "per_rental_price": 0.1,
- "currency": "string",
- "qantity": 0,
- "local_price": 0.1,
- "local_currency": 0.1,
- "rate": 0.1,
- "included_in_rate": 0
}, - "operational_pickup_time": [
- {
- "week_day": "Mon",
- "operate": true,
- "time": [
- {
- "start": "07:00",
- "end": "20:00"
}
]
}
], - "operational_return_time": [
- {
- "week_day": "Mon",
- "operate": true,
- "time": [
- {
- "start": "07:00",
- "end": "20:00"
}
]
}
], - "cancellation_coverages": [
- {
- "from": "string",
- "to": "string",
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "description": "string"
}
]
}, - "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "errors": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
], - "payment_summary": {
- "price_in_points": 0,
- "pay_on_booking_total_points": 0,
- "pay_on_pickup_total": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "pay_on_pickup_local_total": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "pay_on_pickup_items": [
- "string"
], - "pay_on_booking_items": [
- "string"
]
}
}Get list of locations and airports of city, available for car booking
| city_id required | integer <int64> |
[- {
- "code": "airport_MAD_1138",
- "name": "Madrid Barajas International Airport (MAD)",
- "is_airport": true
}
]| 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 |
{- "data": {
- "items": [
- {
- "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": [
- {
- "url": "string",
- "type": "string"
}
]
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}
}| carbon_offset_id required | integer <int64> Carbon offset id |
{- "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": [
- {
- "url": "string",
- "type": "string"
}
]
}Create Carbon offset order.
| 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. |
| offset_source_code required | string |
| points required | integer <int64> (points) |
{- "offset_source_code": "string",
- "points": 0
}{- "data": {
- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "carbon-offset",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "offset_source_code": "string",
- "offset_source_name": "string",
- "certificate_url": "string",
- "kg_co2": 0
}
}| carbon_offset_id required | integer <int64> Carbon offset id |
| points required | integer <int64> (points) |
{- "points": 0
}{- "data": {
- "kgCo2": 0.1,
- "amount": 0.1,
- "currency": "string"
}
}Get information for the cart for authenticated customer
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "cart": {
- "hot_deal_items": [
- {
- "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,
- "cart_item_price": {
- "price_in_points_with_tax": 0,
- "total_price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "total_price_in_points_full": 0,
- "total_delivery_price_in_points": 0
}, - "error_messages": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}
], - "regular_items": [
- {
- "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,
- "cart_item_price": {
- "price_in_points_with_tax": 0,
- "total_price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "total_price_in_points_full": 0,
- "total_delivery_price_in_points": 0
}, - "error_messages": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}
], - "hot_deal_items_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}, - "regular_items_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}, - "total_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}
}, - "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "disclaimer": "string",
- "errors": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Delete cart of authenticated user
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get quantities for the cart for authenticated customer
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": [
- {
- "product_id": 0,
- "quantity": 0,
- "price_in_points": 0,
- "delivery_charges": 0
}
]
}Use it for add/update item to the cart
| item_id required | integer <int64> |
| 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 required | integer <int32> |
{- "quantity": 0
}{- "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,
- "cart_item_price": {
- "price_in_points_with_tax": 0,
- "total_price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "total_price_in_points_full": 0,
- "total_delivery_price_in_points": 0
}, - "error_messages": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Remove specified item from the cart
| item_id required | integer <int64> |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "cart": {
- "hot_deal_items": [
- {
- "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,
- "cart_item_price": {
- "price_in_points_with_tax": 0,
- "total_price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "total_price_in_points_full": 0,
- "total_delivery_price_in_points": 0
}
}
], - "regular_items": [
- {
- "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,
- "cart_item_price": {
- "price_in_points_with_tax": 0,
- "total_price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "total_price_in_points_full": 0,
- "total_delivery_price_in_points": 0
}
}
], - "hot_deal_items_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}, - "regular_items_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}, - "total_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}
}, - "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "disclaimer": "string",
- "errors": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get cart of an item
| item_id required | integer <int64> |
| 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 |
{- "cart": {
- "hot_deal_items": [
- {
- "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,
- "cart_item_price": {
- "price_in_points_with_tax": 0,
- "total_price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "total_price_in_points_full": 0,
- "total_delivery_price_in_points": 0
}
}
], - "regular_items": [
- {
- "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,
- "cart_item_price": {
- "price_in_points_with_tax": 0,
- "total_price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "total_price_in_points_full": 0,
- "total_delivery_price_in_points": 0
}
}
], - "hot_deal_items_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}, - "regular_items_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}, - "total_summary": {
- "items_price_in_points": 0,
- "delivery_price_in_points": 0,
- "price_in_points": 0,
- "quantity": 0
}
}, - "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "disclaimer": "string",
- "errors": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get catalogue brands
| page | integer <int64> Page number |
| vouchers | integer Enum: 0 1 A boolean flag to filter brands based on voucher status.
|
| search_phrase | string Search phrase |
| country_id | integer country id |
| category_tags | Array of strings Category tags |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": {
- "items": {
- "id": 0,
- "name": "string",
- "code": "string",
- "image_url": "string"
}, - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}
}Get catalogue categories
| 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. - |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": {
- "items": {
- "id": 0,
- "name": "string",
- "tags": [
- "string"
], - "children": [
- { }
]
}
}
}Get catalogue items filtered by criteria
| 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" |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": {
- "items": [
- {
- "id": 0,
- "name": "string",
- "brand_name": "string",
- "category_id": 0,
- "category_tags": [
- "string"
], - "is_voucher": true,
- "x1_delivery": true,
- "electronic_delivery": true,
- "label": {
- "type": "sold_out",
- "value": "string"
}, - "hot_deal": true,
- "is_favorite": true,
- "type_code": "store",
- "group": "store",
- "catalogue_item_price": {
- "price_in_points": 0,
- "price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "delivery_price_in_points": 0
}, - "remaining_quantity_limit_for_user": 0
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}
}Get catalogue item
| item_id required | integer <int64> Product item id |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "id": 0,
- "name": "string",
- "brand_name": "string",
- "category_id": 0,
- "category_tags": [
- "string"
], - "is_voucher": true,
- "x1_delivery": true,
- "electronic_delivery": true,
- "label": {
- "type": "sold_out",
- "value": "string"
}, - "hot_deal": true,
- "is_favorite": true,
- "type_code": "store",
- "group": "store",
- "catalogue_item_price": {
- "price_in_points": 0,
- "price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "delivery_price_in_points": 0
}, - "remaining_quantity_limit_for_user": 0,
- "category_name": "string",
- "model": "string",
- "sub_model": "string",
- "description": "string",
- "calculated_quantity": 0
}Get all favorite items
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "items": [
- {
- "id": 0,
- "name": "string",
- "brand_name": "string",
- "category_id": 0,
- "category_tags": [
- "string"
], - "is_voucher": true,
- "x1_delivery": true,
- "electronic_delivery": true,
- "label": {
- "type": "sold_out",
- "value": "string"
}, - "hot_deal": true,
- "is_favorite": true,
- "type_code": "store",
- "group": "store",
- "catalogue_item_price": {
- "price_in_points": 0,
- "price_in_points_with_tax": 0,
- "price_in_points_full": 0,
- "delivery_price_in_points": 0
}, - "remaining_quantity_limit_for_user": 0
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}Delete from favorites
| item_id required | integer <int64> |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get a list of the eligible CBK cards that belong to the user, used for the cashback card selection.
[- {
- "masked_card_number": "536708XXXXXX2289",
- "account_number": "0007291115164672973",
- "first_digits": "536708",
- "last_digits": "2289"
}
]Create Digital value order.
| 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. |
| 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) |
{- "digital_value_product_id": 0,
- "destination_amount": 0,
- "destination_currency_code": "string",
- "mobile_number": "string",
- "account_number": "string"
}{- "data": {
- "id": 0,
- "order_code": "stringstringstringstringstringstring",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "digital-value",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "product_id": 0,
- "product_name": "string",
- "product_description": "string",
- "mobile_number": "string",
- "account_number": "string",
- "operator_name": "string",
- "operator_id": 0,
- "service_id": 0,
- "service_name": "string",
- "pin_usage": "string",
- "pin_code": "string"
}
}Get Digital value services list.
| search_phrase | string Name of service to search by |
| country_id | integer |
{- "data": [
- {
- "id": 1,
- "name": "Mobile",
- "sub_services": [
- {
- "id": 1,
- "name": "Airtime"
}
]
}
]
}Get Digital value service with filters.
| service_id required | integer |
| operator_id | integer |
{- "data": {
- "id": 1,
- "name": "Mobile",
- "sub_services": [
- {
- "id": 1,
- "name": "Airtime"
}
]
}
}Get Digital value operators list.
| page | integer <int64> Page number |
| per_page | integer <int64> Max records to return |
| country_id | integer |
| service_id | integer |
| subservice_id | integer |
{- "data": {
- "items": {
- "id": 0,
- "name": "string",
- "country_name": "string",
- "regions": [
- {
- "id": 0,
- "name": "string"
}
]
}, - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}
}Get Digital value promotions list that are currently going.
| page | integer <int64> Page number |
| operator_id | integer |
| operator_name | string |
| title | string |
| description | string |
| terms | string |
{- "data": {
- "items": {
- "id": 0,
- "operator_id": 0,
- "operator_name": "string",
- "title": "string",
- "description": "string",
- "terms": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}, - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}
}Get Digital value promotion.
| promotion_id required | integer |
{- "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.
| 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" |
{- "data": {
- "items": {
- "id": 0,
- "name": "string",
- "description": "string",
- "pin": { },
- "type": "string",
- "validity": { },
- "availability_zones": [ ],
- "price": {
- "unit": "string",
- "amount": 0,
- "points": 0,
- "unit_type": "string"
}, - "regions": [
- {
- "id": 0,
- "name": "string"
}
], - "required_fields": [
- "string"
], - "supports_statement_inquiry": true,
- "payment_modes": [
- "string"
]
}, - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}
}Get Digital value product.
| product_id required | integer |
{- "id": 0,
- "name": "string",
- "description": "string",
- "pin": { },
- "type": "string",
- "validity": { },
- "availability_zones": [ ],
- "price": {
- "unit": "string",
- "amount": 0,
- "points": 0,
- "unit_type": "string"
}, - "regions": [
- {
- "id": 0,
- "name": "string"
}
], - "required_fields": [
- "string"
], - "supports_statement_inquiry": true,
- "payment_modes": [
- "string"
]
}Get Digital value calculated points
| digital_value_product_id required | integer |
| destination_currency_code required | string |
| destination_amount required | number |
{- "data": {
- "destination_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "calculated_points": 0
}
}Get Digital value operators related to given mobile .
| mobile required | string User's mobile with country code starting with + |
{- "mobile": 201212345678
}{- "data": [
- {
- "id": 0,
- "name": "string",
- "country_name": "string",
- "regions": [
- {
- "id": 0,
- "name": "string"
}
]
}
]
}Get Digital value inquiry related to given product and account number.
| product_id required | integer Product ID |
| account_number required | string Account number |
{- "product_id": 1,
- "account_number": 123456789
}{- "data": [
- {
- "dates": {
- "due": "2019-08-24",
- "statement": "2019-08-24"
}, - "balance": {
- "unit_type": "string",
- "unit": "string",
- "amount": 0
}, - "reference": "string"
}
]
}Get collection items filtered by criteria
| 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 |
{- "name": "string",
- "items": [
- {
- "id": 0,
- "type": "offer",
- "rank": 0,
- "item": {
- "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"
}
}
]
}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.
| departure | string = 3 characters Example: departure=KBP IATA 3-letter code of departure airport. Required when |
| arrival | string = 3 characters Example: arrival=DEL IATA 3-letter code of arrival airport. Required when |
| departure-date | string^\d{2}-\d{2}-\d{4}$ Example: departure-date=25-04-2024 Date of the outbound flight in |
| arrival-date | string^\d{2}-\d{2}-\d{4}$ Example: arrival-date=02-05-2024 Date of the return flight in |
| 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 |
| 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 |
{- "items": [
- {
- "flight_code": "string",
- "price_in_points": "15000",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "is_internal": 0,
- "passengers_count": {
- "adults": 0,
- "children": 0,
- "infants": 0
}, - "outbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "inbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "flights": [
- {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false,
- "flight_index": 0,
- "type": "outbound",
- "departure": "DXB",
- "arrival": "RUH",
- "departure_datetime": "2026-08-04T17:00:00+04:00",
- "arrival_datetime": "2026-08-04T21:30:00+03:00",
- "stops": 1
}
], - "brand_fares": [
- {
- "brandIdentifier": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
- "brandName": "Economy Lite",
- "totalFare": {
- "amount": "120.50",
- "currency": "BHD",
- "version": 1
}, - "features": [
- "1 carry-on bag"
]
}
], - "cancellation_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "change_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "fare_rule_details": [ ],
- "transaction_search_id": "string",
- "is_brand_fare_available": true,
- "trip_type": "round_trip"
}
]
}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.
| flight_code required | string |
| brand_code | string or null Brand fare code to recheck price for a specific branded fare |
{- "data": {
- "flight_item": {
- "flight_code": "string",
- "price_in_points": "15000",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "is_internal": 0,
- "passengers_count": {
- "adults": 0,
- "children": 0,
- "infants": 0
}, - "outbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "inbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "flights": [
- {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false,
- "flight_index": 0,
- "type": "outbound",
- "departure": "DXB",
- "arrival": "RUH",
- "departure_datetime": "2026-08-04T17:00:00+04:00",
- "arrival_datetime": "2026-08-04T21:30:00+03:00",
- "stops": 1
}
], - "brand_fares": [
- {
- "brandIdentifier": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
- "brandName": "Economy Lite",
- "totalFare": {
- "amount": "120.50",
- "currency": "BHD",
- "version": 1
}, - "features": [
- "1 carry-on bag"
]
}
], - "cancellation_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "change_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "fare_rule_details": [ ],
- "transaction_search_id": "string",
- "is_brand_fare_available": true,
- "trip_type": "round_trip"
}, - "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "brand_fare": {
- "brand_code": "ECOCOMFORT",
- "brand_name": "Economy Comfort",
- "original_price": 450,
- "calculated_price": 450,
- "currency": "AED",
- "price_in_points": 0,
- "features": [
- {
- "description": "Carry-on bag",
- "status": "included",
- "details": null
}, - {
- "description": "Seat selection",
- "status": "unknown",
- "details": null
}
], - "features_differ_per_segment": false,
- "pax_details_differ_per_segment": false,
- "key_rules": [
- {
- "category": "cabin_baggage",
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}
], - "all_fare_rules": [
- {
- "category": "cabin_baggage",
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}
], - "baggage": {
- "cabin": {
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}, - "checked": {
- "description": "1 checked bag up to 23 kg",
- "status": "fee",
- "details": null
}
}, - "refund_policy": {
- "refundable": false,
- "description": "Non-refundable",
- "status": "not_included"
}, - "change_policy": { },
- "provider_descriptions": [
- "1 carry-on bag"
], - "adult_base_fare": 230,
- "adult_tax": 220,
- "child_base_fare": 0,
- "child_tax": 0,
- "infant_base_fare": 0,
- "infant_tax": 0,
- "total_base_fare": 230,
- "total_tax": 220,
- "total_pax": 1,
- "price_per_pax": [
- {
- "src_code": "DXB",
- "dest_code": "MCT",
- "adult_base_fare": 230,
- "adult_tax": 220,
- "child_base_fare": 0,
- "child_tax": 0,
- "infant_base_fare": 0,
- "infant_tax": 0
}
], - "cancel_policy": {
- "additional_fee": 0,
- "rules": [
- {
- "amount": 400,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "AED",
- "pax_type": "Adult"
}
]
}, - "change_penalty": {
- "additional_fee": 0,
- "rules": [
- {
- "amount": 400,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "AED",
- "pax_type": "Adult"
}
]
}, - "pax_details": [
- {
- "cabin_baggage": "7 kg",
- "bag_weight": "20",
- "pax_count": 1,
- "price_type": "B2B",
- "pax_type": 1
}
], - "brand_details": [
- {
- "origin": "DXB",
- "destination": "MCT",
- "name": "Economy Comfort",
- "features": [
- {
- "description": "Carry-on bag",
- "status": "included",
- "details": null
}, - {
- "description": "Lounge access",
- "status": "fee",
- "details": null
}
], - "cabin_baggage": {
- "value": 7,
- "unit": "kg"
}, - "checkout_baggage": {
- "value": 20,
- "unit": "kg"
}, - "pax_details": [
- {
- "cabin_baggage": "7 kg",
- "bag_weight": "20",
- "pax_count": 1,
- "price_type": "B2B",
- "pax_type": 1
}
]
}
]
}, - "errors": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}
}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.
| flight_code required | string |
{- "data": [
- {
- "brand_code": "ECOCOMFORT",
- "brand_name": "Economy Comfort",
- "original_price": 450,
- "calculated_price": 450,
- "currency": "AED",
- "price_in_points": 0,
- "features": [
- {
- "description": "Carry-on bag",
- "status": "included",
- "details": null
}, - {
- "description": "Seat selection",
- "status": "unknown",
- "details": null
}
], - "features_differ_per_segment": false,
- "pax_details_differ_per_segment": false,
- "key_rules": [
- {
- "category": "cabin_baggage",
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}
], - "all_fare_rules": [
- {
- "category": "cabin_baggage",
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}
], - "baggage": {
- "cabin": {
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}, - "checked": {
- "description": "1 checked bag up to 23 kg",
- "status": "fee",
- "details": null
}
}, - "refund_policy": {
- "refundable": false,
- "description": "Non-refundable",
- "status": "not_included"
}, - "change_policy": { },
- "provider_descriptions": [
- "1 carry-on bag"
], - "adult_base_fare": 230,
- "adult_tax": 220,
- "child_base_fare": 0,
- "child_tax": 0,
- "infant_base_fare": 0,
- "infant_tax": 0,
- "total_base_fare": 230,
- "total_tax": 220,
- "total_pax": 1,
- "price_per_pax": [
- {
- "src_code": "DXB",
- "dest_code": "MCT",
- "adult_base_fare": 230,
- "adult_tax": 220,
- "child_base_fare": 0,
- "child_tax": 0,
- "infant_base_fare": 0,
- "infant_tax": 0
}
], - "cancel_policy": {
- "additional_fee": 0,
- "rules": [
- {
- "amount": 400,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "AED",
- "pax_type": "Adult"
}
]
}, - "change_penalty": {
- "additional_fee": 0,
- "rules": [
- {
- "amount": 400,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "AED",
- "pax_type": "Adult"
}
]
}, - "pax_details": [
- {
- "cabin_baggage": "7 kg",
- "bag_weight": "20",
- "pax_count": 1,
- "price_type": "B2B",
- "pax_type": 1
}
], - "brand_details": [
- {
- "origin": "DXB",
- "destination": "MCT",
- "name": "Economy Comfort",
- "features": [
- {
- "description": "Carry-on bag",
- "status": "included",
- "details": null
}, - {
- "description": "Lounge access",
- "status": "fee",
- "details": null
}
], - "cabin_baggage": {
- "value": 7,
- "unit": "kg"
}, - "checkout_baggage": {
- "value": 20,
- "unit": "kg"
}, - "pax_details": [
- {
- "cabin_baggage": "7 kg",
- "bag_weight": "20",
- "pax_count": 1,
- "price_type": "B2B",
- "pax_type": 1
}
]
}
]
}
]
}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.
| flight_code required | string |
{- "data": {
- "meals": [
- {
- "origin": "DEL",
- "destination": "BOM",
- "flight_number": "105",
- "airline_code": "SG",
- "allowed": [
- "adult",
- "child"
], - "options": [
- {
- "trip": "outbound",
- "origin": "DEL",
- "destination": "BOM",
- "detail": "SCI_BAG_5KG",
- "name": "Additional 5KG Baggage",
- "key": "01",
- "ssr_code": "VGML",
- "unique_key": "0|DEL|BOM|01|1",
- "amount": 0,
- "currency": "AED",
- "currency_symbol": "AED",
- "points": 100
}
]
}
], - "baggage": [
- {
- "origin": "DEL",
- "destination": "BOM",
- "flight_number": "105",
- "airline_code": "SG",
- "allowed": [
- "adult",
- "child"
], - "options": [
- {
- "trip": "outbound",
- "origin": "DEL",
- "destination": "BOM",
- "detail": "SCI_BAG_5KG",
- "name": "Additional 5KG Baggage",
- "key": "01",
- "ssr_code": "VGML",
- "unique_key": "0|DEL|BOM|01|1",
- "amount": 0,
- "currency": "AED",
- "currency_symbol": "AED",
- "points": 100
}
]
}
], - "seats": [
- {
- "origin": "DEL",
- "destination": "BOM",
- "flight_number": "105",
- "airline_code": "SG",
- "allowed": [
- "adult",
- "child"
], - "rows": [
- {
- "row_number": 1,
- "trip": "outbound",
- "seats": [
- {
- "trip": "outbound",
- "row_number": 1,
- "origin": "DEL",
- "destination": "BOM",
- "is_available": true,
- "key": "00001",
- "seat_number": "1A",
- "unique_key": "0|0|0|DEL|BOM|00001|1A",
- "is_exit_row": false,
- "is_extra_leg_room": false,
- "is_aisle": false,
- "amount": 51,
- "currency": "AED",
- "currency_symbol": "AED",
- "points": 100
}
]
}
]
}
]
}
}Get airports for flights, grouped by city
| search-term required | string >= 2 characters search airport by name or IATA code |
[- {
- "city_name": "Seattle, United States",
- "airports": [
- {
- "airport_name": "Tacoma International Airport",
- "airport_code": "SEA"
}
]
}
]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.
[- {
- "name": "Qatar Airways",
- "code": "QR",
}
]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.
| 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 Passenger-wide rules enforced by the API:
|
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 |
{- "flight_code": "string",
- "brand_code": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
- "passengers": {
- "adults": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}, - "mobile_code": "+961",
- "mobile": "70757959"
}
], - "children": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}
}
], - "infants": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}
}
]
}, - "email": "user@example.com",
- "mobile_code": "+961",
- "mobile": "70757959",
- "partner_external_transaction_code": "string"
}{- "data": {
- "flight_item": {
- "flight_code": "string",
- "price_in_points": "15000",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "is_internal": 0,
- "passengers_count": {
- "adults": 0,
- "children": 0,
- "infants": 0
}, - "outbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "inbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "flights": [
- {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false,
- "flight_index": 0,
- "type": "outbound",
- "departure": "DXB",
- "arrival": "RUH",
- "departure_datetime": "2026-08-04T17:00:00+04:00",
- "arrival_datetime": "2026-08-04T21:30:00+03:00",
- "stops": 1
}
], - "brand_fares": [
- {
- "brandIdentifier": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
- "brandName": "Economy Lite",
- "totalFare": {
- "amount": "120.50",
- "currency": "BHD",
- "version": 1
}, - "features": [
- "1 carry-on bag"
]
}
], - "cancellation_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "change_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "fare_rule_details": [ ],
- "transaction_search_id": "string",
- "is_brand_fare_available": true,
- "trip_type": "round_trip"
}, - "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "brand_fare": {
- "brand_code": "ECOCOMFORT",
- "brand_name": "Economy Comfort",
- "original_price": 450,
- "calculated_price": 450,
- "currency": "AED",
- "price_in_points": 0,
- "features": [
- {
- "description": "Carry-on bag",
- "status": "included",
- "details": null
}, - {
- "description": "Seat selection",
- "status": "unknown",
- "details": null
}
], - "features_differ_per_segment": false,
- "pax_details_differ_per_segment": false,
- "key_rules": [
- {
- "category": "cabin_baggage",
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}
], - "all_fare_rules": [
- {
- "category": "cabin_baggage",
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}
], - "baggage": {
- "cabin": {
- "description": "1 carry-on bag up to 7 kg",
- "status": "included",
- "details": null
}, - "checked": {
- "description": "1 checked bag up to 23 kg",
- "status": "fee",
- "details": null
}
}, - "refund_policy": {
- "refundable": false,
- "description": "Non-refundable",
- "status": "not_included"
}, - "change_policy": { },
- "provider_descriptions": [
- "1 carry-on bag"
], - "adult_base_fare": 230,
- "adult_tax": 220,
- "child_base_fare": 0,
- "child_tax": 0,
- "infant_base_fare": 0,
- "infant_tax": 0,
- "total_base_fare": 230,
- "total_tax": 220,
- "total_pax": 1,
- "price_per_pax": [
- {
- "src_code": "DXB",
- "dest_code": "MCT",
- "adult_base_fare": 230,
- "adult_tax": 220,
- "child_base_fare": 0,
- "child_tax": 0,
- "infant_base_fare": 0,
- "infant_tax": 0
}
], - "cancel_policy": {
- "additional_fee": 0,
- "rules": [
- {
- "amount": 400,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "AED",
- "pax_type": "Adult"
}
]
}, - "change_penalty": {
- "additional_fee": 0,
- "rules": [
- {
- "amount": 400,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "AED",
- "pax_type": "Adult"
}
]
}, - "pax_details": [
- {
- "cabin_baggage": "7 kg",
- "bag_weight": "20",
- "pax_count": 1,
- "price_type": "B2B",
- "pax_type": 1
}
], - "brand_details": [
- {
- "origin": "DXB",
- "destination": "MCT",
- "name": "Economy Comfort",
- "features": [
- {
- "description": "Carry-on bag",
- "status": "included",
- "details": null
}, - {
- "description": "Lounge access",
- "status": "fee",
- "details": null
}
], - "cabin_baggage": {
- "value": 7,
- "unit": "kg"
}, - "checkout_baggage": {
- "value": 20,
- "unit": "kg"
}, - "pax_details": [
- {
- "cabin_baggage": "7 kg",
- "bag_weight": "20",
- "pax_count": 1,
- "price_type": "B2B",
- "pax_type": 1
}
]
}
]
}, - "errors": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
], - "passengers": null,
- "ancillaries": {
- "summary": {
- "original_price": {
- "amount": "100.00",
- "currency": "AED"
}, - "calculated_price": {
- "amount": "110.00",
- "currency": "AED"
}, - "total_points": 500,
- "original_currency": "AED",
- "seat_price": {
- "amount": "50.00",
- "currency": "AED"
}, - "meal_price": {
- "amount": "20.00",
- "currency": "AED"
}, - "baggage_price": {
- "amount": "30.00",
- "currency": "AED"
}, - "seat_points": 250,
- "meal_points": 100,
- "baggage_points": 150
}, - "by_passengers": {
- "adults": [
- {
- "meals": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
], - "baggage": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
], - "seats": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
]
}
], - "children": [
- {
- "meals": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
], - "baggage": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
], - "seats": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
]
}
], - "infants": [
- {
- "meals": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
], - "baggage": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
], - "seats": [
- {
- "code": "0|DEL|BOM|01|1",
- "name": "Hot meal - chicken",
- "price": {
- "amount": "20.00",
- "currency": "AED"
}, - "points": 100
}
]
}
]
}
}, - "ancillary_summary": {
- "original_price": {
- "amount": "100.00",
- "currency": "AED"
}, - "calculated_price": {
- "amount": "110.00",
- "currency": "AED"
}, - "total_points": 500,
- "original_currency": "AED",
- "seat_price": {
- "amount": "50.00",
- "currency": "AED"
}, - "meal_price": {
- "amount": "20.00",
- "currency": "AED"
}, - "baggage_price": {
- "amount": "30.00",
- "currency": "AED"
}, - "seat_points": 250,
- "meal_points": 100,
- "baggage_points": 150
}
}
}Sometimes you may need to get flow by access token
| X-Flow-Token | string |
{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Creates new flow with access token which can be used to go over flow's steps
| 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 |
{- "identifier": "string",
- "flow_code": "auth"
}{- "flow_token": "7364598720736459872073645987207364598720",
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Create authentication flow
| identifier | string Any allowed user identifier. Not required if request authenticated with bearer token. |
{- "identifier": "string"
}{- "flow_token": "7364598720736459872073645987207364598720",
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Create draft user and issue flow token for it
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
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 |
string | |
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 |
{- "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": [
- {
- "setting": "promotional_emails",
- "value": 0
}
]
}{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Complete flow by registering draft user that was assigned to flow
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "telephone_code": "string",
- "mobile": 70757959,
- "reference": "string"
}Make changes in draft user associated with flow. Completes "update_draft_user_mobile" flow step type
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| telephone_code | string (telephoneCode) Country calling code, see list |
| mobile required | string (mobile) User's mobile without country code |
{- "telephone_code": "string",
- "mobile": 70757959
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Set password for a draft user as a flow step. Completes "create_draft_user_password" flow step type
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| password | string <password> Password of user |
| confirm_password | string <password> Password of user (should be same as password) |
{- "password": "pa$$word",
- "confirm_password": "pa$$word"
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Make changes in user associated with flow. Completes "updateMobile" flow step type
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| telephone_code | string (telephoneCode) Country calling code, see list |
| mobile required | string (mobile) User's mobile without country code |
{- "telephone_code": "string",
- "mobile": 70757959
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Create password reset flow and issue flow token for it
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| type required | string |
| user_code required | string |
{- "type": "user_code",
- "user_code": "string"
}{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "password_reset",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Complete password reset flow by setting up a new password
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| password | string <password> Password of user |
| confirm_password | string <password> Password of user (should be same as password) |
{- "password": "pa$$word",
- "confirm_password": "pa$$word"
}{- "user_access_token": "string"
}Create password update flow and issue flow token for it
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| old_password required | string |
| password required | string |
| password_confirmation required | string |
{- "old_password": "string",
- "password": "string",
- "password_confirmation": "string"
}{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "password_update",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Complete password update flow by setting up a new password
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Create profile update flow and issue flow token for it
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
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 |
string | |
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 |
{- "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": [
- {
- "setting": "promotional_emails",
- "value": 0
}
]
}{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "profile_update",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Complete profile update flow py updating user data
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "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",
- "company_name": "string",
- "enrollment_date": "2019-05-17 01:00:00",
- "settings": [
- {
- "setting": "promotional_emails",
- "value": 1
}
]
}If active step in flow response has attribute "optional", this endpoint can be used to instantly mark this step as passed
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}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
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}Verify password reset token. Second endpoint for "verify_password_reset_token" flow step type
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| password_reset_token required | string Password reset token took from email |
{- "password_reset_token": "string"
}{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}Create flow of type change_identifier for authenticated user and issue flow token for it
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "password_reset",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Create activation flow
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| identifier required | string Identifier configured according to partner (mobile, email, user code or identification token taken from activation email) |
{- "identifier": "string"
}{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Create order confirmation flow by order id
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Order-Access-Token | string JWT token that can be used to identify order instead of bearer auth |
| order_id required | integer Order ID |
{- "order_id": 0
}{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "order_confirmation",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Complete order confirmation flow
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| X-Order-Access-Token | string JWT token that can be used to identify order instead of bearer auth |
{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}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
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
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 |
string | |
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 |
{- "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": [
- {
- "setting": "promotional_emails",
- "value": 0
}
]
}{- "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",
- "company_name": "string",
- "enrollment_date": "2019-05-17 01:00:00",
- "settings": [
- {
- "setting": "promotional_emails",
- "value": 1
}
]
}Get a list of credit cards that belong to the user
[- {
- "card_hash": "string",
- "masked_card_number": "string",
- "first_digits": "string",
- "last_digits": "string",
- "product_name": "string",
- "status": "Active"
}
]{- "data": {
- "game_id": 0,
- "game_time": 0,
- "difficulty": "string",
- "can_take_game": true,
- "slot_game_percentage": 0.1,
- "time_to_next_take": 0,
- "ads": [
- {
- "title": "string",
- "description": "string",
}
]
}
}Post puzzle game result
| is_solved required | boolean Is puzzle solved |
{- "is_solved": true
}{- "data": {
- "game_id": 0,
- "points_won": 0,
- "is_rewarded": true,
- "slots": [ ]
}, - "status": 200,
- "code": 200
}Get list of available hotels
| 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 ] |
[- {
- "code": "string",
- "name": "string",
- "category_code": "string",
- "category_name": "string",
- "destination_code": "string",
- "destination_name": "string",
- "zone_code": "string",
- "zone_name": "string",
- "latitude": "string",
- "longitude": "string",
- "min_rate_in_points": "string",
- "max_rate_in_points": "string",
- "address": "string",
- "stars": "string",
- "accommodation_type": "string",
- "image": {
- "thumbnail": "string",
- "original": "string"
}, - "search_code": "string"
}
]Get list of available hotel detail
| search_code required | string |
[- {
- "code": "string",
- "name": "string",
- "check_in": "2019-08-24",
- "check_out": "2019-08-24",
- "hotel_information": "string",
- "category_code": "string",
- "category_name": "string",
- "destination_code": "string",
- "destination_name": "string",
- "zone_code": "string",
- "zone_name": "string",
- "latitude": "string",
- "longitude": "string",
- "address": "string",
- "stars": "string",
- "accommodation_type": "string",
- "facilities": [
- "string"
], - "rooms": [
- {
- "code": "string",
- "name": "string",
- "rates": [
- {
- "rate_key": "string",
- "rate_class": "string",
- "net_in_points": "string",
- "selling_rate_in_points": "string",
- "hotel_mandatory": true,
- "allotment": "string",
- "board_code": "string",
- "board_name": "string",
- "rooms": 0,
- "adults": 0,
- "children": 0,
- "cancellation_policies": [
- {
- "amount_in_points": 0,
- "from": "string"
}
]
}
]
}
], - "images": [
- {
- "thumbnail": "string",
- "original": "string"
}
]
}
]Get Room Offer
| offer_code required | string |
[- {
- "room_offer": {
- "hotel_info": {
- "code": "string",
- "name": "string",
- "hotel_information": "string",
- "category_code": "string",
- "category_name": "string",
- "destination_code": "string",
- "destination_name": "string",
- "zone_code": "string",
- "zone_name": "string",
- "latitude": "string",
- "longitude": "string",
- "address": "string",
- "stars": "string",
- "accommodation_type": "string",
- "facilities": [
- "string"
], - "images": [
- {
- "thumbnail": "string",
- "original": "string"
}
]
}, - "room_item": {
- "code": "string",
- "name": "string",
- "rate": {
- "rate_key": "string",
- "rate_class": "string",
- "net_in_points": "string",
- "selling_rate_in_points": "string",
- "hotel_mandatory": true,
- "allotment": "string",
- "board_code": "string",
- "board_name": "string",
- "rooms": 0,
- "adults": 0,
- "children": 0,
- "check_in": "string",
- "check_out": "string",
- "rate_comments": "string",
- "cancellation_policy": {
- "amount_in_points": 0,
- "from": "string"
}, - "cancellation_policies": [
- {
- "amount_in_points": 0,
- "from": "2023-10-03T11:40:55+03:00"
}
]
}
}
}, - "invoice": {
- "balance": "string",
- "price_in_points": "string",
- "pay_in_cash": "string",
- "pay_in_cash_usd": "string",
- "invoice_cash_amount": {
- "network_amount": {
- "amount": "string",
- "currency": "string"
}, - "payment_gateway_amount": {
- "amount": "string",
- "currency": "string"
}
}, - "currency_id": "string",
- "currency_code": "string",
- "pay_in_points": "string",
- "points_in_cash": "string"
}, - "errors": [
- {
- "status": 0,
- "code": 0,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}
]Get list of hotels
| search_phrase | string |
| hotel_country_code | string |
| destination_code | string |
[- {
- "code": "string",
- "name": "string",
- "country_code": "string",
- "destination_code": "string",
- "category_code": "string",
- "stars": "string",
- "address": "string",
- "images": [
- {
- "thumbnail": "string",
- "original": "string"
}
]
}
]Get push notifications of authenticated user
| page | integer <int64> Page number |
| per_page | integer <int64> Max records to return |
[- {
- "id": 0,
- "push_time": "2019-08-24T14:15:22Z",
- "media_id": 0,
- "message": "string",
- "activity": "string",
- "partner_id": 0,
- "is_read": true
}
]| 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 |
| transaction_status | integer Enum: 0 1 SUCCESS - 1, FAILED - 0 |
| transaction_rejection_message | string |
| transaction_rejection_error_code | string |
{- "order_id": "1-3fa85f64-5717-4562-b3fc-2c963f66afa6-bonus",
- "transaction_status": 0,
- "transaction_rejection_message": "string",
- "transaction_rejection_error_code": "string"
}{- "success": true
}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.
| X-Webhook-Signature required | string Lowercase hex HMAC-SHA256 of the raw request body. The key is the partner's webhook secret without its |
| X-Webhook-Timestamp required | string When the delivery was sent, as a unix epoch or an ISO-8601 instant such as |
| 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. |
| event_id | string Identifies the event. |
| event_type required | string Enum: "transaction.earn.success" "transaction.earn.failed" "webhook.test"
|
| 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 |
{- "event_id": "string",
- "event_type": "transaction.earn.success",
- "timestamp": "2026-08-27T14:04:06Z",
- "data": {
- "id": "string",
- "type": "string",
- "status": "pending",
- "amount": 0,
- "currency": "string",
- "buyer_amount": 0,
- "idempotency_key": "1-bae57e0a-be44-4e9e-8d69-81919cc93ac0",
- "end_user_identifier": "string",
- "created_at": "string",
- "completed_at": "string",
- "metadata": { }
}
}{- "success": true
}| 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 |
{- "offers": [
- {
- "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"
}
]
}| offer_id required | string |
| show_expired | boolean Example: show_expired=1 Show the offer even if it has expired |
{- "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"
}Create order confirmation flow by order id
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Order-Access-Token | string JWT token that can be used to identify order instead of bearer auth |
| order_id required | integer Order ID |
{- "order_id": 0
}{- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "order_confirmation",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}Complete order confirmation flow
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| X-Order-Access-Token | string JWT token that can be used to identify order instead of bearer auth |
{- "errors": [
- {
- "status": 0,
- "code": 640,
- "title": "string",
- "detail": "string",
- "meta": {
- "flow": {
- "flow_access_token": "string",
- "flow": {
- "type_code": "auth",
- "passed_steps": [
- {
- "type_code": "otp",
- "passed": 0,
- "optional": 0,
- "allow_resend_in_sec": 0,
- "otp_token_expired_in_sec": 0,
- "otp_length": 0,
- "otp_template": "login",
- "transport_types": [
- "SMS"
]
}
]
}
}
}
}
]
}An order of one know type can be returned
| order_id required | integer <int64> Order id |
| X-Order-Access-Token | string JWT token that can be used to identify order instead of bearer auth |
{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "item",
- "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "items": [
- {
- "id": 0,
- "code": "9c6aa9b0-702c-47fc-a9a8-7b2e8dffa9be",
- "name": "string",
- "quantity": 0,
- "type_id": 0,
- "type_code": "store",
- "group": "store",
}
]
}Confirm order will start order processing and capture cash and points. The order processing is synchronously or synchronously, configured individually.
| order_id required | integer <int64> Order id |
| flow_token | string |
{- "flow_token": "string"
}{- "errors": [
- {
- "status": 200,
- "code": 404,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get cash payment page to redirect payment page
| order_id required | integer <int64> Order id |
| 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) |
{- "payment_page": "string",
- "payment_page_url": "string",
- "payment_page_method": "get",
- "payment_page_params": [
- "string"
]
}Confirm cybersource payment
| order_id required | integer <int64> Order id |
| jwt | string |
{- "jwt": "string"
}{- "errors": [
- {
- "status": 200,
- "code": 404,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Retrieve order status
| order_id required | integer <int64> Order id |
| X-Order-Access-Token | string JWT token that can be used to identify order instead of bearer auth |
{- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}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.
| 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 |
{- "items": [
- {
- "order_id": 321,
- "order_type": "cashback",
- "order_status": "approved",
- "date": "2026-01-02T03:04:05.000Z",
- "timezone": "UTC",
- "cashback": {
- "amount": {
- "amount": "10.001",
- "currency": "OMR"
}, - "masked_card": "555555xxxxxx1234"
}, - "rejection_reason": null
}, - {
- "order_id": 322,
- "order_type": "cashback",
- "order_status": "rejected",
- "date": "2026-01-02T03:05:05.000Z",
- "timezone": "UTC",
- "cashback": {
- "amount": {
- "amount": "10.999",
- "currency": "OMR"
}, - "masked_card": "555555xxxxxx1234"
}, - "rejection_reason": {
- "message": "CARD BLOCKED",
- "error_code": 0
}
}
], - "paginator": {
- "current_page": 1,
- "last_page": 1,
- "per_page": 20,
- "total": 2
}
}List of all order vouchers
| order_id required | integer <int64> Order id |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
[- {
- "id": 0,
- "code": "9c6aa9b0-702c-47fc-a9a8-7b2e8dffa9be",
- "name": "string",
- "quantity": 0,
- "type_id": 0,
- "type_code": "store",
- "group": "voucher",
- "vouchers": [
- {
- "secure_code": "string",
- "pin_or_serial_number": "string",
- "expiration_date": "2030-11-23",
- "username": "string",
- "code": "string",
}
]
}
]List of all order item's vouchers
| order_id required | integer <int64> Order id |
| item_id required | integer <int64> Id of product item (product_partner_redemption_id) |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "id": 0,
- "code": "9c6aa9b0-702c-47fc-a9a8-7b2e8dffa9be",
- "name": "string",
- "quantity": 0,
- "type_id": 0,
- "type_code": "blu",
- "group": "voucher",
- "vouchers": [
- {
- "secure_code": "string",
- "pin_or_serial_number": "string",
- "expiration_date": "2030-11-23",
- "username": "string",
- "code": "string",
}
]
}List of all order promocodes
| order_id required | integer <int64> Order id |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": [
- {
- "id": 0,
- "name": "string",
- "quantity": 0,
- "type_id": 0,
- "type_code": "promo-code",
- "group": "promo-code",
- "promo_code": "string"
}
]
}Item's promocode
| order_id required | integer <int64> Order id |
| item_id required | integer <int64> Id of product item (product_partner_redemption_id) |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": {
- "id": 0,
- "name": "string",
- "quantity": 0,
- "type_id": 0,
- "type_code": "promo-code",
- "group": "promo-code",
- "promo_code": "string"
}
}Place an order for a cart
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
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> |
{- "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
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "item",
- "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "items": [
- {
- "id": 0,
- "code": "9c6aa9b0-702c-47fc-a9a8-7b2e8dffa9be",
- "name": "string",
- "quantity": 0,
- "type_id": 0,
- "type_code": "store",
- "group": "store",
}
]
}Place an order for an Item
| item_id required | integer <int64> |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| 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 |
{- "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
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "item",
- "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "items": [
- {
- "id": 0,
- "code": "9c6aa9b0-702c-47fc-a9a8-7b2e8dffa9be",
- "name": "string",
- "quantity": 0,
- "type_id": 0,
- "type_code": "store",
- "group": "store",
}
]
}| 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”…. |
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 |
{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "hotel",
- "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "room_offer": {
- "hotel_info": {
- "code": 0,
- "name": "string",
- "category_code": "string",
- "category_name": "string",
- "destination_code": "string",
- "destination_name": "string",
- "zone_code": 0,
- "zone_name": "string",
- "latitude": 0,
- "longitude": 0,
- "address": "string",
- "accommodation_type_code": "string"
}, - "room_item": {
- "code": "string",
- "name": "string",
- "rate": {
- "rate_key": "string",
- "rate_class": "string",
- "original_price_in_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "calculated_price_in_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "selling_rate": {
- "points": 0
}, - "hotel_mandatory": true,
- "payment_type": "string",
- "packaging": true,
- "board_code": "string",
- "board_name": "string",
- "rooms": 0,
- "adults": 0,
- "children": 0,
- "checkIn": "string",
- "checkOut": "string",
- "cancellation_policies": {
- "amount_in_points": 0,
- "from": "string"
}
}
}
}, - "hotel_reservation": {
- "reference": "string",
- "client_reference": "string",
- "creation_date": "string",
- "status": "string",
- "modification_policies": {
- "cancellation": true,
- "modification": true
}, - "remark": "string",
- "invoice_company": {
- "code": "string",
- "company": "string",
- "registrationNumber": "string"
}, - "original_price_in_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}| 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 Passenger-wide rules enforced by the API:
|
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. |
{- "flight_code": "string",
- "brand_code": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
- "passengers": {
- "adults": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}, - "mobile_code": "+961",
- "mobile": "70757959"
}
], - "children": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}
}
], - "infants": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}
}
]
}, - "email": "user@example.com",
- "mobile_code": "+961",
- "mobile": "70757959",
- "partner_external_transaction_code": "string",
- "pay_in_points": 0,
- "pay_in_cash": 0
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "flight",
- "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "passengers": {
- "adults": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}, - "mobile_code": "+961",
- "mobile": "70757959"
}
], - "children": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}
}
], - "infants": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "nationality": "st",
- "city": "string",
- "passport_number": "string",
- "passport_expiry_date": "2019-08-24",
- "passport_issue_date": "2019-08-24",
- "birth_date": "2019-08-24",
- "baggage": {
- "all": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "outbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}, - "inbound": {
- "pieces": 0,
- "weight": 0,
- "is_online_checkin": 0,
- "is_priority": 0
}
}, - "meal_codes": [
- "0|DEL|BOM|01|1"
], - "baggage_codes": [
- "0|DEL|BOM|02|1"
], - "seat_codes": [
- "0|0|0|DEL|BOM|00001|1A"
], - "frequent_flyer_number": "FF123456789",
- "frequent_flyer_number_airline": "AI",
- "ancillaries": {
- "meals": [
- "5|KWI|RUH|93|1"
], - "baggage": [
- "0|DEL|BOM|02|1"
], - "seats": [
- "0|0|0|DEL|BOM|00001|1A"
]
}
}
]
}, - "flight_item": {
- "flight_code": "string",
- "price_in_points": "15000",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "is_internal": 0,
- "passengers_count": {
- "adults": 0,
- "children": 0,
- "infants": 0
}, - "outbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "inbound": {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false
}, - "flights": [
- {
- "travel_time": "5h10m",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "carriers": [
- "LH"
], - "segments": [
- {
- "travel_time": "5h10m",
- "departure": "MAD",
- "departure_airport_name": "Barajas Airport, Madrid (MAD)",
- "arrival_airport_name": "string",
- "arrival": "str",
- "departure_datetime": "2017-07-21T17:32:28Z",
- "arrival_datetime": "2017-07-21T19:32:28Z",
- "cabin_class": "Economy",
- "carrier": "st",
- "carrier_name": "Etihad Airways",
- "baggage": "25 kg",
- "cabin_baggage": "7 kg",
- "fare_type": "string",
- "flight_number": "123",
- "operating_airline": "Lufthansa",
- "available_seats": 9,
- "is_next_day_arrival": true,
- "layover_city": "Abu Dhabi",
- "layover_duration": "06h 40m",
- "features": [
- {
- "description": "7 kg cabin baggage",
- "status": "included"
}
]
}
], - "departure_country": "Spain",
- "arrival_country": "string",
- "is_webfare": 0,
- "cancellation_penalty": "string",
- "available_seats": 9,
- "is_refundable": false,
- "flight_index": 0,
- "type": "outbound",
- "departure": "DXB",
- "arrival": "RUH",
- "departure_datetime": "2026-08-04T17:00:00+04:00",
- "arrival_datetime": "2026-08-04T21:30:00+03:00",
- "stops": 1
}
], - "brand_fares": [
- {
- "brandIdentifier": "atlasRUHDXB2026-04-29_08502026-04-29_1145F3F3505fly_Economy",
- "brandName": "Economy Lite",
- "totalFare": {
- "amount": "120.50",
- "currency": "BHD",
- "version": 1
}, - "features": [
- "1 carry-on bag"
]
}
], - "cancellation_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "change_penalty": [
- {
- "amount": 50,
- "applicable": "1440",
- "applicable_label": "Within 24 hours before departure",
- "currency": "BHD",
- "flag": true,
- "pax_type": "ADT"
}
], - "fare_rule_details": [ ],
- "transaction_search_id": "string",
- "is_brand_fare_available": true,
- "trip_type": "round_trip"
}, - "flight_reservation": {
- "flight_type": "webfare",
- "record_locator": "string"
}, - "ancillary_summary": {
- "original_price": {
- "amount": "100.00",
- "currency": "AED"
}, - "calculated_price": {
- "amount": "110.00",
- "currency": "AED"
}, - "total_points": 500,
- "original_currency": "AED",
- "seat_price": {
- "amount": "50.00",
- "currency": "AED"
}, - "meal_price": {
- "amount": "20.00",
- "currency": "AED"
}, - "baggage_price": {
- "amount": "30.00",
- "currency": "AED"
}, - "seat_points": 250,
- "meal_points": 100,
- "baggage_points": 150
}
}| 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 |
{- "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": [
- "string"
], - "pay_in_points": 0.1,
- "pay_in_cash": 0,
- "partner_external_transaction_code": "string"
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "car",
- "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "car_item": {
- "car_offer_id": "string",
- "car_name": "string",
- "vendor_name": "string",
- "class_name": "string",
- "category_name": "string",
- "fuel_type": "string",
- "passenger_quantity": "string",
- "door_count": "string",
- "air_condition": "string",
- "transmission_type": "string",
- "iata_reference_number": "string",
- "pickup_coordinates": "string",
- "return_coordinates": "string",
- "pickup_address": {
- "address_line": "string",
- "city_name": "string",
- "country_name": "string",
- "postal_code": "string",
- "state_prov": "string",
- "street_number": "string"
}, - "pickup_datetime": "string",
- "return_address": {
- "address_line": "string",
- "city_name": "string",
- "country_name": "string",
- "postal_code": "string",
- "state_prov": "string",
- "street_number": "string"
}, - "return_datetime": "string",
- "insurance": {
- "currency": "string",
- "included_in_rate": 0,
- "local_currency": "string",
- "local_price": 0.1,
- "name": "string",
- "per_day_price": 0.1,
- "per_rental_price": 0.1,
- "quantity": 0,
- "rate": 0.1,
- "type": 0,
- "unit_name": "string"
}, - "payment_rule_description": "string",
- "cancellation_description": "string",
- "equips": {
- "name": "string",
- "type": "string",
- "unit_name": "string",
- "per_day_price": 0.1,
- "per_rental_price": 0.1,
- "currency": "string",
- "qantity": 0,
- "local_price": 0.1,
- "local_currency": 0.1,
- "rate": 0.1,
- "included_in_rate": 0
}, - "operational_pickup_time": [
- {
- "week_day": "Mon",
- "operate": true,
- "time": [
- {
- "start": "07:00",
- "end": "20:00"
}
]
}
], - "operational_return_time": [
- {
- "week_day": "Mon",
- "operate": true,
- "time": [
- {
- "start": "07:00",
- "end": "20:00"
}
]
}
], - "cancellation_coverages": [
- {
- "from": "string",
- "to": "string",
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "description": "string"
}
]
}, - "car_reservation": {
- "reservation_reference_number": "string",
- "supplier_reference_number": "string",
- "partner_reference_number": "string",
- "status": "string"
}, - "order_input": {
- "title": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "gender": "string",
- "birth_date": "string",
- "mobile_number": "string"
}, - "payment_summary": {
- "price_in_points": 0,
- "pay_on_booking_total_points": 0,
- "pay_on_pickup_total": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "pay_on_pickup_local_total": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "pay_on_pickup_items": [
- "string"
], - "pay_on_booking_items": [
- "string"
]
}
}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.
{- "data": [
- {
- "card_id": "pci-example-card",
- "first_digits": "514533",
- "last_digits": "0869",
- "description": "MASTERCARD PLATINUM",
- "type": "CREDIT",
- "relationship_type": "PRIMARY",
- "currency": "OMR",
- "expiry_date": "2030-02"
}
]
}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.
| 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: |
{- "points": 560,
- "first_digits": 123456,
- "last_digits": 1234
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "cashback"
}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.
| 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 |
| 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 |
{- "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"
}{- "errors": [
- {
- "status": 200,
- "code": 383,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Convert points to affiliate program balance (i.e. Shukran Rewards / Gulf Air)
| 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 |
string Can be required for some affiliates |
{- "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"
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "affiliate",
- "invoice": {
- "price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "in_network_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_payment_gateway_currency": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "in_usd": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}, - "affiliate_code": "FUR",
- "affiliate_type": {
- "value": 1,
- "description": "Points Conversion"
}, - "account_number": "string",
- "transfer_points": 0,
- "deduct_points": 0
}Create Carbon offset order.
| 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. |
| offset_source_code required | string |
| points required | integer <int64> (points) |
{- "offset_source_code": "string",
- "points": 0
}{- "data": {
- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "carbon-offset",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "offset_source_code": "string",
- "offset_source_name": "string",
- "certificate_url": "string",
- "kg_co2": 0
}
}Create Digital value order.
| 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. |
| 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) |
{- "digital_value_product_id": 0,
- "destination_amount": 0,
- "destination_currency_code": "string",
- "mobile_number": "string",
- "account_number": "string"
}{- "data": {
- "id": 0,
- "order_code": "stringstringstringstringstringstring",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "digital-value",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "product_id": 0,
- "product_name": "string",
- "product_description": "string",
- "mobile_number": "string",
- "account_number": "string",
- "operator_name": "string",
- "operator_id": 0,
- "service_id": 0,
- "service_name": "string",
- "pin_usage": "string",
- "pin_code": "string"
}
}Create VOP order
| approval_code required | string (approvalCode) Approval code from SMS |
| points | integer <int64> (itemPriceInPoints) when missing, take max offer billing amount in points |
{- "approval_code": "string",
- "points": 0
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "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
| 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. |
| 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 |
{- "token": null,
- "otp": "string",
- "partner_code": "string",
- "amount": 37.89,
- "currency_code": "USD, EUR",
- "merchant_store_code": "string",
- "merchant_order_code": "string",
- "notes": "string"
}{- "order_code": "stringstringstringstringstringstring"
}Create adhoc order. Directly reduce user balance with certain amount of points
| 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. |
| 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 |
{- "reference": "string",
- "points": 0,
- "category": "string",
- "notes": "string",
- "country_code": "string",
- "store_code": "string",
- "pos_code": "string"
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "adhoc",
- "points": 0,
- "notes": "string"
}Create Pay with Points order. Reduce user balance with certain amount of points by his card number.
| 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 |
| 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 |
{- "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"
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "pay-with-points",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "card_last_four": "stri",
- "transaction_timestamp": "yyyy-mm-dd hh:mm:ss (2025-12-27 19:45:23)",
- "merchant_name": "string"
}Calculate cash and point prices based on point prices
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| points required | Array of integers |
{- "points": [
- 0
]
}[- {
- "original_price_in_points": 0,
- "pay_in_points": 0,
- "pay_in_cash": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
][- {
- "id": 0,
- "name": "string",
- "longitude": 0.1,
- "latitude": 0.1,
- "display_online": true,
- "allow_booking": true,
- "beacon_id": "string",
- "beacon_name": "string",
- "beacon_major": true,
- "beacon_minor": true,
- "opening_hours": "string",
- "partner_name": "string"
}
][- {
- "id": 0,
- "name": "string",
- "telephone_code": "string",
- "short_code": "str",
- "alpha2_code": "st",
- "alpha3_code": "str",
- "iso_code": "str",
- "postcode_regex": "string"
}
]Get list of translations for this partner
| lang required | string <= 2 characters Language ID |
| date | integer <int64> Check if modified since this getFormattedDateTime |
{- "data": {
- "last_modified_date": "1627473446",
- "items": {
- "lbl-welcome-message": "Welcome to application!"
}
}
}Get list of available affiliate programs on the platform
| 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 |
{- "data": [
- {
- "program": {
- "website": "string",
- "email": "string",
- "code": "string",
- "provider_code": "string",
- "name": "string",
- "name_local_lang": "string",
- "image": "example.com/example.png"
}, - "config": {
- "partner_id": 0,
- "status": "string",
- "description_local_lang": "string",
- "description": "string",
- "name": "string",
- "currency_id": 0,
- "currency_code": "string",
- "points_value_rate": 0,
- "minimum_points": 0,
- "maximum_points": 0,
- "points_values_options_type": "string",
- "range_start": 0,
- "range_end": 0,
- "range_multiple_of": 0,
- "predefined_points_values": [ ],
- "should_capture_name": 0,
- "membership_number_required": true,
- "membership_number_type": "string",
- "membership_number_length": 0,
- "membership_number_regex": "/^[\\w-]*$/",
- "membership_placeholder": "123-abc",
- "membership_specification": "3 letters with 3 characters",
- "is_first_last_name_required": true,
- "is_mobile_number_required": true,
- "is_email_required": true,
- "imageId": "string",
- "is_terms_conditions_required": true,
- "terms_and_conditions_url": "string",
- "to_receive_label": "string",
- "currency_program_label": "Skywards Miles"
}
}
]
}Get details of available affiliate program on the partner
| program_id required | integer |
{- "data": {
- "program": {
- "website": "string",
- "email": "string",
- "code": "string",
- "provider_code": "string",
- "name": "string",
- "name_local_lang": "string",
- "image": "example.com/example.png"
}, - "config": {
- "partner_id": 0,
- "status": "string",
- "description_local_lang": "string",
- "description": "string",
- "name": "string",
- "currency_id": 0,
- "currency_code": "string",
- "points_value_rate": 0,
- "minimum_points": 0,
- "maximum_points": 0,
- "points_values_options_type": "string",
- "range_start": 0,
- "range_end": 0,
- "range_multiple_of": 0,
- "predefined_points_values": [ ],
- "should_capture_name": 0,
- "membership_number_required": true,
- "membership_number_type": "string",
- "membership_number_length": 0,
- "membership_number_regex": "/^[\\w-]*$/",
- "membership_placeholder": "123-abc",
- "membership_specification": "3 letters with 3 characters",
- "is_first_last_name_required": true,
- "is_mobile_number_required": true,
- "is_email_required": true,
- "imageId": "string",
- "is_terms_conditions_required": true,
- "terms_and_conditions_url": "string",
- "to_receive_label": "string",
- "currency_program_label": "Skywards Miles"
}
}
}Calculate points using affiliate program rate and apply any active bonus campaigns.
| points required | integer <int64> (points) |
| affiliate_code required | string (affiliateCode) Affiliate code |
{- "points": 1000,
- "affiliate_code": "AFR"
}{- "points": "1200",
- "base_points": "1000",
- "bonus_points": "200",
- "total_points": "1200",
- "campaign_id": 5
}Validate account number for affiliate
| account_number required | string (accountNumber) Account number in affiliate program system |
| affiliate_code required | string (affiliateCode) Affiliate code |
{- "account_number": "string",
- "affiliate_code": "string"
}{- "errors": [
- {
- "status": 0,
- "code": 393,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Calculate points to cashback amount
| points required | integer <int64> Points to calculate |
| cashback_target | string Enum: "card" "account" Cashback destination whose rate configuration is applied. Defaults to |
{- "points": 0,
- "cashback_target": "card"
}{- "amount": 37.89,
- "currency": "USD, EUR"
}Submit contact us form
| 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 |
{- "type": "customer",
- "source_form": "contact_us",
- "name": "string",
- "company": "string",
- "email": "user@example.com",
- "mobile": "string",
- "message": "string"
}{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Send OTP(One Time Password) to mobile. First endpoint for "otp" flow step type
| X-Flow-Token | string |
{- "otp_token": "string",
- "otp_attempts": "string",
- "otp_token_expired_in_sec": "string",
- "otp_template": "login"
}Verify OTP(One Time Password). You should use otp_token provided by send otp action. Second endpoint for "otp" flow step type
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| otp_token required | string Otp token provided by send otp action |
| otp_value | string |
{- "otp_token": "string",
- "otp_value": "string"
}{- "errors": [
- {
- "status": 0,
- "code": 54,
- "title": "string",
- "detail": "string",
- "meta": {
- "otp_token": "string",
- "otp_token_expired_in_sec": 0
}
}
]
}{- "client_min_version": {
- "property1": "string",
- "property2": "string"
}, - "order": {
- "user-transfer": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}, - "item": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}, - "hotel": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}, - "flight": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}, - "car": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}, - "cashback": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}, - "affiliate": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}, - "vop": {
- "min_points": {
- "value": 0,
- "title": "string"
}
}
}
}Get child partners of authenticated partner
| 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 |
[
]Get details of certain partner
| partner_id required | integer <int64> Partner id |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "id": 0,
- "name": "string",
- "description": "string",
- "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",
}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.
| token required | string = 43 characters 43-character invitation token issued by the survey distribution flow. |
| 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 ( |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Optional |
| Accept-Language | string Example: en-US, en;q=0.9 Preferred language for the survey content (e.g. |
{- "data": {
- "id": 12345,
- "type": "survey-response",
- "attributes": {
- "name": "Q4 Satisfaction Survey",
- "description": "Tell us how we're doing.",
- "language_code": "en",
- "reward_points": 100,
- "status": "in_progress",
- "first_unanswered_question_display_order": 3
}, - "relationships": {
- "questions": {
- "data": [
- {
- "id": 4001,
- "display_order": 1,
- "question_type": 1,
- "is_required": true,
- "configuration": {
- "scale_min": 1,
- "scale_max": 5,
- "labels": {
- "1": "Very bad",
- "5": "Excellent"
}
}, - "text": "How satisfied are you?"
}
]
}, - "answers": {
- "data": [
- {
- "question_id": 4001,
- "answer_value": {
- "rating": 4
}, - "answered_at": "2026-05-15T11:42:01Z"
}
]
}
}
}
}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.
| token required | string = 43 characters 43-character invitation token issued by the survey distribution flow. |
| 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 ( |
| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Optional |
| 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:
|
{- "question_id": 4001,
- "answer_value": {
- "rating": 4
}
}{- "errors": [
- {
- "status": 400,
- "code": 143,
- "title": "string",
- "detail": "string",
- "attribute": "string"
}
]
}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.
| token required | string = 43 characters 43-character invitation token issued by the survey distribution flow. |
| 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 ( |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| Authorization | string Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Optional |
| 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 |
{- "data": {
- "id": 12345,
- "type": "survey-response-submission",
- "attributes": {
- "name": "Q4 Satisfaction Survey",
- "language_code": "en",
- "reward_points": 100,
- "submitted_at": "2026-05-15T11:55:12Z"
}
}
}{- "active": [
- {
- "id": 0,
- "frequency_id": 0,
- "name": "string",
- "icon_id": "string",
- "icon_color": "string",
- "period_validity_start": "2019-08-24",
- "period_validity_end": "2019-08-24"
}
], - "expired": [
- {
- "id": 0,
- "frequency_id": 0,
- "name": "string",
- "icon_id": "string",
- "icon_color": "string",
- "period_validity_start": "2019-08-24",
- "period_validity_end": "2019-08-24"
}
]
}| collection_id required | integer |
{- "data": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "rule": { },
- "earned_count": 0,
- "earned_in_current_period": true
}
]
}Complete flow by registering draft user that was assigned to flow
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "id": 0,
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "telephone_code": "string",
- "mobile": 70757959,
- "reference": "string"
}Complete password reset flow by setting up a new password
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
| password | string <password> Password of user |
| confirm_password | string <password> Password of user (should be same as password) |
{- "password": "pa$$word",
- "confirm_password": "pa$$word"
}{- "user_access_token": "string"
}Complete password update flow by setting up a new password
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Complete profile update flow py updating user data
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{- "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",
- "company_name": "string",
- "enrollment_date": "2019-05-17 01:00:00",
- "settings": [
- {
- "setting": "promotional_emails",
- "value": 1
}
]
}Activate user after flow completion
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
{ }{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}{- "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",
- "company_name": "string",
- "enrollment_date": "2019-05-17 01:00:00",
- "settings": [
- {
- "setting": "promotional_emails",
- "value": 1
}
]
}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
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| X-Flow-Token | string |
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 |
string | |
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 |
{- "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": [
- {
- "setting": "promotional_emails",
- "value": 0
}
]
}{- "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",
- "company_name": "string",
- "enrollment_date": "2019-05-17 01:00:00",
- "settings": [
- {
- "setting": "promotional_emails",
- "value": 1
}
]
}Save user settings
required | Array of objects |
{- "settings": [
- {
- "setting": "promotional_emails",
- "value": 0
}
]
}{- "settings": [
- {
- "setting": "string",
- "value": 0
}
]
}Set user language
| lang required | string Language code |
{- "lang": "string"
}{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get extended profile of authenticated user
{- "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",
- "company_name": "string",
- "enrollment_date": "2019-05-17 01:00:00",
- "settings": [
- {
- "setting": "promotional_emails",
- "value": 1
}
], - "tiers": [
- {
- "id": 0,
- "mapping_id": "string",
- "partner_id": 0,
- "partner_name": "string",
- "name": "string",
- "rank": 0,
- "criterion": "string",
- "lower_value": 0.1,
- "upper_value": 0.1,
- "home_tier": "string"
}
], - "segments": [
- {
- "id": 0,
- "mapping_id": "string",
- "partner_id": 0,
- "name": "string"
}
], - "balance": {
- "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}Register User. Some properties may vary depending on partner configuration.
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| 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) |
{- "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"
}{- "id": 0,
- "ucid": "string",
- "first_name": "string",
- "last_name": "string",
- "email": "user@example.com",
- "telephone_code": "string",
- "mobile": 70757959,
- "reference": "string"
}Change password of authenticated user by old password
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| 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) |
{- "old_password": "string",
- "password": "string",
- "confirm_password": "string"
}{- "user_access_token": "string",
- "refresh_token": "string"
}Get user balance
| user_id required | integer <int64> |
{- "user": {
- "balance": {
- "balance": "string",
- "sum_expired_points": "string",
- "sum_redeemed_points": "string",
- "expiry_period": "string",
- "next_points_to_expire": "string",
- "next_expiry": "string",
- "sum_expiring_points": "string"
}
}, - "status": 200
}Calculate points using points count and "is sender pay commision"
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| 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 |
{- "points": 0,
- "is_sender_pay_commission": true,
- "destination_partner_code": "BSFPM"
}[- {
- "points_deducted": 0,
- "points_added": 0,
- "commission_rate": 0.05,
- "conversion_rate": 0.1,
- "destination_partner_code": "BSFPM"
}
]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).
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
[- {
- "partner_code": "BSFPM",
- "partner_name": "BSF Private Miles",
- "program_name": "BSF Private Miles",
- "points_label": "Miles",
- "conversion_rate": 0.1
}
]Retrieve Visa CLO Cashback Transactions
| order_id required | integer <int32> Order ID |
{- "transaction_date": "yyyy-mm-dd",
- "cashback_date": "yyyy-mm-dd",
- "status": "posted",
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "card_acceptor_id": 0,
- "acquirer_bin": 0,
- "masked_pan": "string",
- "offer_name": "string",
- "discount": 0.1,
- "cashback_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}Approve VOP offer using code sent to user in SMS
| pos_code required | string (posCode) POS mapping code predefined in platform |
| approval_code required | string (approvalCode) Approval code from SMS |
{- "pos_code": "string",
- "approval_code": "string"
}{- "price_in_points": 0,
- "cashback_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "merchant_name": "string"
}VOP validated redemption offer
| approval_code required | string Unique code associated with offer |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "redemption_offer": {
- "merchant_name": "string",
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "price_in_points": 0,
- "min_order_points": 0,
- "created_at": "2017-07-21 17:32:28",
- "expiration_in_hours": 0
}, - "min_points": 0,
- "max_points": 0,
- "cap_value": 0,
- "errors": [
- "string"
]
}Create VOP order
| approval_code required | string (approvalCode) Approval code from SMS |
| points | integer <int64> (itemPriceInPoints) when missing, take max offer billing amount in points |
{- "approval_code": "string",
- "points": 0
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "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
| page | integer <int64> Page number |
| per_page | integer <int64> Max records to return |
{- "data": {
- "items": [
- {
- "merchant_name": "string",
- "transaction_date": "string",
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "approval_url": "string"
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}, - "errors": [
- "string"
]
}Get VISA Offers Network (VON) offers for the authenticated user.
| page | integer <int64> Page number |
{- "data": {
- "country_code": "string",
- "categories": [
- "string"
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}, - "merchants": [
- {
- "score": 0,
- "merchant_id": "string",
- "gor_merchant_id": "string",
- "name": "string",
- "redirect_url": "string",
- "categories": [
- "string"
], - "max_offer_amount": {
- "amount": 37.89,
- "is_percentage": true,
- "currency": "USD, EUR"
}, - "images": [
- {
- "id": "string",
- "type": "string",
- "height": "string",
- "width": "string",
- "url": "string"
}
], - "offers": [
- {
- "offer_id": "string",
- "gor_offer_id": "string",
- "name": "string",
- "amount": {
- "amount": 37.89,
- "is_percentage": true,
- "currency": "USD, EUR"
}, - "offer_type": "string",
- "channel": "string"
}
], - "coupons": [
- {
- "coupon_id": "string",
- "gor_coupon_id": "string",
- "coupon_code": "string",
- "description": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z"
}
]
}
]
}
}Get VISA Offers Network (VON) dashboard for the authenticated user, including pending and paid offers and summary amounts.
| 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. |
{- "data": {
- "pending_offers": [
- {
- "merchant_name": "string",
- "offer_amount": 0,
- "redemption_date": "2019-08-24T14:15:22Z",
- "payout_date": "2019-08-24T14:15:22Z",
- "currency_code": "string",
- "card_last_four": "string",
- "commission_id": "string",
- "merchant_order_id": "string"
}
], - "paid_offers": [
- {
- "merchant_name": "string",
- "offer_amount": 0,
- "redemption_date": "2019-08-24T14:15:22Z",
- "payout_date": "2019-08-24T14:15:22Z",
- "currency_code": "string",
- "card_last_four": "string",
- "commission_id": "string",
- "merchant_order_id": "string"
}
], - "total_earned_amount": 0,
- "total_pending_amount": 0,
- "total_paid_amount": 0
}
}This end-point generates a token to create an merchant order. Token can be used for order creation once.
| 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 |
{- "customer_identifier": "string",
- "partner_code": "string"
}{- "token": "string"
}List merchant orders
| 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 |
{- "id": 0,
- "order_code": "stringstringstringstringstringstring",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "merchant",
- "merchant_order_code": "string",
- "notes": "string",
- "is_reversal": 0
}Create merchant order
| 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. |
| 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 |
{- "token": null,
- "otp": "string",
- "partner_code": "string",
- "amount": 37.89,
- "currency_code": "USD, EUR",
- "merchant_store_code": "string",
- "merchant_order_code": "string",
- "notes": "string"
}{- "order_code": "stringstringstringstringstringstring"
}Revert merchant order by order code
| order_code required | string Order code |
| 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. |
| partner_code required | string code of partner providing loyalty benefits |
{- "partner_code": "string"
}{- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}Partially revert merchant order by order code and amount
| order_code required | string Order code |
| 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. |
| 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 |
{- "partner_code": "string",
- "amount": 37.89,
- "currency_code": "USD, EUR"
}{- "order_status": "waiting_confirmation",
- "reversion_code": "string",
- "reversion_date": "2023-01-30 12:40:15"
}Create pending transaction
| 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. |
| 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 |
{- "is_reversal": 0,
- "customer_identifier": "string",
- "partner_code": "string",
- "transaction_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "transaction_date": "2035-01-25 17:20:30"
}{- "code": "string"
}Create reward
| 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. |
| 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 |
{- "customer_identifier": "string",
- "partner_code": "string",
- "transaction_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "transaction_date": "2019-08-24"
}{- "code": "f5d62b05-370e-48be-a755-8675ca146431",
- "bonus_codes": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}Reverse reward
| reward_code required | string Reward code |
| 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. |
| partner_code required | string (partner_code) code of partner providing loyalty benefits |
{- "partner_code": "string"
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get list of available affiliate programs on the platform
| 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 |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": [
- {
- "code": "string",
- "type": "points_conversion",
- "name": "string",
- "description": "string",
- "image_url": "string",
- "website": "string",
- "terms_and_conditions_url": "string",
- "transfer_config": {
- "account_credentials_type": "no_credentials",
- "account_credentials_fields": {
- "account_number": {
- "validation_type": "numeric",
- "length": 0,
- "regex": "/^(?:(5\\d{8})|(1[123]\\d{7}))$/\n",
- "placeholder": "XXXXXXXXX",
- "specifications": "Membership number should consist of 9 digits starting with (5 or 11 or 12 or 13)"
}, - "first_name": {
- "only_latin_chars": true,
- "regex": "/^[A-Za-z\\s\\-\\']+$/u\n"
}, - "last_name": {
- "only_latin_chars": true,
- "regex": "/^[A-Za-z\\s\\-\\']+$/u\n"
}
}
}
}
]
}Get details of a specific affiliate program
| program_code required | string |
| Accept-language | string Default: en Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
{- "data": {
- "code": "string",
- "type": "points_conversion",
- "name": "string",
- "description": "string",
- "image_url": "string",
- "website": "string",
- "terms_and_conditions_url": "string",
- "transfer_config": {
- "account_credentials_type": "no_credentials",
- "account_credentials_fields": {
- "account_number": {
- "validation_type": "numeric",
- "length": 0,
- "regex": "/^(?:(5\\d{8})|(1[123]\\d{7}))$/\n",
- "placeholder": "XXXXXXXXX",
- "specifications": "Membership number should consist of 9 digits starting with (5 or 11 or 12 or 13)"
}, - "first_name": {
- "only_latin_chars": true,
- "regex": "/^[A-Za-z\\s\\-\\']+$/u\n"
}, - "last_name": {
- "only_latin_chars": true,
- "regex": "/^[A-Za-z\\s\\-\\']+$/u\n"
}
}
}
}
}Validate account number for affiliate
| program_code required | string |
| account_number required | string (accountNumber) Account number in affiliate program system |
{- "account_number": "string"
}{- "errors": [
- {
- "status": 0,
- "code": 393,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}This operation allows the transfer of a specified value (points, money ..etc) to the balance of a member within a targeted affiliate program.
| 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. |
{- "client_order_code": "string",
- "affiliate_program_code": "GAF",
- "value": 1,
- "account_credentials": {
- "account_number": "string",
- "first_name": "string",
- "last_name": "string"
}
}{- "data": {
- "platform_order_code": "string",
- "client_order_code": "string",
- "status_code": "pending"
}
}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.
[- {
- "code": "AE",
- "name": "United Arab Emirates"
}
]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.
| country_code required | string Example: country_code=AE ISO 3166-1 alpha-2 country code |
[- {
- "code": "2186",
- "name": "Abu Dhabi"
}
]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.
| country_code required | string Example: country_code=AE ISO 3166-1 alpha-2 country code |
[- {
- "code": "3081",
- "name": "Dubai International Airport (DXB)",
- "city": {
- "code": "2453",
- "name": "Dubai"
}
}
]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.
| search_term required | string >= 3 Partial or complete name of the city or airport |
[- {
- "code": "2453",
- "name": "Abu Dhabi International Airport (AUH)",
- "type": "airport",
- "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}
}
]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:
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 |
{- "pickup": {
- "location_type": "city",
- "location_code": "string",
- "at": "2023-10-03 11:40"
}, - "dropoff": {
- "location_type": "city",
- "location_code": "string",
- "at": "2023-10-03 11:40"
}, - "driver_age": 30,
- "source_country": "AE"
}[- {
- "code": "string",
- "vehicle": {
- "brief_description": "Nissan Kicks",
- "category": {
- "value": 3,
- "description": "SUV"
}, - "size": {
- "value": 1,
- "description": "Mini"
}, - "transmission_type": {
- "value": "automatic",
- "description": "Automatic"
}, - "fuel_type": {
- "value": 1,
- "description": "Diesel"
}, - "has_air_conditioning": true,
- "passenger_capacity": 0,
- "door_count": 0,
- "image": {
}
}, - "supplier": {
- "code": 145,
- "name": "Thrifty UAE",
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}
}
]| offer_code required | string |
{- "data": {
- "code": "string",
- "vehicle": {
- "brief_description": "Nissan Kicks",
- "category": {
- "value": 3,
- "description": "SUV"
}, - "size": {
- "value": 1,
- "description": "Mini"
}, - "transmission_type": {
- "value": "automatic",
- "description": "Automatic"
}, - "fuel_type": {
- "value": 1,
- "description": "Diesel"
}, - "has_air_conditioning": true,
- "passenger_capacity": 0,
- "door_count": 0,
- "image": {
}
}, - "supplier": {
- "code": 145,
- "name": "Thrifty UAE",
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "pick_up": {
- "at": "2023-10-03 11:40",
- "rental_station": {
- "code": 1195508,
- "name": "Mall Of The Emirates",
- "supplier": {
- "code": 145,
- "name": "Thrifty UAE",
}, - "location": {
- "location_type": {
- "value": "airport",
- "description": "Airport"
}, - "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}, - "state_province": {
- "code": "string",
- "name": "string"
}, - "city": {
- "code": 2453,
- "name": "DUBAI"
}, - "postal_code": "string",
- "address": "string",
- "street_number": "Entrance C, Ground Floor near Emirates NBD Bank/ Parking: C7 Level 2 (Orange Posts)",
- "coordinates": {
- "latitude": 25.25152,
- "longitude": 55.33125
}
}, - "park_location": "Counter Located In Level 1",
- "day_operation_schedules": {
- "day": {
- "value": "MON",
- "description": "Monday"
}, - "status": {
- "value": "open",
- "description": "Open"
}, - "time_ranges": [
- {
- "start": "10:00",
- "end": "23:00",
- "operational": true
}
]
}
}
}, - "drop_off": {
- "at": "2023-10-03 11:40",
- "rental_station": {
- "code": 1195508,
- "name": "Mall Of The Emirates",
- "supplier": {
- "code": 145,
- "name": "Thrifty UAE",
}, - "location": {
- "location_type": {
- "value": "airport",
- "description": "Airport"
}, - "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}, - "state_province": {
- "code": "string",
- "name": "string"
}, - "city": {
- "code": 2453,
- "name": "DUBAI"
}, - "postal_code": "string",
- "address": "string",
- "street_number": "Entrance C, Ground Floor near Emirates NBD Bank/ Parking: C7 Level 2 (Orange Posts)",
- "coordinates": {
- "latitude": 25.25152,
- "longitude": 55.33125
}
}, - "park_location": "Counter Located In Level 1",
- "day_operation_schedules": {
- "day": {
- "value": "MON",
- "description": "Monday"
}, - "status": {
- "value": "open",
- "description": "Open"
}, - "time_ranges": [
- {
- "start": "10:00",
- "end": "23:00",
- "operational": true
}
]
}
}
}, - "price_coverages": [
- {
- "title": "Collision damage waiver",
- "description": "with excess up to 3,000 AED"
}
], - "vehicle_charges": [
- {
- "title": "Estimated deposit amount",
- "description": "Upon collection of the car a security deposit will be blocked on the driver’s credit card. This deposit is determined by supplier considering your selected car category"
}
], - "on_pickup_charges": [
- {
- "description": "Young Driver Surcharge",
- "amount": {
- "amount": 0.1,
- "currency": "string"
}
}
], - "rentable_equipments": [
- {
- "name": "Additional Driver",
- "type": 413,
- "charge_unit": {
- "value": "per_rental",
- "description": "per rental"
}, - "quantity": 0,
- "per_day_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_day_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "included_in_total_rate": true
}
], - "ancillary_insurance": {
- "name": "Additional Driver",
- "type": 413,
- "charge_unit": {
- "value": "per_rental",
- "description": "per rental"
}, - "quantity": 0,
- "per_day_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_day_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "included_in_total_rate": true
}, - "payment_rules_description": "Prepayment Full rental price due at time of reservation. At pick-up a valid credit card in main driver's name is required as a guarantee. Prepaid or debit cards, such as Maestro, Visa electron, Visa Premier or Carte Bleue are not accepted.",
- "cancellation_policies": {
- "from": "2023-10-03 11:40",
- "to": "2023-10-03 11:40",
- "amount": {
- "amount": 0.1,
- "currency": "string"
}, - "amount_client": {
- "amount": 0.1,
- "currency": "string"
}, - "description": "Cancellation fee of 227.36 USD will be charged After 08/06/2024 09:00 Until 10/06/2024 09:00"
}, - "restrictions": {
- "min_age": 0,
- "max_age": 0
}
}
}Place an order for a car rent
| 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 |
{- "client_order_code": "string",
- "car_offer_code": "rAULheswWEyor9F0fQr3Cw-8",
- "reservation_holder": {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "birth_date": "2019-08-24",
- "country_code": "AE",
- "area_code": "PA",
- "city_name": "string",
- "street_number": "string",
- "postal_code": "string",
- "email": "user@example.com",
- "mobile_number": {
- "country_calling_code": "string",
- "number": 70757959
}, - "flight_number": "string"
}, - "requested_equipments": [
- {
- "type": 0,
- "quantity": 1
}
]
}{- "data": {
- "platform_order_code": "string",
- "client_order_code": "string",
- "status_code": "pending",
- "car_rental_offer": {
- "code": "string",
- "vehicle": {
- "brief_description": "Nissan Kicks",
- "category": {
- "value": 3,
- "description": "SUV"
}, - "size": {
- "value": 1,
- "description": "Mini"
}, - "transmission_type": {
- "value": "automatic",
- "description": "Automatic"
}, - "fuel_type": {
- "value": 1,
- "description": "Diesel"
}, - "has_air_conditioning": true,
- "passenger_capacity": 0,
- "door_count": 0,
- "image": {
}
}, - "supplier": {
- "code": 145,
- "name": "Thrifty UAE",
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "pick_up": {
- "at": "2023-10-03 11:40",
- "rental_station": {
- "code": 1195508,
- "name": "Mall Of The Emirates",
- "supplier": {
- "code": 145,
- "name": "Thrifty UAE",
}, - "location": {
- "location_type": {
- "value": "airport",
- "description": "Airport"
}, - "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}, - "state_province": {
- "code": "string",
- "name": "string"
}, - "city": {
- "code": 2453,
- "name": "DUBAI"
}, - "postal_code": "string",
- "address": "string",
- "street_number": "Entrance C, Ground Floor near Emirates NBD Bank/ Parking: C7 Level 2 (Orange Posts)",
- "coordinates": {
- "latitude": 25.25152,
- "longitude": 55.33125
}
}, - "park_location": "Counter Located In Level 1",
- "day_operation_schedules": {
- "day": {
- "value": "MON",
- "description": "Monday"
}, - "status": {
- "value": "open",
- "description": "Open"
}, - "time_ranges": [
- {
- "start": "10:00",
- "end": "23:00",
- "operational": true
}
]
}
}
}, - "drop_off": {
- "at": "2023-10-03 11:40",
- "rental_station": {
- "code": 1195508,
- "name": "Mall Of The Emirates",
- "supplier": {
- "code": 145,
- "name": "Thrifty UAE",
}, - "location": {
- "location_type": {
- "value": "airport",
- "description": "Airport"
}, - "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}, - "state_province": {
- "code": "string",
- "name": "string"
}, - "city": {
- "code": 2453,
- "name": "DUBAI"
}, - "postal_code": "string",
- "address": "string",
- "street_number": "Entrance C, Ground Floor near Emirates NBD Bank/ Parking: C7 Level 2 (Orange Posts)",
- "coordinates": {
- "latitude": 25.25152,
- "longitude": 55.33125
}
}, - "park_location": "Counter Located In Level 1",
- "day_operation_schedules": {
- "day": {
- "value": "MON",
- "description": "Monday"
}, - "status": {
- "value": "open",
- "description": "Open"
}, - "time_ranges": [
- {
- "start": "10:00",
- "end": "23:00",
- "operational": true
}
]
}
}
}, - "price_coverages": [
- {
- "title": "Collision damage waiver",
- "description": "with excess up to 3,000 AED"
}
], - "vehicle_charges": [
- {
- "title": "Estimated deposit amount",
- "description": "Upon collection of the car a security deposit will be blocked on the driver’s credit card. This deposit is determined by supplier considering your selected car category"
}
], - "on_pickup_charges": [
- {
- "description": "Young Driver Surcharge",
- "amount": {
- "amount": 0.1,
- "currency": "string"
}
}
], - "rentable_equipments": [
- {
- "name": "Additional Driver",
- "type": 413,
- "charge_unit": {
- "value": "per_rental",
- "description": "per rental"
}, - "quantity": 0,
- "per_day_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_day_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "included_in_total_rate": true
}
], - "ancillary_insurance": {
- "name": "Additional Driver",
- "type": 413,
- "charge_unit": {
- "value": "per_rental",
- "description": "per rental"
}, - "quantity": 0,
- "per_day_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_day_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "included_in_total_rate": true
}, - "payment_rules_description": "Prepayment Full rental price due at time of reservation. At pick-up a valid credit card in main driver's name is required as a guarantee. Prepaid or debit cards, such as Maestro, Visa electron, Visa Premier or Carte Bleue are not accepted.",
- "cancellation_policies": {
- "from": "2023-10-03 11:40",
- "to": "2023-10-03 11:40",
- "amount": {
- "amount": 0.1,
- "currency": "string"
}, - "amount_client": {
- "amount": 0.1,
- "currency": "string"
}, - "description": "Cancellation fee of 227.36 USD will be charged After 08/06/2024 09:00 Until 10/06/2024 09:00"
}, - "restrictions": {
- "min_age": 0,
- "max_age": 0
}
}, - "reservation_details": {
- "reference": "CN724172184833",
- "holder": {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": {
- "value": "m",
- "description": "Male"
}, - "birth_date": "2019-08-24",
- "country_code": "AE",
- "area_code": "PA",
- "city_name": "string",
- "street_number": "string",
- "postal_code": "string",
- "email": "user@example.com",
- "mobile_number": {
- "country_calling_code": "string",
- "number": 70757959
}, - "flight_number": "string"
}, - "requested_equipments": {
- "equipment": {
- "name": "Additional Driver",
- "type": 413,
- "charge_unit": {
- "value": "per_rental",
- "description": "per rental"
}, - "quantity": 0,
- "per_day_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_day_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price": {
- "amount": 0.1,
- "currency": "string"
}, - "per_rental_price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "included_in_total_rate": true
}, - "requested_quantity": 0
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}
}
}
}Get airports for flights, grouped by city
| search-term required | string >= 2 characters search airport by name, city, country and IATA code |
[- {
- "city_name": "Seattle, United States",
- "airports": [
- {
- "name": "Tacoma International Airport",
- "code": "SEA"
}
]
}
]Get a list of available flights according to the search criteria
| 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 |
[- {
- "flight_code": "string",
- "reservation_mechanism": "gds",
- "passengers_count": {
- "adults": 0,
- "children": 0,
- "infants": 0
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "itineraries": {
- "departure": {
- "departure_country": {
- "name": "Spain"
}, - "arrival_country": {
- "name": "Italy"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cancellation_penalty": "string",
- "legs": [
- {
- "flight_number": 0,
- "departure": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "arrival": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "carrier": {
- "code": "st",
- "logo": "string"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cabin_class": {
- "code": "Economy"
}, - "booking_class": {
- "code": "Y"
}, - "baggage": {
- "weight": "30 kg"
}
}
]
}, - "return": {
- "departure_country": {
- "name": "Spain"
}, - "arrival_country": {
- "name": "Italy"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cancellation_penalty": "string",
- "legs": [
- {
- "flight_number": 0,
- "departure": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "arrival": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "carrier": {
- "code": "st",
- "logo": "string"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cabin_class": {
- "code": "Economy"
}, - "booking_class": {
- "code": "Y"
}, - "baggage": {
- "weight": "30 kg"
}
}
]
}
}
}
]Retrieve a flight by its code
| flight_code required | string |
{- "data": {
- "flight_code": "string",
- "reservation_mechanism": "gds",
- "passengers_count": {
- "adults": 0,
- "children": 0,
- "infants": 0
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "itineraries": {
- "departure": {
- "departure_country": {
- "name": "Spain"
}, - "arrival_country": {
- "name": "Italy"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cancellation_penalty": "string",
- "legs": [
- {
- "flight_number": 0,
- "departure": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "arrival": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "carrier": {
- "code": "st",
- "logo": "string"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cabin_class": {
- "code": "Economy"
}, - "booking_class": {
- "code": "Y"
}, - "baggage": {
- "weight": "30 kg"
}
}
]
}, - "return": {
- "departure_country": {
- "name": "Spain"
}, - "arrival_country": {
- "name": "Italy"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cancellation_penalty": "string",
- "legs": [
- {
- "flight_number": 0,
- "departure": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "arrival": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "carrier": {
- "code": "st",
- "logo": "string"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cabin_class": {
- "code": "Economy"
}, - "booking_class": {
- "code": "Y"
}, - "baggage": {
- "weight": "30 kg"
}
}
]
}
}
}
}Reserve a flight from the list of available ones synchronously by its code
| 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) |
{- "client_order_code": "string",
- "flight_code": "string",
- "passengers": {
- "adults": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "birth_date": "2019-08-24",
- "passport": {
- "number": "string",
- "nationality": "st",
- "expiry_date": "2019-08-24",
- "issue_date": "2019-08-24"
}, - "contact_details": {
- "mobile_number": {
- "country_calling_code": "string",
- "number": 70757959
}
}
}
], - "children": [
- {
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "birth_date": "2019-08-24",
- "passport": {
- "number": "string",
- "nationality": "st",
- "expiry_date": "2019-08-24",
- "issue_date": "2019-08-24"
}
}
], - "infants": [
- {
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "birth_date": "2019-08-24",
- "passport": {
- "number": "string",
- "nationality": "st",
- "expiry_date": "2019-08-24",
- "issue_date": "2019-08-24"
}
}
]
}, - "contact_details": {
- "email": "string",
- "mobile_number": {
- "country_calling_code": "string",
- "number": 70757959
}
}
}{- "data": {
- "platform_order_code": "string",
- "client_order_code": "string",
- "status_code": "pending",
- "flight": {
- "flight_code": "string",
- "reservation_mechanism": "gds",
- "passengers_count": {
- "adults": 0,
- "children": 0,
- "infants": 0
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "itineraries": {
- "departure": {
- "departure_country": {
- "name": "Spain"
}, - "arrival_country": {
- "name": "Italy"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cancellation_penalty": "string",
- "legs": [
- {
- "flight_number": 0,
- "departure": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "arrival": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "carrier": {
- "code": "st",
- "logo": "string"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cabin_class": {
- "code": "Economy"
}, - "booking_class": {
- "code": "Y"
}, - "baggage": {
- "weight": "30 kg"
}
}
]
}, - "return": {
- "departure_country": {
- "name": "Spain"
}, - "arrival_country": {
- "name": "Italy"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cancellation_penalty": "string",
- "legs": [
- {
- "flight_number": 0,
- "departure": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "arrival": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "carrier": {
- "code": "st",
- "logo": "string"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cabin_class": {
- "code": "Economy"
}, - "booking_class": {
- "code": "Y"
}, - "baggage": {
- "weight": "30 kg"
}
}
]
}
}
}, - "reservation_details": {
- "reference": "string",
- "airline_reference": "string",
- "reservation_mechanism": "gds",
- "passenger_name_records": [
- {
- "ticket_number": "string",
- "first_name": "string",
- "last_name": "string"
}
], - "failed_legs": [
- {
- "flight_number": 0,
- "departure": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "arrival": {
- "airport": {
- "code": "MAD",
- "name": "Barajas Airport, Madrid (MAD)"
}, - "at": "2023-10-03T11:40:55+03:00"
}, - "carrier": {
- "code": "st",
- "logo": "string"
}, - "duration": {
- "hours": 0,
- "minutes": 0
}, - "cabin_class": {
- "code": "Economy"
}, - "booking_class": {
- "code": "Y"
}, - "baggage": {
- "weight": "30 kg"
}
}
], - "ticketing_date": "2019-08-24"
}, - "passengers": {
- "adults": [
- {
- "title": "Mr.",
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "birth_date": "2019-08-24",
- "passport": {
- "number": "string",
- "nationality": "st",
- "expiry_date": "2019-08-24",
- "issue_date": "2019-08-24"
}, - "contact_details": {
- "mobile_number": {
- "country_calling_code": "string",
- "number": 70757959
}
}
}
], - "children": [
- {
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "birth_date": "2019-08-24",
- "passport": {
- "number": "string",
- "nationality": "st",
- "expiry_date": "2019-08-24",
- "issue_date": "2019-08-24"
}
}
], - "infants": [
- {
- "first_name": "string",
- "last_name": "string",
- "gender": "m",
- "birth_date": "2019-08-24",
- "passport": {
- "number": "string",
- "nationality": "st",
- "expiry_date": "2019-08-24",
- "issue_date": "2019-08-24"
}
}
]
}, - "contact_details": {
- "email": "string",
- "mobile_number": {
- "country_calling_code": "string",
- "number": 70757959
}
}
}
}Retrieve a list of hotel destinations based on search criteria.
| search_phrase | string >= 2 characters Search destinations by name |
| country_code | string ISO 3166-1 alpha-2 country code |
[- {
- "code": "DXB",
- "name": "Dubai",
- "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}
}
]Search hotels and rooms available offers in a given time period based on the specified criteria
required | object |
required | object |
required | object Only one criterion is allowed in the request |
object |
{- "stay": {
- "check_in": "2020-06-15",
- "check_out": "2020-06-15"
}, - "occupancy": {
- "rooms": 1,
- "adults": 1,
- "children": 0,
- "children_ages": [
- 0
]
}, - "search_criteria": {
- "destination": "string",
- "geolocation": {
- "latitude": -90,
- "longitude": -180,
- "distance_unit": "mi",
- "radius": 200,
- "secondary_latitude": -90,
- "secondary_longitude": -180
}
}, - "filter": {
- "rate": {
- "min": 0,
- "max": 0
}, - "star_rating": {
- "min": 1,
- "max": 1
}, - "accommodation_types": [
- "string"
]
}
}[- {
- "code": "string",
- "check_in": "2020-06-15",
- "check_out": "2020-06-15",
- "min_room_rate": {
- "amount": 0.1,
- "currency": "string"
}, - "min_room_rate_client": {
- "amount": 0.1,
- "currency": "string"
}, - "max_room_rate": {
- "amount": 0.1,
- "currency": "string"
}, - "max_room_rate_client": {
- "amount": 0.1,
- "currency": "string"
}, - "hotel": {
- "code": "string",
- "name": "string",
- "star_rating": 1,
- "main_image": {
}, - "image_gallery": [
- {
}
], - "description": "string",
- "location": {
- "destination": {
- "code": "DXB",
- "name": "Dubai",
- "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}
}, - "coordinates": {
- "latitude": "25.217430228260493",
- "longitude": "55.278578996658325"
}, - "address": "Sheikh Zayed Road"
}, - "category": {
- "code": "5EST",
- "name": "5 STARS"
}, - "facilities": [
- {
- "name": "Fitness"
}
]
}, - "room_offers": {
- "room": {
- "code": "DBL.SU",
- "name": "Superior Twin Room"
}, - "rates": [
- {
- "code": "20231125|20231126|W|148|162731|DBL.SU|BAR FB FLEX|FB||1~1~1|0|N@06~~23d179~-941135147~N~~~NOR~E3B951CC163240A169841567263200AAUK00000030000000001202135",
- "class_code": "NOR",
- "room": {
- "code": "DBL.SU",
- "name": "Superior Twin Room"
}, - "rooms": 1,
- "adults": 1,
- "children": 1,
- "children_ages": [
- 0
], - "board": {
- "code": "FB",
- "name": "FULL BOARD"
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "is_refundable": true,
- "cancellation_policies": [
- {
- "amount": {
- "amount": 0.1,
- "currency": "string"
}, - "amount_client": {
- "amount": 0.1,
- "currency": "string"
}, - "applicable_from": "2023-10-03T11:40:55+03:00"
}
], - "comments": null,
- "allotment": 0
}
]
}
}
]Retrieve detailed information about a hotel offer and rooms available using its unique code
| offer_code required | string |
{- "data": {
- "code": "string",
- "check_in": "2020-06-15",
- "check_out": "2020-06-15",
- "min_room_rate": {
- "amount": 0.1,
- "currency": "string"
}, - "min_room_rate_client": {
- "amount": 0.1,
- "currency": "string"
}, - "max_room_rate": {
- "amount": 0.1,
- "currency": "string"
}, - "max_room_rate_client": {
- "amount": 0.1,
- "currency": "string"
}, - "hotel": {
- "code": "string",
- "name": "string",
- "star_rating": 1,
- "main_image": {
}, - "image_gallery": [
- {
}
], - "description": "string",
- "location": {
- "destination": {
- "code": "DXB",
- "name": "Dubai",
- "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}
}, - "coordinates": {
- "latitude": "25.217430228260493",
- "longitude": "55.278578996658325"
}, - "address": "Sheikh Zayed Road"
}, - "category": {
- "code": "5EST",
- "name": "5 STARS"
}, - "facilities": [
- {
- "name": "Fitness"
}
]
}, - "room_offers": {
- "room": {
- "code": "DBL.SU",
- "name": "Superior Twin Room"
}, - "rates": [
- {
- "code": "20231125|20231126|W|148|162731|DBL.SU|BAR FB FLEX|FB||1~1~1|0|N@06~~23d179~-941135147~N~~~NOR~E3B951CC163240A169841567263200AAUK00000030000000001202135",
- "class_code": "NOR",
- "room": {
- "code": "DBL.SU",
- "name": "Superior Twin Room"
}, - "rooms": 1,
- "adults": 1,
- "children": 1,
- "children_ages": [
- 0
], - "board": {
- "code": "FB",
- "name": "FULL BOARD"
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "is_refundable": true,
- "cancellation_policies": [
- {
- "amount": {
- "amount": 0.1,
- "currency": "string"
}, - "amount_client": {
- "amount": 0.1,
- "currency": "string"
}, - "applicable_from": "2023-10-03T11:40:55+03:00"
}
], - "comments": null,
- "allotment": 0
}
]
}
}
}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:
| rate_code required | string |
{- "rate_code": "string"
}{- "data": {
- "code": "20231125|20231126|W|148|162731|DBL.SU|BAR FB FLEX|FB||1~1~1|0|N@06~~23d179~-941135147~N~~~NOR~E3B951CC163240A169841567263200AAUK00000030000000001202135",
- "class_code": "NOR",
- "room": {
- "code": "DBL.SU",
- "name": "Superior Twin Room"
}, - "rooms": 1,
- "adults": 1,
- "children": 1,
- "children_ages": [
- 0
], - "board": {
- "code": "FB",
- "name": "FULL BOARD"
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "is_refundable": true,
- "cancellation_policies": [
- {
- "amount": {
- "amount": 0.1,
- "currency": "string"
}, - "amount_client": {
- "amount": 0.1,
- "currency": "string"
}, - "applicable_from": "2023-10-03T11:40:55+03:00"
}
], - "comments": "1x DOUBLE Estimated total amount of taxes & fees for this booking: 20.00 Utd. Arab Emir. Dirham payable on arrival. Car park YES (without additional debit notes). Check-in hour 15:00 - . Minimum check-in age 18",
- "allotment": 0
}
}Book a hotel room(s) by its rate code
| 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”…. |
{- "client_order_code": "string",
- "room_rate_code": "string",
- "booking_holder": {
- "first_name": "string",
- "last_name": "string",
- "email": "string"
}, - "guests_groups": [
- [
- {
- "first_name": "string",
- "last_name": "string",
- "age_stage": "adult",
- "age": 0
}
]
], - "remark": "string"
}{- "data": {
- "platform_order_code": "string",
- "client_order_code": "string",
- "status_code": "pending",
- "hotel": {
- "code": "string",
- "name": "string",
- "star_rating": 1,
- "main_image": {
}, - "image_gallery": [
- {
}
], - "description": "string",
- "location": {
- "destination": {
- "code": "DXB",
- "name": "Dubai",
- "country": {
- "code": "AE",
- "name": "United Arab Emirates"
}
}, - "coordinates": {
- "latitude": "25.217430228260493",
- "longitude": "55.278578996658325"
}, - "address": "Sheikh Zayed Road"
}, - "category": {
- "code": "5EST",
- "name": "5 STARS"
}, - "facilities": [
- {
- "name": "Fitness"
}
]
}, - "check_in": "2020-06-15",
- "check_out": "2020-06-15",
- "room_rate": {
- "code": "20231125|20231126|W|148|162731|DBL.SU|BAR FB FLEX|FB||1~1~1|0|N@06~~23d179~-941135147~N~~~NOR~E3B951CC163240A169841567263200AAUK00000030000000001202135",
- "class_code": "NOR",
- "room": {
- "code": "DBL.SU",
- "name": "Superior Twin Room"
}, - "rooms": 1,
- "adults": 1,
- "children": 1,
- "children_ages": [
- 0
], - "board": {
- "code": "FB",
- "name": "FULL BOARD"
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "price_client": {
- "amount": 0.1,
- "currency": "string"
}, - "is_refundable": true,
- "cancellation_policies": [
- {
- "amount": {
- "amount": 0.1,
- "currency": "string"
}, - "amount_client": {
- "amount": 0.1,
- "currency": "string"
}, - "applicable_from": "2023-10-03T11:40:55+03:00"
}
], - "comments": "1x DOUBLE Estimated total amount of taxes & fees for this booking: 20.00 Utd. Arab Emir. Dirham payable on arrival. Car park YES (without additional debit notes). Check-in hour 15:00 - . Minimum check-in age 18",
- "allotment": 0
}, - "booking_details": {
- "reference": "148-3061823",
- "holder": {
- "first_name": "string",
- "last_name": "string",
- "email": "string"
}, - "price": {
- "amount": 0.1,
- "currency": "string"
}, - "creation_date": "2020-06-15",
- "invoice_company": {
- "code": "E14",
- "name": "string",
- "registration_number": "string"
}, - "holder_remark": "string"
}, - "guests_groups": [
- {
- "room_id": 0,
- "guests": [
- {
- "first_name": "string",
- "last_name": "string",
- "age_stage": "adult",
- "age": 0
}
]
}
]
}
}List all marketplace items available for partner with their translations, for synchronization
{- "data": [
- {
- "code": "string",
- "name": {
- "en": "string",
- "ar": "string",
- "fr": "string"
}, - "description": {
- "en": "string",
- "ar": "string",
- "fr": "string"
}, - "category_code": "string",
- "category_name": {
- "en": "string",
- "ar": "string",
- "fr": "string"
}, - "brand_code": "string",
- "brand_name": {
- "en": "string",
- "ar": "string",
- "fr": "string"
}, - "model": {
- "en": "string",
- "ar": "string",
- "fr": "string"
}, - "sub_model": {
- "en": "string",
- "ar": "string",
- "fr": "string"
}, - "image_url": "string",
- "group": "store",
- "original_price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "stock_status": "in_stock",
- "origin_country": {
- "name": "string",
- "code": "string"
}, - "delivery_countries": [
- {
- "name": "string",
- "code": "string"
}
]
}
]
}Create Marketplace Item Order
| 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 |
{- "client_order_code": "string",
- "item_code": "string",
- "country_code": "string",
- "delivery_address": {
- "country_code": "str",
- "postal_code": "string",
- "city_code": "string",
- "area_code": "string",
- "address": "string",
- "address2": "string"
}, - "delivery_contacts": {
- "first_name": "string",
- "last_name": "string",
- "phone1": "string",
- "phone2": "string"
}
}{- "data": {
- "platform_order_code": "string",
- "client_order_code": "string",
- "status_code": "pending",
- "failure_reason": {
- "reason_text": "string",
- "reason_code": 0
}, - "delivery_contacts": {
- "first_name": "string",
- "last_name": "string",
- "phone1": "string",
- "phone2": "string"
}, - "delivery_address": {
- "country_code": "str",
- "postal_code": "string",
- "city_code": "string",
- "area_code": "string",
- "address": "string",
- "address2": "string"
}, - "item": {
- "code": "string",
- "name": "string",
- "model": "string",
- "type_code": "physical_item",
- "brand_code": "string",
- "sub_model": "string",
- "category_code": "string",
- "price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}
}Cancel Marketplace Item Order
| platform_order_code required | string Order code on the platform side |
| reason | any Reason for cancellation |
{- "reason": null
}{- "data": {
- "platform_order_code": "string",
- "client_order_code": "string",
- "status_code": "pending",
- "failure_reason": {
- "reason_text": "string",
- "reason_code": 0
}, - "delivery_contacts": {
- "first_name": "string",
- "last_name": "string",
- "phone1": "string",
- "phone2": "string"
}, - "delivery_address": {
- "country_code": "str",
- "postal_code": "string",
- "city_code": "string",
- "area_code": "string",
- "address": "string",
- "address2": "string"
}, - "item": {
- "code": "string",
- "name": "string",
- "model": "string",
- "type_code": "physical_item",
- "brand_code": "string",
- "sub_model": "string",
- "category_code": "string",
- "price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}
}| order_code required | string |
{- "schema": {
- "platform_order_code": "string",
- "client_order_code": "string",
- "status_code": "pending",
- "failure_reason": {
- "reason_text": "string",
- "reason_code": 0
}, - "delivery_contacts": {
- "first_name": "string",
- "last_name": "string",
- "phone1": "string",
- "phone2": "string"
}, - "delivery_address": {
- "country_code": "str",
- "postal_code": "string",
- "city_code": "string",
- "area_code": "string",
- "address": "string",
- "address2": "string"
}, - "item": {
- "code": "string",
- "name": "string",
- "model": "string",
- "type_code": "physical_item",
- "brand_code": "string",
- "sub_model": "string",
- "category_code": "string",
- "price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "delivery_price_client": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}
}Retrieves the status of an order from the marketplace platform using our platform order code
| order_code required | string Code of the order on the platform side |
{- "data": {
- "status_code": "pending",
- "failure_reason": {
- "reason_text": "string",
- "reason_code": 0
}
}
}Returns a paginated list of audit trail records
| 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 |
{- "data": [
- {
- "admin_id": 0,
- "admin_first_name": "string",
- "admin_last_name": "string",
- "action_name": "string",
- "result": "Success",
- "detail": "string",
- "old_value": "string",
- "new_value": "string",
- "source_ip": "string",
- "url": "string",
- "user_agent": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "reference_number": "string"
}
], - "meta": {
- "current_page": 0,
- "per_page": 0,
- "total": 0,
- "last_page": 0
}
}Get balance by card number
| card_number | string |
| X-Params | string JWE-encrypted token with parameters encrypted according to "Encryption of sensitive data" documentation |
{- "balance": 0,
- "in_network_currency": 0,
- "network_currency_code": "string"
}Get user data by Reference ID
| reference_id required | string |
{- "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 Pay with Points order. Reduce user balance with certain amount of points by his card number.
| 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 |
| 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 |
{- "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"
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "pay-with-points",
- "points": 0,
- "amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "card_last_four": "stri",
- "transaction_timestamp": "yyyy-mm-dd hh:mm:ss (2025-12-27 19:45:23)",
- "merchant_name": "string"
}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). |
{- "errors": [
- {
- "status": 0,
- "code": 705,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Import user cards
| file required | string <binary> Text file formatted as agreed with partner |
{- "data": {
- "success": [
- 1,
- 3,
- 6
], - "error": {
- "2": "Invalid card number",
- "4": "Invalid number of columns",
- "5": "Reference ID is 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> |
{- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "thread_count": 0
}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 |
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.rule_code of one of the partner's point-expiration rules — that rule's period 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.
Import bonus points request
| file required | string <binary> |
{- "errors": [
- {
- "status": 0,
- "code": 705,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Order Offline Voucher. Request is idempotent by order_code parameter
| order_code required | string Order code |
| product_code required | string Product code |
{- "order_code": "string",
- "product_code": "string"
}{- "data": {
- "product_id": 0,
- "voucher_id": 0,
- "voucher_name": "string",
- "exp_date": "yyyy-mm-dd",
- "code_id": 0,
- "code_voucher": "string",
- "code_pin_or_sn": "string"
}
}Use Offline Voucher by voucher code and serial number
| voucher_code required | string |
| serial_number | string PIN or serial number of voucher |
{- "serial_number": "string"
}{- "data": {
- "product_name": "string",
- "product_description": "string",
- "user_first_name": "string",
- "user_last_name": "string",
- "merchant_name": "string",
- "external_code": "string",
- "voucher_code_id": 0,
- "voucher_code": "string",
- "serial_number": "string",
- "status": "available",
- "transaction_id": 0,
- "product_cost": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "original_price": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}
}Directly reduce user balance with certain amount of points
| 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 |
{- "reference": "string",
- "points": 0,
- "description": "string",
- "country_code": "string",
- "store_code": "string",
- "pos_code": "string"
}{- "transaction_id": 0
}Create adhoc order. Directly reduce user balance with certain amount of points
| 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. |
| 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 |
{- "reference": "string",
- "points": 0,
- "category": "string",
- "notes": "string",
- "country_code": "string",
- "store_code": "string",
- "pos_code": "string"
}{- "id": 0,
- "order_code": "4b415e4b-5cb5-11eb-85f5-0ab41ff15195",
- "date": "2023-01-30 12:40:15",
- "status": {
- "order_type": "item",
- "status": "waiting_confirmation",
- "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "point_payment_status": "not_applicable",
- "cash_payment_status": "not_applicable",
- "is_conversion": true
}, - "rejection_reason": {
- "message": "string",
- "error_code": 0
}, - "order_type": "adhoc",
- "points": 0,
- "notes": "string"
}Directly increase user balance with certain amount of points
| 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:
The reserved values |
{- "reference": "string",
- "points": 0,
- "description": "string",
- "country_code": "string",
- "store_code": "string",
- "pos_code": "string",
- "expiration_rule_code": "blu-3y-def"
}{- "transaction_id": 0
}Process reward transactions immediately. Idempotent if trx_code parameter or Idempotent header provided. If provided both then header is used.
| 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. |
| 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 |
{- "trx_code": "string",
- "reversal": 0,
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "transaction_date": "yyyy-mm-dd",
- "description": "string",
- "type": "string",
- "mcc": "string",
- "pos_code": "string",
- "store_code": "string",
- "product_code": "string",
- "transaction_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "country_code": "string",
- "reference": "string"
}{- "transaction_id": 0
}Process reward transactions in some time. Idempotent if trx_code parameter or Idempotent header provided. If provided both then header is used.
| 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. |
| 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 |
{- "trx_code": "string",
- "reversal": 0,
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "transaction_date": "yyyy-mm-dd",
- "description": "string",
- "type": "string",
- "mcc": "string",
- "pos_code": "string",
- "store_code": "string",
- "product_code": "string",
- "transaction_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "country_code": "string",
- "reference": "string"
}{- "staged_transaction_id": 0
}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.
| 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. |
{- "trx_code": "string",
- "reversal": 0,
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}{- "transaction_id": 0
}Process reward transactions immediately. Idempotent by trx_code parameter.
| 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 |
{- "trx_code": "string",
- "reversal": 0,
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "country_code": "string"
}{- "transaction_id": 0
}Process reward transactions in some time. Idempotent by trx_code parameter.
| 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 |
{- "trx_code": "string",
- "reversal": 0,
- "billing_amount": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}, - "country_code": "string"
}{- "staged_transaction_id": 0
}Get staged transaction
| 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 |
{- "items": [
- {
- "id": 0,
- "status": "UNPROCESSED"
}
], - "paginator": {
- "per_page": 0,
- "total": 0,
- "current_page": 0,
- "last_page": 0
}
}Register User
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| 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 |
| 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 |
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 |
{- "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
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}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.
| user_code required | string Unique code associated with user |
| lang | string = 2 characters Deprecated Default: "en" Enum: "en" "ar" "fr" Defines the language the system will use in the response fields where applicable |
| 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 |
| partner_user_code | string Configurable per partner |
| first_name required | string |
| last_name required | string |
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 |
{- "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
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}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.
| reference | string (userReference) Unique user reference identifier |
| status | string Enum: "active" "inactive" "suspended" "closed" |
{- "reference": "string",
- "status": "active"
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Get user balance
| user_code required | string Unique code associated with user |
| 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 |
{- "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": {
- "amount": 37.89,
- "currency": "USD, EUR"
}
}Get list of cards of an user
| user_code required | string Unique code associated with user |
| 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 |
[- {
- "id": 0,
- "last_four": "stri",
- "created_at": "2017-07-21 17:32:28"
}
]Add a new card to a user
| user_code required | string Unique code associated with user |
| 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 |
| card_number required | string = 16 characters |
| primary_status | integer Enum: 1 2 whether card is primary (2 - supplementary, 1 - primary) |
{- "card_number": "stringstringstri",
- "primary_status": 1
}{- "errors": [
- {
- "status": 200,
- "code": 1,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Provide multiple user cards and actions that should be applied to user cards
| user_code required | string Unique code associated with user |
| X-Params | string JWE-encrypted token with parameters encrypted according to "Encryption of sensitive data" documentation |
Array of objects |
{- "cards": [
- {
- "card_number": 4111111111111111,
- "action": "60"
}
]
}[- {
- "id": 0,
- "last_four": "stri",
- "created_at": "2017-07-21 17:32:28",
- "status": "Active",
- "message": "string"
}
]Delete card of an user
| user_code required | string Unique code associated with user |
| card_number required | string |
| 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 |
{- "errors": [
- {
- "status": 0,
- "code": 602,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Check if user is associated with affiliate program
| program_code required | string |
| user_code required | string Unique code associated with user |
{- "program_id": 0,
- "status": "enabled",
- "membership_number": "string"
}Associate affiliation program with user
| program_code required | string |
| user_code required | string Unique code associated with user |
| membership_number required | string Default account number for given program |
{- "membership_number": "string"
}{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Remove association of affiliation program with user
| program_code required | string |
| user_code required | string Unique code associated with user |
{- "errors": [
- {
- "status": 200,
- "code": 143,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Associate segment with user
| user_code required | string Unique code associated with user |
| mapping_id required | string |
{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Remove association of segment with user
| user_code required | string Unique code associated with user |
| mapping_id required | string |
{- "errors": [
- {
- "status": 401,
- "code": 10,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}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.
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. |
{- "user_code": "USR-12345",
- "affiliation_code": "QATAR_AIRWAYS",
- "identifier_value": "QR987654321"
}{- "errors": [
- {
- "status": 0,
- "code": 393,
- "title": "string",
- "detail": "string",
- "meta": [ ]
}
]
}Authenticate user by reference
| reference required | string User reference (with or without partner code) |
{- "reference": "string"
}{- "user_access_token": "string"
}