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 | |||
| amount | Number | ||||
| currency | String | ||||
| 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 18 days ago
