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

# Get offer

> Retrieves an offer by its ID.



## OpenAPI

````yaml https://api.sibipro.com/offers/openapi.json get /{id}
openapi: 3.0.0
info:
  title: Offers API
  version: 1.0.0
  description: RESTful API for managing offers
servers:
  - url: https://api.sibipro.com/prod/offers
    description: API endpoint
security: []
paths:
  /{id}:
    get:
      summary: Get offer
      description: Retrieves an offer by its ID.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: The ID of the offer to retrieve
      responses:
        '200':
          description: Offer retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOfferResponse'
        '401':
          description: Unauthorized - Missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unauthorized:
                  value:
                    code: UNAUTHORIZED
                    message: Missing authentication token
        '403':
          description: Forbidden - Caller is not allowed to view this offer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                permissionDenied:
                  value:
                    code: FORBIDDEN
                    message: User does not have permission to view this offer
        '404':
          description: Not found - Offer does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                notFound:
                  value:
                    code: OFFER_NOT_FOUND
                    message: Offer not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                serverError:
                  value:
                    code: INTERNAL_SERVER_ERROR
                    message: An unexpected error occurred
components:
  schemas:
    GetOfferResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the offer
          example: offer-123
        orderIds:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            The unique identifiers of the associated orders created from an
            offer decision. Will be omitted/null if no order exists
        thirdPartyId:
          type: string
          nullable: true
          description: >-
            External system identifier for this offer. May be omitted or empty
            when not available
          example: ext-123
        customerName:
          type: string
          description: The full name of the customer associated with this offer
        customerEmail:
          type: string
          description: The email address of the customer associated with this offer
        customerPhone:
          type: string
          description: The phone number of the customer associated with this offer
        fullAddress:
          type: string
          nullable: true
          description: The complete formatted address for the offer property
        line1:
          type: string
          description: The first line of the property address (street address)
        line2:
          type: string
          nullable: true
          description: >-
            The second line of the property address (unit, suite, etc.). May be
            omitted or empty when not applicable
        city:
          type: string
          description: The city of the property address
        stateOrProvince:
          type: string
          description: The state or province of the property address
        postalCode:
          type: string
          description: The postal or ZIP code of the property address
        status:
          type: string
          enum:
            - pending
            - awaiting_customer
            - canceled
            - buyout_accepted
            - order_placed
            - expired
            - unknown
          description: Current offer status
          example: pending
        generatingUpsells:
          type: boolean
          description: >-
            Deprecated — use `processing`. True while upsells are still being
            generated asynchronously.
          deprecated: true
          example: true
        processing:
          type: boolean
          description: >-
            True while the offer’s asynchronous post-create pipeline (credit
            calculation and, if requested, upsell generation) is still running.
            The offer cannot be sent until this is false. Poll this endpoint
            until it clears.
          example: true
        acceptedByRole:
          type: string
          nullable: true
          enum:
            - curator
            - customer
          description: >-
            The role of the person who accepted or processed the offer. Will be
            omitted/null if the offer has not been accepted
        offerSentAt:
          type: string
          nullable: true
          description: >-
            The timestamp when the offer was sent to the customer in ISO 8601
            format
        selectedOffering:
          type: array
          nullable: true
          items:
            type: object
            properties:
              productId:
                type: string
                description: The identifier of the selected product
              curatorSelectedAddons:
                type: array
                items:
                  type: object
                  properties:
                    addonId:
                      type: string
                      description: The identifier of the addon product
                  required:
                    - addonId
                description: >-
                  Array of addons included by the curator for this product
                  selection
              customerSelectedAddons:
                type: array
                items:
                  type: object
                  properties:
                    addonId:
                      type: string
                      description: The identifier of the addon product
                  required:
                    - addonId
                description: >-
                  Array of addons explicitly selected by the customer for this
                  product selection
            required:
              - productId
          description: >-
            An array of selected offering objects, each containing the chosen
            products and any selected addons. This is the offering that was
            chosen by the customer or by the curator on behalf of the customer.
            If the offer is in a status that is not order_placed, this will be
            omitted/null
        offerings:
          type: array
          items:
            type: object
            properties:
              products:
                type: array
                items:
                  type: object
                  properties:
                    productId:
                      type: string
                      description: >-
                        The identifier of a product associated with this
                        offering option
                    curatorSelectedAddons:
                      type: array
                      items:
                        type: object
                        properties:
                          addonId:
                            type: string
                            description: The identifier of the addon product
                        required:
                          - addonId
                      description: >-
                        Array of addons included by the curator for this
                        offering product
                  required:
                    - productId
            required:
              - products
          description: >-
            An array of offering options presented in this offer. When the offer
            is initially created and the status is pending, only the isIncluded
            product may be present. Upsells are generated asynchronously and may
            not be present until the offer is updated
        buyoutAmountCents:
          type: number
          nullable: true
          description: >-
            The amount given to the customer for their buyout option on this
            offer, represented in cents
          example: 50000
        creditAmountCents:
          type: number
          nullable: true
          description: >-
            The amount of credit applied to this offer, represented in cents.
            May be omitted/null when no credit is applied or when the offer has
            no upsells
          example: 75000
        companySpendCents:
          type: number
          description: >-
            The amount the company will spend on this offer, represented in
            cents
        customerSpendCents:
          type: number
          nullable: true
          description: >-
            The amount the customer will spend on this offer, represented in
            cents
        offerPricingBreakdown:
          type: object
          nullable: true
          properties:
            subtotal:
              type: number
              description: >-
                The subtotal amount for the offer checkout, represented in
                cents. null if unavailable
            tax:
              type: number
              description: >-
                The tax amount for the offer checkout, represented in cents.
                null if unavailable
            total:
              type: number
              description: >-
                The total amount for the offer checkout, represented in cents.
                null if unavailable
            discounts:
              type: array
              items:
                type: object
                properties:
                  amount:
                    type: number
                    description: The discount amount, represented in cents
                required:
                  - amount
              description: An array of discount objects applied to the offer checkout
            fees:
              type: array
              items:
                type: object
                properties:
                  amount:
                    type: number
                    description: The fee amount, represented in cents
                required:
                  - amount
              description: An array of fee objects applied to the offer checkout
            pricedItems:
              type: array
              nullable: true
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: The unique identifier of the priced item
                  title:
                    type: string
                    description: The title/name of the priced item
                  purchasePrice:
                    type: number
                    description: The purchase price of the item, represented in cents
                  addons:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        title:
                          type: string
                        purchasePrice:
                          type: number
                      required:
                        - id
                        - title
                        - purchasePrice
                required:
                  - id
                  - title
                  - purchasePrice
              description: An array of items included in the offer checkout pricing
          required:
            - subtotal
            - tax
            - total
            - discounts
            - fees
            - pricedItems
          description: >-
            Detailed pricing breakdown for the offer checkout, including
            subtotal, tax, total, discounts, fees, and priced items. Represents
            the customer pricing shown at checkout. Will be omitted/null if no
            offer checkout pricing data is available
      required:
        - id
        - orderIds
        - thirdPartyId
        - customerName
        - customerEmail
        - customerPhone
        - fullAddress
        - line1
        - line2
        - city
        - stateOrProvince
        - postalCode
        - status
        - generatingUpsells
        - processing
        - acceptedByRole
        - offerSentAt
        - selectedOffering
        - offerings
        - buyoutAmountCents
        - creditAmountCents
        - companySpendCents
        - customerSpendCents
        - offerPricingBreakdown
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code indicating the type of error
        message:
          type: string
          description: Human-readable error message explaining what went wrong
          example: The request contains invalid parameters
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              error:
                type: string
            required:
              - field
              - error
          description: Detailed validation errors when applicable
          example:
            - field: customer.email
              error: Invalid email
            - field: address.postalCode
              error: Invalid
      required:
        - code
        - message

````