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

# Create a terminal offer

> Create a terminal offer.



## OpenAPI

````yaml openapi-terminal.json POST /v1/terminal/offers
openapi: 3.1.0
info:
  title: Yorlet Terminal API
  description: APIs for managing terminal locations, offers, and readers.
  version: 1.0.0
servers:
  - url: https://api.yorlet.com
    description: Production
  - url: https://api.yorlet.io
    description: Sandbox
security: []
paths:
  /v1/terminal/offers:
    post:
      tags:
        - Terminal Offers
      summary: Create a terminal offer
      description: Create a terminal offer.
      operationId: terminal_offers_create
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                complimentary_item:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - drink
                        - menu_item
                      description: The type of complimentary item that is being offered.
                  required:
                    - type
                  description: >-
                    Details about the complimentary item offered. Required when
                    `type` is `complimentary_item`.
                discount:
                  type: object
                  properties:
                    amount_off:
                      type: integer
                      minimum: 0
                      description: >-
                        The amount, in cents, that will be discounted from the
                        customer’s spend.
                    min_spend:
                      type: integer
                      minimum: 0
                      description: >-
                        The minimum spend, in cents, required to redeem the
                        discount.
                    percent_off:
                      type: integer
                      minimum: 0
                      maximum: 100
                      description: >-
                        The percentage discount to apply to the customer’s
                        spend.
                  description: >-
                    Details about the discount offered. Required when `type` is
                    `discount`.
                expires_at:
                  type: integer
                  description: The date and time at which the offer expires.
                location:
                  type: string
                  minLength: 1
                  description: The ID of the location the offer applies to.
                max_redemptions:
                  type: number
                  description: The maximum number of times the offer can be redeemed.
                name:
                  type: string
                  minLength: 1
                  description: A name for the offer.
                trigger:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - move_in
                      description: The event that triggers the offer becoming available.
                  required:
                    - type
                  description: >-
                    A trigger that automatically grants the offer when an event
                    occurs.
                terms_of_service:
                  type: object
                  properties:
                    text:
                      type: string
                      minLength: 1
                      description: >-
                        The terms of service text shown to customers redeeming
                        the offer.
                  description: The terms of service that apply to the offer.
                type:
                  type: string
                  enum:
                    - complimentary_item
                    - discount
                  description: The type of the offer.
              required:
                - location
                - name
                - type
      responses:
        '200':
          description: Create a terminal offer
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique identifier for the object.
                  created:
                    type: number
                    description: >-
                      Time at which the object was created. Measured in seconds
                      since the Unix epoch.
                  account:
                    type: string
                    description: >-
                      The account that the object belongs to. Only returned if
                      the request is made with a valid Yorlet-Context header.
                  deleted:
                    type: boolean
                    default: false
                    description: Only returned if the object has been deleted.
                  object:
                    type: string
                    enum:
                      - terminal.offer
                  complimentary_item:
                    type:
                      - object
                      - 'null'
                    properties:
                      type:
                        type: string
                        enum:
                          - drink
                          - menu_item
                        description: The type of complimentary item that is being offered.
                    required:
                      - type
                    description: >-
                      Details about the complimentary item offered. Required
                      when `type` is `complimentary_item`.
                  discount:
                    type:
                      - object
                      - 'null'
                    properties:
                      amount_off:
                        type: integer
                        minimum: 0
                        description: >-
                          The amount, in cents, that will be discounted from the
                          customer’s spend.
                      min_spend:
                        type: integer
                        minimum: 0
                        description: >-
                          The minimum spend, in cents, required to redeem the
                          discount.
                      percent_off:
                        type: integer
                        minimum: 0
                        maximum: 100
                        description: >-
                          The percentage discount to apply to the customer’s
                          spend.
                    description: >-
                      Details about the discount offered. Required when `type`
                      is `discount`.
                  expires_at:
                    type:
                      - integer
                      - 'null'
                    description: The date and time at which the offer expires.
                  location:
                    anyOf:
                      - type: string
                      - type: object
                        additionalProperties: {}
                    description: The location the offer applies to.
                  max_redemptions:
                    type:
                      - number
                      - 'null'
                    description: The maximum number of times the offer can be redeemed.
                  name:
                    type: string
                    minLength: 1
                    description: A name for the offer.
                  status:
                    type: string
                    enum:
                      - active
                      - inactive
                      - expired
                    description: The status of the offer.
                  terms_of_service:
                    type: object
                    properties:
                      text:
                        type:
                          - string
                          - 'null'
                        minLength: 1
                        description: >-
                          The terms of service text shown to customers redeeming
                          the offer.
                    required:
                      - text
                    description: The terms of service that apply to the offer.
                  trigger:
                    type:
                      - object
                      - 'null'
                    properties:
                      type:
                        type: string
                        enum:
                          - move_in
                        description: The event that triggers the offer becoming available.
                    required:
                      - type
                    description: >-
                      A trigger that automatically grants the offer when an
                      event occurs.
                  type:
                    type: string
                    enum:
                      - complimentary_item
                      - discount
                    description: The type of the offer.
                required:
                  - id
                  - created
                  - object
                  - complimentary_item
                  - discount
                  - expires_at
                  - location
                  - max_redemptions
                  - name
                  - status
                  - terms_of_service
                  - trigger
                  - type
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API Key authentication. Use "Bearer YOUR_API_KEY".

````