---
title: "Create In-store Checkout Session"
method: POST
path: "/checkout/in-store-session"
tags: ["In-Store Checkout"]
---

# Create In-store Checkout Session

`POST /checkout/in-store-session`

This endpoint facilitates the creation of an In-Store checkout session, where all payment information is sent within the request to send a payment link via SMS message, enabling customer payments via Tamara. <br /> <br /> Please store the `order_id` and `checkout_id` received in response in your DBs as they might be needed later.

## Request body

- object
  - `total_amount` object, required — Total amount to be charged to consumer.
    - `amount` number
    - `currency` 'SAR' | 'AED' | 'BHD' | 'KWD' | 'OMR'
  - `phone_number` string, required — The customer's phone number, on which the customer will receive an SMS containing a payment link. This will be used to complete the transaction via Tamara.
  - `email` string, email — The customer's email address, designated to receive the payment link. Serves as a backup option in case of mobile coverage issues affecting the phone number.
  - `order_reference_id` string, required — The unique order id from merchant side, this will be used with the settlement and reports
  - `order_number` string — Unique order ID from the merchant's side, which will be used for settlement and reporting purposes. Can be modified after the checkout session is created.
  - `items` object[], required
    - `name` string, required — Product name. `<=255 characters`.
    - `quantity` number, required — How many of this specific item is being purchased
    - `type` string, required
    - `reference_id` string, required — The unique id of the item from merchant's side
    - `sku` string, required — Product SKU. **`<= 128 characters`**
    - `item_url` string, uri — URL of the item from merchant's website. **`<= 1024 characters`**
    - `image_url` string, uri — URL to an image of the product that can be later displayed to the customer. **`<= 1024 characters`** <br /> **Size** = 2-3 MB maximum <br /> **Resolution** WxH = 1024xY (the Y height of image should be small).
    - `unit_price` object
      - `amount` number
      - `currency` 'SAR' | 'AED' | 'BHD' | 'KWD' | 'OMR'
    - `tax_amount` object
      - `amount` number
      - `currency` 'SAR' | 'AED' | 'BHD' | 'KWD' | 'OMR'
    - `discount_amount` object
      - `amount` number
      - `currency` 'SAR' | 'AED' | 'BHD' | 'KWD' | 'OMR'
    - `total_amount` object, required
      - `amount` string
      - `currency` 'SAR' | 'AED' | 'BHD' | 'KWD' | 'OMR'
  - `locale` 'ar_SA' | 'en_US' — Display language for Tamara checkout page. Language to be defined by the merchant following RFC 1766, e.g `en_US` or `ar_SA`. Default is set to Arabic if value not passed and customer is new. If customer already exists and locale is not passed then customer's preference will be taken into account.
  - `payment_type` 'PAY_BY_INSTALMENTS' | 'PAY_NOW' — The payment method offered by Tamara that you want to offer to your customer for this checkout session.
  - `expiry_time` integer — Order expiry time in minutes, min 5 minutes, max 1440 (one day). By default this key will be ignored, and default value of 15 mins is used, **Please contact our support team to enable this feature**.
  - `additional_data` object — Additional order data information from the merchant side
    - `store_code` string, required — The unique store code/name from which request is called

## Response `200`

Checkout Session Created

- object
  - `checkout_id` string, uuid
  - `order_id` string, uuid
  - `checkout_deeplink` string

## Other responses

- `400` — Unsupported Country/Currency

---

[API](https://skmtc.net/tamara/apis/tamara-public-apis-v1-0.md) · [All operations](https://skmtc.net/tamara/apis/tamara-public-apis-v1-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tamara/tamara-public-apis-v1-0/revisions/924ade2a1159/schema)
