Hotel Booking
For merchants offering hotel booking, hospitality services, etc.
List of Parameters
Field | Data Type | Required | Description | ||
|---|---|---|---|---|---|
total_amount | Object | Required | Total amount to be charged to customer, not including any discount amount(item amount + tax amount + shipping amount - discount amount) | ||
amount | Number | Required | The exact format depends on the currency. By default we support 2 decimals, for BHD and KWD we support 3 decimals | ||
currency | String | Required | The three-letter ISO currency code e.g SAR | ||
shipping_amount | Object | Required | |||
amount | Number | Required | |||
currency | String | Required | |||
tax_amount | Object | Required | |||
amount | Number | Required | |||
currency | String | Required | |||
order_reference_id | String | Required | The unique order id from the merchant side, this will be used with the settlement and reports | ||
order_number | String | Optional | The order number from the merchant side, this will be used for communication with the customer. If not passed, it will take the order_reference_id value | ||
discount | Object | Optional | Required only if you allow your customers to use a promo/coupon code on your checkout page | ||
name | String | ||||
amount | Object | ||||
amount | |||||
currency | |||||
risk_assessment | Object | Required | Risk assessment information from the merchant side | ||
is_premium_customer | Boolean | Required | Any subscription package/ VIP segmentation of customers | ||
account_creation_date | String | Required | Date when the customer registered their account (format: dd-mm-yyyy) | ||
total_order_count | Integer | Required | No. of successful orders of customer on merchant | ||
risk_score | Integer | Required | Aggregated transaction/ customer risk score by merchant(if available) | ||
date_first_paid | String | Required | Date of first successful order. Will be null if first order (format: dd-mm-yyyy) | ||
date_last_paid | String | Required | Date of last successful order. Will be null if first order (format: dd-mm-yyyy) | ||
order_count_last_24h | Integer | Optional | No. of successful orders of customer on merchant, in the last 24 hours | ||
account_security | Object | Optional | Security and identity signals. | ||
is_email_verified | Boolean | Optional | true if email is verified by merchant. | ||
is_phone_verified | Boolean | Optional | true if email is verified by merchant. | ||
password_last_changed | String | Optional | Date of last password reset (format: dd-mm-yyyy). | ||
last_login_date | String | Optional | Date of last login (format: dd-mm-yyyy). | ||
last_verification_method | String | Optional | Method used for last authentication, for e.g., OTP, Biometric, etc.. | ||
device_id | String | Optional | Unique device fingerprint/ID from merchant. Any Hash (#) device ID | ||
devices_linked | Integer | Optional | Number of active devices linked to the account. | ||
hotels_itinerary | Object | Required | |||
checkin_date | String | Required | Check-in Date (format: dd-mm-yyyy) | ||
checkout_date | String | Required | Check-out Date (format: dd-mm-yyyy) | ||
number_of_guests | Integer | Required | Number of guests within this booking | ||
name_of_guests | Object | Optional | Names of guests within this booking | ||
_guest1_name | String | Optional | |||
_guest2_name | String | Optional | |||
ticket_delivery_recipient | String | Required | Email or Phone Number where tickets are sent. | ||
number_of_rooms | Integer | Optional | Number of rooms within this booking | ||
hotel_name | String | Required | Name of the Hotel or Property. | ||
hotel_city | String | Required | City IATA Code | ||
hotel_country | String | Required | Country IATA Code (two-character ISO 3166-1 country code) | ||
hotel_room_class | String | Required | Category of room, for e.g., e.g., Standard, Suite, Deluxe. | ||
is_refundable_booking | Boolean | Required | Whether the customer can request for refund for this booking | ||
host | Object | Conditional | Host details. Required in case of rentals. | ||
_host_registration_date | String | Required | Date when the host registered their account on the platform (format: dd-mm-yyyy) | ||
_host_number_of_reservations | Integer | Required | Total number of reservations fulfilled by this host with the merchant. | ||
consumer | Object | Required | The customer's identifying details. | ||
String | Optional | Limited to 128 characters. | |||
phone_number | String | Required | Limited to 32 characters. | ||
first_name | String | Required | |||
last_name | String | Required | |||
items | Array of Objects | Required | Comprehensive details about the items in the order | ||
reference_id | String | Required | The unique id of the product from the merchant side | ||
type | String | Required | The type of the product e.g., Digital. | ||
name | String | Required | The name of the productLimited to 255 characters. | ||
sku | String | Required | If applicable, otherwise hardcoded value can be passed. Limited to 128 characters. | ||
quantity | Integer | Required | The number of units of the product | ||
item_url | Url | Optional | |||
image_url | Url | Optional | |||
unit_price | Object | Optional | |||
tax_amount | Object | Optional | |||
amount | Number | ||||
currency | String | ||||
discount_amount | Object | Optional | |||
amount | Number | ||||
currency | String | ||||
total_amount | Object | Required | |||
amount | Number | Required | |||
currency | String | Required | |||
country_code | String | Required | The two-character ISO 3166-1 country code | ||
description | String | Required | Brief details about the order | ||
merchant_url | Object | Required | This object includes all the redirect URLs that the customer will be redirected to from the Tamara checkout page in different cases. | ||
cancel | Url | Required | When the user manually cancels the checkout session | ||
failure | Url | Required | When the checkout session fails due to a network error or the user is declined | ||
success | Url | Required | When the checkout session is successful | ||
billing_address | Object | ||||
city | String | ||||
country_code | String | ||||
first_name | String | ||||
last_name | String | ||||
line1 | String | ||||
line2 | String | ||||
phone_number | String | ||||
region | String | ||||
shipping_address | Object | Required (Optional, if not available for digital services) | |||
city | String | Required | |||
country_code | String | Required | |||
first_name | String | Required | |||
last_name | String | Required | |||
line1 | String | Required | |||
line2 | String | Required | |||
phone_number | String | Required | |||
region | String | Required | |||
locale | String | Required | (Recommended to be passed for optimum customer experience) | ||
platform | String | Required | The platform where the Tamara order is being initiated from e.g.,, web, mobile, etc. | ||
is_mobile | Boolean | Required | Whether the order is being initiated from a mobile device or not | ||
payment_type | String | Required only if single checkout is disabled | |||
instalments | Integer | Required only if single checkout is disabled | |||
expire_in_minutes | Integer | Required only if custom | Order expiry time in minutes | ||
additional_data | Object | Any additional order data information from the merchant side |
Request Payload Sample
{
"total_amount": {
"amount": 50.00,
"currency": "SAR"
},
"shipping_amount": {
"amount": 1,
"currency": "SAR"
},
"tax_amount": {
"amount": 7.35,
"currency": "SAR"
},
"order_reference_id": "abd12331-a123-1234-4567-473fkid5",
"risk_assessment": {
"is_premium_customer": true,
"account_creation_date": "31-01-2019",
"total_order_count": 12,
"risk_score": 5,
"date_first_paid": "31-01-2019",
"date_last_paid": "31-01-2026",
"order_count_last_24h": 0,
"account_security": {
"is_email_verified": true,
"is_phone_verified": true,
"password_last_changed": "31-01-2026",
"last_login_date": "31-01-2026",
"last_verification_method": "OTP",
"device_id": "#123",
"devices_linked": "2"
},
"hotels_itinerary": {
"checkin_date": "24-08-2025",
"checkout_date": "25-08-2025",
"number_of_guests": 2,
"name_of_guests": {
"guest1_name": "ABC DEF",
"guest2_name": "UVW XYZ"
},
"ticket_delivery_recipient": "[email protected]",
"number_of_rooms": 2,
"hotel_name": "Radisson",
"hotel_city": "Riyadh",
"hotel_country": "SA",
"hotel_room_class": "Standard",
"is_refundable_booking": "true",
"host": {
"host_registration_date": "24-08-2020",
"host_number_of_reservations": "15"
}
}
},
"consumer": {
"phone_number": "502223333",
"first_name": "Mona",
"last_name": "Lisa",
"email": "[email protected]"
},
"items": [
{
"total_amount": {
"amount": 304.04,
"currency": "SAR"
},
"reference_id": "SA-12436",
"type": "Digital",
"name": "Happy Hotel Reservation",
"sku": "SA-12436",
"quantity": 1,
"tax_amount": {
"amount": 0,
"currency": "SAR"
}
}
],
"country_code": "SA",
"description": "Test Hospitality Order",
"merchant_url": {
"cancel": "http://example.com/#/cancel",
"failure": "http://example.com/#/fail",
"success": "http://example.com/#/success"
},
"shipping_address": {
"country_code": "SA",
"first_name": "Mona",
"last_name": "Lisa",
"line1": "3764 Al Urubah Rd",
"line2": "string",
"region": "As Sulimaniyah",
"postal_code": "12345",
"city": "Riyadh",
"phone_number": "502223333"
},
"locale": "ar_SA",
"platform": "platform name here",
"is_mobile": false
}Updated about 1 hour ago
