> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.nowbookit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Booking

> Retrieve a single booking by its unique NowBookIt booking ID

<ParamField header="X-API-KEY" type="string" required>
  Your partner API key.
</ParamField>

## Path Parameters

<ParamField path="id" type="string" required>
  The NowBookIt booking ID. Obtained from [List Bookings](/bookings/list) or [Create Booking](/bookings/create).
</ParamField>

***

## Response

<ResponseField name="bookingId" type="string">
  Unique NowBookIt booking identifier.
</ResponseField>

<ResponseField name="locationId" type="string">
  NowBookIt venue/location identifier.
</ResponseField>

<ResponseField name="method" type="string">
  How the booking was created (e.g., `"online"`, `"phone"`, `"walkin"`, `"pos"`).
</ResponseField>

<ResponseField name="bookedAt" type="string">
  ISO 8601 timestamp of when the booking was originally created.
</ResponseField>

<ResponseField name="bookingTime" type="string">
  Booking datetime in venue local time.
</ResponseField>

<ResponseField name="duration" type="integer">
  Duration in minutes.
</ResponseField>

<ResponseField name="people" type="integer">
  Number of guests.
</ResponseField>

<ResponseField name="serviceId" type="string">
  NowBookIt service ID.
</ResponseField>

<ResponseField name="serviceName" type="string">
  Human-readable service name.
</ResponseField>

<ResponseField name="serviceType" type="string">
  Service type classification.
</ResponseField>

<ResponseField name="lastModifiedDate" type="string">
  ISO 8601 timestamp of the most recent modification.
</ResponseField>

<ResponseField name="notes" type="string">
  Booking notes.
</ResponseField>

<ResponseField name="customer" type="object">
  Customer/guest details

  <Expandable title="Customer Object">
    <ResponseField name="id" type="string">NowBookIt customer ID.</ResponseField>
    <ResponseField name="firstName" type="string">First name.</ResponseField>
    <ResponseField name="lastName" type="string">Last name.</ResponseField>
    <ResponseField name="company" type="string">Company name.</ResponseField>
    <ResponseField name="email" type="string">Email address.</ResponseField>
    <ResponseField name="phone" type="string">Phone number (international format).</ResponseField>
    <ResponseField name="phoneNational" type="string">Phone number (national format).</ResponseField>
    <ResponseField name="phone2" type="string">Secondary phone number.</ResponseField>
    <ResponseField name="address" type="string">Address.</ResponseField>
    <ResponseField name="birthdayDate" type="string">Customer birthday (ISO 8601 date).</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="tables" type="array">
  Tables assigned to this booking.

  <Expandable title="Table Object">
    <ResponseField name="tableId" type="string">NowBookIt table identifier.</ResponseField>
    <ResponseField name="tableName" type="string">Human-readable table name.</ResponseField>
    <ResponseField name="sectionId" type="string">Section the table belongs to.</ResponseField>
    <ResponseField name="sectionName" type="string">Human-readable section name.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="tags" type="array">
  Tags attached to the booking.

  <Expandable title="Tag Object">
    <ResponseField name="tagType" type="string">Tag category/type.</ResponseField>
    <ResponseField name="name" type="string">Tag value.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="status" type="object">
  Current booking status.

  <Expandable title="Status Object">
    <ResponseField name="statusType" type="string">Semantic type (e.g., `"confirmed"`, `"cancelled"`).</ResponseField>
    <ResponseField name="code" type="string">Venue-specific status code.</ResponseField>
    <ResponseField name="name" type="string">Human-readable status name.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="paymentSummary" type="object">
  Payment details for the booking.

  <Expandable title="Payment Summary Object">
    <ResponseField name="paymentType" type="string">Payment method (e.g., `"card"`, `"cash"`).</ResponseField>
    <ResponseField name="amount" type="number">Total amount charged.</ResponseField>
    <ResponseField name="amountDue" type="number">Amount still outstanding.</ResponseField>
    <ResponseField name="amountPaid" type="number">Amount already paid.</ResponseField>
    <ResponseField name="transactionId" type="string">Payment gateway transaction ID.</ResponseField>
    <ResponseField name="currencyCode" type="string">ISO 4217 currency code (e.g., `"AUD"`).</ResponseField>
    <ResponseField name="paymentDate" type="string">ISO 8601 timestamp of payment.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="items" type="array">
  Pre-ordered or pre-paid items on this booking.

  <Expandable title="Item Object">
    <ResponseField name="name" type="string">Item name.</ResponseField>
    <ResponseField name="label" type="string">Display label.</ResponseField>
    <ResponseField name="price" type="number">Unit price.</ResponseField>
    <ResponseField name="quantity" type="integer">Quantity ordered.</ResponseField>
    <ResponseField name="paymentType" type="string">Payment type for this item.</ResponseField>
    <ResponseField name="extras" type="array">Additional item modifiers/options.</ResponseField>
  </Expandable>
</ResponseField>

***

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://{base_url}/Bookings/bk_abc123 \
    -H "X-API-KEY: your_api_key"
  ```

  ```javascript Node.js theme={null}
  const bookingId = "bk_abc123";
  const response = await fetch(`https://{base_url}/Bookings/${bookingId}`, {
    headers: { "X-API-KEY": "your_api_key" },
  });

  if (response.status === 404) {
    console.error("Booking not found");
  } else {
    const booking = await response.json();
    console.log(booking);
  }
  ```

  ```python Python theme={null}
  import requests

  booking_id = "bk_abc123"
  response = requests.get(
      f"https://{{base_url}}/Bookings/{booking_id}",
      headers={"X-API-KEY": "your_api_key"}
  )

  if response.status_code == 404:
      print("Booking not found")
  else:
      print(response.json())
  ```
</CodeGroup>

### Example Response (200)

```json theme={null}
{
  "bookingId": "bk_abc123",
  "locationId": "loc_xyz789",
  "method": "online",
  "bookedAt": "2024-05-28T09:14:22Z",
  "bookingTime": "2024-06-15T19:00:00",
  "duration": 90,
  "people": 4,
  "serviceId": "svc_dinner",
  "serviceName": "Dinner",
  "serviceType": "standard",
  "lastModifiedDate": "2024-06-01T10:30:00Z",
  "notes": "Birthday celebration — window table preferred",
  "customer": {
    "id": "cust_111",
    "firstName": "Jane",
    "lastName": "Smith",
    "company": null,
    "email": "jane.smith@example.com",
    "phone": "+61412345678",
    "phoneNational": "0412 345 678",
    "phone2": null,
    "address": null,
    "birthdayDate": null
  },
  "tables": [
    {
      "tableId": "tbl_001",
      "tableName": "Table 5",
      "sectionId": "sec_main",
      "sectionName": "Main Floor"
    }
  ],
  "tags": [
    { "tagType": "occasion", "name": "Birthday" }
  ],
  "status": {
    "statusType": "confirmed",
    "code": "CNF",
    "name": "Confirmed"
  },
  "paymentSummary": {
    "paymentType": "card",
    "amount": 40.00,
    "amountDue": 0.00,
    "amountPaid": 40.00,
    "transactionId": "txn_9876",
    "currencyCode": "AUD",
    "paymentDate": "2024-05-28T09:14:50Z"
  },
  "items": []
}
```

***

## Status Codes

| Code  | Description                    |
| ----- | ------------------------------ |
| `200` | Success                        |
| `400` | Invalid request                |
| `401` | Invalid or missing `X-API-KEY` |
| `404` | Booking not found              |
| `429` | Rate limit exceeded            |


## OpenAPI

````yaml GET /Bookings/{id}
openapi: 3.0.4
info:
  title: NowBookIt IPOS Partner API
  description: >-
    REST API for integrating your POS or external system with NowBookIt's
    reservation, sales, and gift card platform.
  version: v1
  contact:
    email: platform.integrations@nowbookit.com
servers:
  - url: https://ipos.dev.nowbookit.com
    description: Development
  - url: https://ipos.nowbookit.com
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /Bookings/{id}:
    get:
      tags:
        - Bookings
      summary: Get Booking
      operationId: getBooking
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: X-API-KEY
          in: header
          description: API Key authentication header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Get Booking By Id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingModel'
        '404':
          description: >-
            Unable to find the Location Id for the POS or no Venue is subscribed
            to the Location.
        '500':
          description: An error occurred when retrieving bookings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    BookingModel:
      type: object
      properties:
        locationId:
          type: string
          description: The Pos System Location Id for the Venue.
          nullable: true
        bookingId:
          type: string
          description: The Unique booking id.
          nullable: true
        method:
          type: string
          description: The method used for booking.
          nullable: true
        bookedAt:
          type: string
          description: The UTC Date & Time when the booking was made.
          nullable: true
        bookingTime:
          type: string
          description: The booking time.
          nullable: true
        duration:
          type: integer
          description: Duration of Booking in minutes.
          format: int32
        people:
          type: integer
          description: Total number of people in booking.
          format: int32
        customer:
          $ref: '#/components/schemas/BookingModelCustomer'
        tables:
          type: array
          items:
            $ref: '#/components/schemas/BookingTable'
          nullable: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          nullable: true
        status:
          $ref: '#/components/schemas/BookingStatus'
        notes:
          type: string
          nullable: true
        paymentSummary:
          $ref: '#/components/schemas/PaymentSummary'
        serviceId:
          type: string
          nullable: true
        lastModifiedDate:
          type: string
          nullable: true
        serviceName:
          type: string
          nullable: true
        serviceType:
          type: string
          nullable: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
          nullable: true
      additionalProperties: false
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    BookingModelCustomer:
      type: object
      properties:
        id:
          type: string
          description: The NBI Customer unique Id.
          nullable: true
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        company:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        phone:
          type: string
          description: Phone including international code.
          nullable: true
        address:
          $ref: '#/components/schemas/Address'
        phoneNational:
          type: string
          nullable: true
        phone2:
          type: string
          nullable: true
        birthdayDate:
          type: integer
          format: int32
          nullable: true
        birthdayMonth:
          type: integer
          format: int32
          nullable: true
        birthdayYear:
          type: integer
          format: int32
          nullable: true
        notes:
          type: string
          nullable: true
        noShowCount:
          type: integer
          format: int32
          nullable: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/CustomerTag'
          nullable: true
        subscribed:
          type: boolean
          description: The Customer Email Subscription status
        lastModifiedDate:
          type: string
          nullable: true
      additionalProperties: false
    BookingTable:
      type: object
      properties:
        tableId:
          type: string
          nullable: true
        tableName:
          type: string
          nullable: true
        sectionId:
          type: string
          nullable: true
        sectionName:
          type: string
          nullable: true
      additionalProperties: false
    Tag:
      type: object
      properties:
        tagType:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
      additionalProperties: false
    BookingStatus:
      type: object
      properties:
        statusType:
          type: string
          nullable: true
        code:
          type: string
          description: The Booking Status Code.
          nullable: true
        name:
          type: string
          description: The Booking Status string.
          nullable: true
      additionalProperties: false
    PaymentSummary:
      type: object
      properties:
        paymentType:
          type: string
          nullable: true
        amount:
          type: number
          format: double
        amountDue:
          type: number
          format: double
        transactionId:
          type: string
          nullable: true
        currencyCode:
          type: string
          nullable: true
        amountPaid:
          type: number
          format: double
        paymentDate:
          type: string
          nullable: true
      additionalProperties: false
    OrderItem:
      type: object
      properties:
        name:
          type: string
          nullable: true
        label:
          type: string
          nullable: true
        price:
          type: number
          format: double
        quantity:
          type: integer
          format: int32
        paymentType:
          type: string
          nullable: true
        extras:
          type: array
          items:
            $ref: '#/components/schemas/ExtraOrderItem'
          nullable: true
      additionalProperties: false
    Address:
      type: object
      properties:
        line1:
          type: string
          nullable: true
        line2:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        postalCode:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
      additionalProperties: false
    CustomerTag:
      type: object
      properties:
        id:
          type: string
          nullable: true
        identifier:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
      additionalProperties: false
    ExtraOrderItem:
      type: object
      properties:
        name:
          type: string
          nullable: true
        label:
          type: string
          nullable: true
        price:
          type: number
          format: double
        quantity:
          type: integer
          format: int32
        paymentType:
          type: string
          description: >-
            Available values: PreAuth, Deposit, FullPayment, FunctionPayment,
            NoPayment
          nullable: true
      additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````