> ## 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 /GiftCards

> Search and retrieve a paginated list of gift cards.

Search and retrieve a paginated list of gift cards. Use filters to narrow results by SKU, issue date, or status flags.

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

<ParamField query="Sku" type="string">Filter by SKU</ParamField>
<ParamField query="IssueDateUtcStart" type="string">Filter by issue date (start). Format: `yyyy-MM-ddTHH:mm:ss.fffZ`</ParamField>
<ParamField query="IssueDateUtcEnd" type="string">Filter by issue date (end). Format: `yyyy-MM-ddTHH:mm:ss.fffZ`</ParamField>
<ParamField query="IncludeCancelled" type="boolean">Include cancelled cards. Default: `false`</ParamField>
<ParamField query="IncludeRedeemed" type="boolean">Include fully redeemed cards. Default: `false`</ParamField>
<ParamField query="IncludeExpired" type="boolean">Include expired cards. Default: `false`</ParamField>
<ParamField query="Limit" type="integer">Number of records to return</ParamField>
<ParamField query="StartIndex" type="integer">Zero-based offset for pagination</ParamField>

<CodeGroup>
  ```shell curl theme={null}
  curl --location '[BASE_URL]/GiftCards?Limit=20&StartIndex=0&IncludeCancelled=false' \
  --header 'X-API-KEY: your_api_key_here'
  ```
</CodeGroup>

Response is a paginated result with `from`, `to`, `length`, and `items` (array of GiftCard).

**GiftCard fields**

| Field                   | Type     | Description                                                                              |
| ----------------------- | -------- | ---------------------------------------------------------------------------------------- |
| `cardNumber`            | string   | Format: `XXXXX-XXXXXXXX-XXXX`                                                            |
| `issuedDate`            | datetime | UTC issue date                                                                           |
| `expiryDate`            | datetime | UTC expiry date                                                                          |
| `amount`                | number   | Original balance                                                                         |
| `remainingAmount`       | number   | Remaining balance after redemptions                                                      |
| `status`                | string   | `Active`, `Cancelled`, `Redeemed`, `AwaitingPayment`, `PendingPostage`, `Expired`        |
| `paymentType`           | string   | `InHouse`, `Online`, `Complimentary`                                                     |
| `cardFormat`            | string   | `EGiftCard`, `PhysicalCard`, `ExperienceGiftCard`, `LSEGiftCard`, `LSExperienceGiftCard` |
| `experienceCardName`    | string   | Experience cards only                                                                    |
| `experienceCardDetails` | string   | Experience cards only                                                                    |
| `purchaserFirstName`    | string   | Purchaser first name                                                                     |
| `purchaserLastName`     | string   | Purchaser last name                                                                      |
| `purchaserEmail`        | string   | Purchaser email                                                                          |
| `recipientFirstName`    | string   | Recipient first name                                                                     |
| `recipientLastName`     | string   | Recipient last name                                                                      |
| `recipientEmail`        | string   | Recipient email                                                                          |

**Example 200 Response**

```json theme={null}
{
  "from": 0,
  "to": 1,
  "length": 1,
  "items": [
    {
      "cardNumber": "ABCDE-12345678-WXYZ",
      "issuedDate": "2024-01-10T09:00:00Z",
      "expiryDate": "2025-01-10T09:00:00Z",
      "amount": 100.00,
      "remainingAmount": 75.00,
      "status": "Active",
      "paymentType": "Online",
      "cardFormat": "EGiftCard",
      "purchaserFirstName": "John",
      "purchaserLastName": "Doe",
      "purchaserEmail": "john.doe@example.com",
      "recipientFirstName": "Jane",
      "recipientLastName": "Doe",
      "recipientEmail": "jane.doe@example.com"
    }
  ]
}
```

| Status | Description                         |
| ------ | ----------------------------------- |
| `200`  | Gift cards returned                 |
| `400`  | API key not associated with a venue |
| `400`  | `No Venue Subscribed to your App.`  |
| `401`  | X-API-KEY missing or invalid        |
| `429`  | Rate limit exceeded                 |


## OpenAPI

````yaml GET /GiftCards
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:
  /GiftCards:
    get:
      tags:
        - GiftCards
      summary: List Gift Cards
      operationId: listGiftCards
      parameters:
        - name: Sku
          in: query
          description: The Gift Card Sku.
          schema:
            type: string
        - name: IssueDateUtcStart
          in: query
          description: Filter on Gift Card Issued Start Date (UTC).
          schema:
            type: string
            format: date-time
        - name: IssueDateUtcEnd
          in: query
          description: Filter on Gift Card Issued End Date (UTC).
          schema:
            type: string
            format: date-time
        - name: IncludeCancelled
          in: query
          description: Include Cancelled cards in the range. Default true.
          schema:
            type: boolean
        - name: IncludeRedeemed
          in: query
          description: Include Redeemed cards in the range. Default true.
          schema:
            type: boolean
        - name: IncludeExpired
          in: query
          description: Include Expired cards in the range. Default true.
          schema:
            type: boolean
        - name: Limit
          in: query
          description: Max number of records to return, default is 100, max is 100.
          schema:
            maximum: 100
            minimum: 1
            type: integer
        - name: StartIndex
          in: query
          description: >-
            Number of matching records to skip before returning the matches,
            default is 0.
          schema:
            type: integer
            format: int32
        - name: X-API-KEY
          in: header
          description: API Key authentication header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GiftCardPaginatedResult'
        '500':
          description: Internal Server Error
      security:
        - ApiKeyAuth: []
components:
  schemas:
    GiftCardPaginatedResult:
      type: object
      properties:
        from:
          type: integer
          format: int64
        to:
          type: integer
          format: int64
        length:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: '#/components/schemas/GiftCard'
          nullable: true
      additionalProperties: false
    GiftCard:
      type: object
      properties:
        issuedDate:
          type: string
          format: date-time
        cardNumber:
          type: string
          description: 'The Card Number printed on the GiftCard. Format: XXXXX-XXXXXXXX-XXXX'
          nullable: true
        expiryDate:
          type: string
          format: date-time
        amount:
          type: number
          description: The Total Card balance (in decimal).
          format: double
        remainingAmount:
          type: number
          description: After Partial redeem(s) the remaining Card Balance (in decimal).
          format: double
        status:
          type: string
          description: >-
            Options: Active, Cancelled, Redeemed, AwaitingPayment,
            PendingPostage, Expired
          nullable: true
        paymentType:
          type: string
          description: 'Options: InHouse, Online, Complimentary'
          nullable: true
        cardFormat:
          type: string
          description: >-
            Options: EGiftCard, PhysicalCard, ExperienceGiftCard, LSEGiftCard,
            LSExperienceGiftCard
          nullable: true
        experienceCardName:
          type: string
          nullable: true
        experienceCardDetails:
          type: string
          nullable: true
        purchaserFirstName:
          type: string
          nullable: true
        purchaserLastName:
          type: string
          nullable: true
        purchaserEmail:
          type: string
          nullable: true
        recipientFirstName:
          type: string
          nullable: true
        recipientLastName:
          type: string
          nullable: true
        recipientEmail:
          type: string
          nullable: true
      additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````