openapi: 3.1.0
info:
  title: Limio Commerce API
  description: A collection of APIs designed for interacting with Limio services.
  version: 1.0.0
  x-logo:
    url: https://custom-images.strikinglycdn.com/res/hrscywv4p/image/upload/c_limit,fl_lossy,h_200,w_200,f_auto,q_auto/1156184/637770_576700.png
    backgroundColor: white
  contact:
    email: support@limio.com
    url: https://docs.limio.com
servers:
  - url: https://{tenant}/api
    variables:
      tenant:
        default: your-environment.prod.limio.com
tags:
  - name: Send Orders
    description: APIs related to sending Limio Orders
  - name: Subscription
    description: APIs related to Limio Subscriptions
  - name: Identities
    description: APIs related to Limio Identities
  - name: Basket
    description: APIs related to retrieving Limio Baskets
  - name: Get Objects
    description: APIs related to retrieving Limio Objects
  - name: Update Objects
    description: APIs related to updating Limio Objects
  - name: Create Objects
    description: APIs related to creating Limio Objects
  - name: Get Catalog Items
    description: APIs related to retrieving Limio Catalog Items
  - name: Update Catalog Items
    description: APIs related to updating Limio Catalog Items
  - name: Build
    description: APIs related to building Limio Campaigns and pages
  - name: Publish
    description: APIs related to publishing Limio Campaigns and pages
  - name: Session
    description: APIs related to User Sessions
  - name: Sync Zuora Data
    description: APIs related to syncing Zuora Data
  - name: Journeys V2
    description: APIs related to Limio JourneysV2
  - name: Partner Management
    description: APIs related to managing partner organisations and users
  - name: Get Objects For Partner
    description: APIs to fetch objects for partner organisations
paths:
  /order:
    post:
      operationId: sendOrder
      summary: Submit Order
      tags:
        - Send Orders
      description: Submit an order directly to Limio. This will apply the changes immediately and can be used to update a subscription, change the offer, or update customer details.
      security:
        - bearerAuth:
            - checkout
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateSubscription'
                - $ref: '#/components/schemas/CreateGiftSubscription'
                - $ref: '#/components/schemas/RedeemGiftSubscription'
                - $ref: '#/components/schemas/UpdateCustomerDetails'
                - $ref: '#/components/schemas/ChangeAddress'
                - $ref: '#/components/schemas/ChangeOffer'
                - $ref: '#/components/schemas/ChangeDefaultZuoraPaymentMethod'
                - $ref: '#/components/schemas/DeletePaymentMethod'
                - $ref: '#/components/schemas/AddOffer'
                - $ref: '#/components/schemas/CancelSubscription'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
        '502':
          $ref: '#/components/responses/502Response'
  /admin/order:
    post:
      operationId: sendAdminOrder
      summary: Submit Order as Admin
      tags:
        - Send Orders
      description: Submit an order using management credentials. Admin users can optionally include a partner organisation to attribute the order to and run partner-specific eligibility checks and associate the order, and all its related objects with the partner organisation.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/AdminOrderExtension'
                - $ref: '#/components/schemas/CreateSubscription'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '400':
          description: Invalid partner organisation or malformed order payload.
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
        '502':
          $ref: '#/components/responses/502Response'
  /order/preview:
    post:
      operationId: previewOrder
      summary: Preview Order
      description: Preview an order in Limio to see the changes that will be applied. This can be used to show the user what will happen before they confirm the order, including changes to future charges, the effective date of the change, and any other details. Supports previewing new subscriptions, offer changes, cancellations, credit memos, gift refunds, and subscription updates.
      tags:
        - Send Orders
      security:
        - bearerAuth:
            - checkout
      requestBody:
        required: true
        content:
          application/json:
            schema:
              discriminator:
                propertyName: order_type
                mapping:
                  change_offer: '#/components/schemas/ChangeOffer'
                  add_offer: '#/components/schemas/AddOffer'
                  update_subscription: '#/components/schemas/UpdateSubscription'
                  cancel_subscription: '#/components/schemas/CancelSubscription'
                  gift_refund: '#/components/schemas/GiftRefund'
                  credit_memo: '#/components/schemas/CreditMemo'
                  new: '#/components/schemas/CreateSubscription'
              oneOf:
                - $ref: '#/components/schemas/ChangeOffer'
                - $ref: '#/components/schemas/AddOffer'
                - $ref: '#/components/schemas/UpdateSubscription'
                - $ref: '#/components/schemas/CancelSubscription'
                - $ref: '#/components/schemas/GiftRefund'
                - $ref: '#/components/schemas/CreditMemo'
                - $ref: '#/components/schemas/CreateSubscription'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwitchPreviewResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
        '502':
          $ref: '#/components/responses/502Response'
  /objects/{service}/{path_type}/{id}:
    parameters:
      - $ref: '#/components/parameters/service'
      - $ref: '#/components/parameters/path_type'
      - $ref: '#/components/parameters/id'
    put:
      operationId: updateObject
      summary: Update Object
      description: This API allows you to update objects in Limio. You can update a subscription, customer, order, identity, address, schedule, payment method, subscription offer, promo code, or user entitlement. It is designed to be flexible and allow you to update any field in the object.
      tags:
        - Update Objects
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateObject'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateObjectResponse'
        '400':
          description: Bad request (missing required fields)
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
    get:
      operationId: getObject
      summary: Get Object
      description: These APIs allow you to retrieve specific objects in Limio. You can get a subscription, customer, order, identity, address, schedule, payment method, subscription offer, user entitlement, event or process event object. You can also get a list of objects of a specific type using the Get Objects API.
      tags:
        - Get Objects
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/GetSubscriptionObjectResponse'
                  - $ref: '#/components/schemas/GetCustomerObjectResponse'
                  - $ref: '#/components/schemas/GetOrderObjectResponse'
                  - $ref: '#/components/schemas/GetIdentityObjectResponse'
                  - $ref: '#/components/schemas/CustomerAddress'
                  - $ref: '#/components/schemas/GetScheduleObjectResponse'
                  - $ref: '#/components/schemas/GetPaymentMethodObjectResponse'
                  - $ref: '#/components/schemas/GetPromoCodeV2ObjectResponse'
                  - $ref: '#/components/schemas/GetSubscriptionOfferObjectResponse'
                  - $ref: '#/components/schemas/GetUserEntitlementObjectResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
    delete:
      operationId: deleteObject
      summary: Delete Object
      description: This API allows you to delete objects in Limio. Currently, only promo codes v2 are deleted via this API.
      tags:
        - Update Objects
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteObjectResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
        '502':
          $ref: '#/components/responses/502Response'
  /objects/{service}/{path_type}:
    get:
      operationId: getObjects
      summary: Get Objects
      description: These APIs allow you to retrieve a list of objects of a specific type in Limio. You can get a subscription, customer, order, identity, address, schedule, payment method, subscription offer, user entitlement, event or process event objects. Each object is returned with a summary of its data. To fetch all of the object data, use the retrieved object ID with the Get Object API.
      parameters:
        - $ref: '#/components/parameters/service'
        - $ref: '#/components/parameters/path_type'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/queryMore'
      tags:
        - Get Objects
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/GetOrderObjectsResponse'
                  - $ref: '#/components/schemas/GetSubscriptionObjectsResponse'
                  - $ref: '#/components/schemas/GetCustomerObjectsResponse'
                  - $ref: '#/components/schemas/GetIdentityObjectsResponse'
                  - $ref: '#/components/schemas/GetCustomerAddressObjectsResponse'
                  - $ref: '#/components/schemas/GetScheduleObjectsResponse'
                  - $ref: '#/components/schemas/GetPaymentMethodObjectsResponse'
                  - $ref: '#/components/schemas/GetPromoCodeV2ObjectsResponse'
                  - $ref: '#/components/schemas/GetSubscriptionOfferObjectsResponse'
                  - $ref: '#/components/schemas/GetUserEntitlementObjectsResponse'
                  - $ref: '#/components/schemas/GetEventObjectsResponse'
                  - $ref: '#/components/schemas/GetProcessEventObjectsResponse'
                properties:
                  queryMore:
                    type: string
                    example: eyJjcmVhdGVkIjoiMjAyNC0wMy0wMVQwMTozNjowOC43MjVaIiwic29ydF9rZXkiOiJvYmplY3Qvc3Vic2NyaXB0aW9uIiwiaGFzaCI6ImVjb25vbWlzdC1iYXUtcHJlcHJvZC9wcm9kdWN0aW9uL2xpbWlvL3N1Yi02YjExOTliOTkzYTQyNDdmZDgwNTRlMWFkNzZiOGVjOSIsInJlY29yZF90eXBlIjoiZWNvbm9taXN0LWJhdS1wcmVwcm9kL3Byb2R1Y3Rpb24vbGltaW8vc3Vic2NyaXB0aW9uIn0=
                    description: A token to retrieve the next set of results. If there are no more results, this field will not be returned.
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/{service}/{path_type}/{id}/related:
    get:
      operationId: getObjectRelationships
      summary: Get Object Relationships
      parameters:
        - $ref: '#/components/parameters/service'
        - $ref: '#/components/parameters/path_type'
        - $ref: '#/components/parameters/id'
      description: This API allows you to get objects related to a specific object in Limio. You can get related objects of a subscription, customer, order, identity, address, schedule, payment method, subscription offer, or user entitlement.
      security:
        - bearerAuth:
            - checkout
      tags:
        - Get Objects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelatedObjectsResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/{service}/{path_type}/{id}/related/{record_type}:
    parameters:
      - $ref: '#/components/parameters/service'
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/path_type'
    get:
      operationId: getObjectRelationshipsByRecordType
      summary: Get Object Relationships By Record Type
      description: This API allows you to get objects related to a specific object of provided path type from a provided service using the object's ID. You can get related objects of a subscription, customer, order, identity, address, schedule, payment method, subscription offer, or user entitlement.
      parameters:
        - $ref: '#/components/parameters/record_type'
      security:
        - bearerAuth:
            - checkout
      tags:
        - Get Objects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelatedObjectsResponse'
        '401':
          $ref: '#/components/responses/401Response'
    post:
      operationId: addObjectRelationship
      summary: Add Object Relationship
      description: This API allows you to add a related identity object to a specific object of provided path type from a provided service using the object's ID. You can add related objects of a subscription, customer, order, identity, address, schedule, payment method, subscription offer, or user entitlement.
      security:
        - bearerAuth:
            - checkout
      tags:
        - Update Objects
      parameters:
        - in: path
          name: record_type
          required: true
          description: Only identity is allowed
          schema:
            type: string
            default: identity
      requestBody:
        description: Send order request
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Related Object Request
              properties:
                id:
                  type: string
                  description: The identity to which you want to link the object to
                  example: identity-bcc1997b17b7824caf86b06451904fb8
                service:
                  type: string
                  description: The service of the identity
                  example: limio
                  enum:
                    - limio
                    - zuora
                    - salesforce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: 'null'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/{service}/{path_type}/{id}/objects:
    get:
      parameters:
        - $ref: '#/components/parameters/service'
        - $ref: '#/components/parameters/path_type'
        - $ref: '#/components/parameters/id'
      operationId: getObjectSubType
      summary: Get Object Subtype
      description: This API allows you to retrieve all children objects of a parent object using the object's ID. You can get a subscription, customer, order, identity, address, schedule, payment method, subscription offer, or user entitlement. Each object is returned with a summary of its data. To fetch all of the object data, use the retrieved object ID with the Get Object API.
      security:
        - bearerAuth:
            - checkout
      tags:
        - Get Objects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetObjectSubTypeResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/{service}/{path_type}/{id}/objects/{subtype}:
    get:
      parameters:
        - $ref: '#/components/parameters/service'
        - $ref: '#/components/parameters/path_type'
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/subtype'
      operationId: getObjectSubTypeByRecordType
      summary: Get Object Subtype By Record Type
      description: This API allows you to retrieve specific children objects, that match the provided record_type, of a parent object using the object's ID. You can get a subscription, customer, order, identity, address, schedule, payment method, subscription offer, or user entitlement. Each object is returned with a summary of its data. To fetch all of the object data, use the retrieved object ID with the Get Object API.
      security:
        - bearerAuth:
            - checkout
      tags:
        - Get Objects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetObjectSubTypeResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/{service}/{path_type}/{id}/events:
    get:
      parameters:
        - $ref: '#/components/parameters/service'
        - $ref: '#/components/parameters/path_type'
        - $ref: '#/components/parameters/id'
      operationId: getObjectEvents
      summary: Get Object Events
      description: This API allows you to get events associated with a specific object of provided path type from a provided service using the object's ID. You can get events of a subscription, customer, order, identity, address, schedule, payment method, subscription offer, or user entitlement. Events are actions that have been performed and are related to the object. Commonly this will be used to see events related to a subscription, such as creating or updating a susbcription.
      security:
        - bearerAuth:
            - checkout
      tags:
        - Get Objects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetObjectEventsResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/limio/promo_codes_v2:
    post:
      operationId: createPromoCodeObjects
      summary: Create Promo Code Objects
      description: This API allows you to create a new promo code object in Limio. Only promo codes v2 are supported.
      tags:
        - Create Objects
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePromoCodeObjects'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateObjectsResponse'
        '400':
          description: Bad request (missing required fields)
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
  /objects/owner_change:
    post:
      summary: Transfer Limio owner
      description: This API allows a Limio administrator to transfer ownership of all objects from one owner to another. - The **source owner** is the current owner of the objects being transferred. - The **destination owner** will become the new owner of these objects. - Both the source and destination owners must use the **"@limio/id"** format. **Important:** This transfer only moves ownership of the objects. The **source owner's ID itself is not transferred or changed**.
      operationId: transferOwnership
      tags:
        - Identities
      security:
        - bearerAuth:
            - OAuth
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferOwnershipRequest'
      responses:
        '200':
          description: All objects successfully transferred to the destination owner.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferOwnershipResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/externalidentity/{owner}:
    post:
      summary: Add external identity (Admin)
      description: |-
        This API allows a Limio administrator to add an external identity to any Limio identity on behalf of an organization. It is intended for administrative purposes and requires full OAuth API key authentication.
        **Use Case:** Admins can link external identities to any owner without needing the user to be logged in.
        **Authentication:** This API uses OAuth bearer tokens.  See [Limio OAuth Authentication](https://developers.limio.com/api-docs/authentication-overview/oauth-bearer-token) for details.
      operationId: addExternalIdentityAdmin
      tags:
        - Identities
      security:
        - bearerAuth:
            - OAuth
      parameters:
        - in: path
          name: owner
          description: The ID of the Limio owner to which the external identity will be linked.
          required: true
          schema:
            type: string
            example: id-23252f4950f5efe7de30de37da283149
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalIdentityRequest'
      responses:
        '200':
          description: External identity successfully linked to the specified owner.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddExternalIdentityResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
    delete:
      summary: Remove external identity (Admin)
      description: |-
        This API allows a Limio administrator to remove an external identity from any Limio identity on behalf of an organization. It is intended for administrative purposes and requires full OAuth API key authentication.
        **Use Case:** Admins can unlink external identities from any owner without the user being logged in.
        **Authentication:** This API uses OAuth bearer tokens.  See [Limio OAuth Authentication](https://developers.limio.com/api-docs/authentication-overview/oauth-bearer-token) for details.
      operationId: removeExternalIdentityAdmin
      tags:
        - Identities
      security:
        - bearerAuth:
            - OAuth
      parameters:
        - in: path
          name: owner
          description: The ID of the Limio owner from which the external identity will be removed.
          required: true
          schema:
            type: string
            example: id-23252f4950f5efe7de30de37da283149
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalIdentityRequest'
      responses:
        '200':
          description: External identity successfully removed from the specified owner.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoveExternalIdentityResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /customer/{id}/forget_customer:
    post:
      summary: Forget Customer Data
      description: This API allows you to obfuscate personal customer data associated with a specific customer ID, including first name, last name and email. The **customer ID** must be provided in the request path. Please beware this action is irreversible.
      operationId: forgetCustomerData
      tags:
        - Identities
      security:
        - bearerAuth:
            - OAuth
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            example: cus-fc689f05092b27605bb622a6ca7871b0
          description: The unique customer ID of the customer's data you wish to be scrubbed.
      responses:
        '200':
          description: Data successfully scrubbed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForgetCustomerDataResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /checkout/abandoned:
    get:
      description: |-
        This API allows you to get a list of abandoned baskets in Limio and filter the results by the date the basket was created.
        An abandoned basket is one where a basket was started on the Limio checkout but the order was never completed.
            
        You can use the Abandoned Baskets API for actions such as:

          - Obtaining marketing information on customers who have abandoned their checkout.
          - Gathering information that can be used to remarket to abandoned checkout customers.
          - Understanding customer behaviour.
          - Tracking abandoned checkouts over time.
          - Viewing abandoned checkout items.
      operationId: getAbandonedCheckouts
      summary: Get Abandoned Baskets
      tags:
        - Basket
      parameters:
        - $ref: '#/components/parameters/limit'
          required: true
        - $ref: '#/components/parameters/createdAfter'
          required: true
        - $ref: '#/components/parameters/queryMore'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAbandonedCheckoutsResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
      security:
        - bearerAuth: []
  /checkout/initiate:
    post:
      operationId: initiateCheckout
      summary: Create or update a checkout session
      tags:
        - Basket
      description: Create or update a basket in Limio for the basket to be tracked and used in order submission. This is the first step in the checkout process. The basket will be created or updated based on the provided data. The basket ID will be returned in the response.
      security:
        - bearerAuth:
            - checkout
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateCheckout'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The ID of the created or updated basket.
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /objects/salesforce/identities/{id}/subscriptions:
    get:
      operationId: getIdentitySubscriptions
      security:
        - bearerAuth:
            - MMA
      summary: Get subscriptions by Salesforce ID
      description: This API can be used to see all of the subscriptions that are attached to a specified Salesforce ID.
      tags:
        - Subscription
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
          description: The Salesforce Identity
        - in: query
          name: queryMore
          description: A hash returned from a call to the API that can be used to retrieve the next page of results.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  subscriptions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Subscription'
                  customers:
                    type: array
                    items:
                      $ref: '#/components/schemas/Customer'
                  queryMore:
                    type: string
                    description: Cursor for the next page of results
                    example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /timeline/subscription:
    post:
      operationId: addTimelineEvent
      summary: Add a Timeline Event
      description: |
        Currently supported for **subscriptions**. To create a custom Event and attach it to that specified Object’s Timeline.
      tags:
        - Subscription
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTimelineEvent'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTimelineEventResponse'
        '400':
          description: Bad request (missing or invalid fields)
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
        '502':
          $ref: '#/components/responses/502Response'
  /timeline/{path_type}/{id}:
    get:
      operationId: getTimeline
      tags:
        - Subscription
      summary: Get Subscription Timeline
      description: |
        Retrieves timeline data for a given subscription or customer by ID.
        This API aggregates relevant events, payment methods, addresses, offers,
        and schedules to create a chronological activity history.
        - For `subscriptions` path parameter: Returns timeline for that specific subscription
        - For `customers` path parameter: Returns timeline for all subscriptions owned by that customer
      security:
        - bearerAuth: []
      parameters:
        - name: path_type
          in: path
          required: true
          description: The type of entity to retrieve timeline for
          schema:
            type: string
            enum:
              - subscriptions
              - customers
            maxLength: 20
            example: subscriptions
        - name: id
          in: path
          required: true
          description: The unique identifier of the subscription or customer
          schema:
            type: string
            maxLength: 60
            example: sub-fdb5ff44f3513733c91869c43fdd37ba0
      responses:
        '200':
          description: Successfully retrieved timeline data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTimelineResponse'
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid path_type. Must be 'subscriptions' or 'customers'
                  code:
                    type: string
                    example: INVALID_PARAMETER
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Subscription or customer not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Subscription with ID 'sub-fdb5ff44f3513733c91869c43fdd37ba0' not found
                  code:
                    type: string
                    example: NOT_FOUND
        '502':
          $ref: '#/components/responses/502Response'
  /campaigns:
    get:
      operationId: getCampaigns
      summary: Get Campaigns
      tags:
        - Get Catalog Items
      description: Retrieves all the campaigns in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these campaigns (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved campaigns and pagination is activated.
      parameters:
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/reducedData'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCampaignResponse'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - ApiKey: []
  /pages:
    get:
      operationId: getPages
      summary: Get Pages
      tags:
        - Get Catalog Items
      description: Retrieves published pages that match the supplied query parameters. The response includes metadata about the total matches, paging details, and the matching page definitions.
      parameters:
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPagesResponse'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - ApiKey: []
  /offers:
    get:
      operationId: getOffers
      summary: Get Offers
      tags:
        - Get Catalog Items
      description: |-
        Retrieves all the offers in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these offers (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved offers and pagination is activated.

        Note: this API will return all offers in the catalog, including legacy offers (that contain the path /offers AKA campaigns), and standalone offers (that contain the path /offers2). If you want to retrieve only V2 offers, please use the [getOffersV2 endpoint](https://docs.limio.com/api-docs/get-catalog-items#get-offers-v2).
      parameters:
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/reducedData'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOffersResponse'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - ApiKey: []
        - bearerAuth: []
  /offers/v2:
    get:
      operationId: getOffers2
      summary: Get Offers V2
      tags:
        - Get Catalog Items
      description: |-
        Retrieves all the standalone offers in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these offers (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved offers and pagination is activated.

        Note: this API will return only standalone offers (that contain the path /offers2). If you want to retrieve all offers in the catalog, including legacy offers (that contain the path /offers AKA campaigns), please use the [getOffers endpoint](https://docs.limio.com/api-docs/get-catalog-items#get-offers).

        V2 offers are offers that are created using the new offer creation flow. They are standalone offers that are not part of a campaign, but can be attached to campaigns / pages using labels. They are created using the new offer creation flow and are more flexible than legacy offers.

        V2 offers can also be versioned - you can find out more about offer versioning at the following resources:
          - [Published Offers API and Versioned Offers v2](https://limio.zendesk.com/hc/en-gb/articles/10026477323421-Published-Offers-API-and-Versioned-Offers-v2)
          - [Set or Update an Offer Version](https://limio.zendesk.com/hc/en-gb/articles/4641968133917-How-to-create-Offers-v2-to-Attach-to-Campaigns-Pages#h_01HCEYQE26NJSQSCDNQ7EAVZFJ)

        If you have the [Published Offers API](https://limio.zendesk.com/hc/en-gb/articles/10026477323421-Published-Offers-API-and-Versioned-Offers-v2) enabled, the API will, by default, return only the published offersV2. To retrieve all offersV2 in your catalog, including both published and unpublished, you can use the offersSource query parameter.
      parameters:
        - $ref: '#/components/parameters/offersSource'
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/reducedData'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOffersV2Response'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - bearerAuth: []
  /add_ons:
    get:
      operationId: getAddOns
      summary: Get Add Ons
      tags:
        - Get Catalog Items
      description: Retrieves all the standalone add ons in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these add ons (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved offers and pagination is activated.
      parameters:
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/addOnsSource'
        - $ref: '#/components/parameters/reducedData'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  hits:
                    type: number
                    description: Amount of records found on the catalog in response to the query
                    example: 1
                  items:
                    type: array
                    description: Add Ons retrieved
                    items:
                      $ref: '#/components/schemas/ElasticAddOn'
                  queryMore:
                    type: object
                    description: query more object used for pagination
                    properties:
                      from:
                        type: string
                        description: Cursor for the next page of results
                        example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
                      alias:
                        type: string
                        description: The Alias used to fetch next page of the query
                        example: catalog_test.test0.dev.limio.com
                  commitId:
                    description: the commitId from the index used to query
                    type: string
                    example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - bearerAuth: []
  /assets:
    get:
      description: Retrieves all the assets in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these assets (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved assets and pagination is activated.
      operationId: getAssets
      summary: Get Assets
      tags:
        - Get Catalog Items
      parameters:
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAssetsResponse'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - ApiKey: []
        - bearerAuth: []
  /products:
    get:
      operationId: getProducts
      summary: Get Products
      description: Retrieves all the products in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these products (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved products and pagination is activated.
      tags:
        - Get Catalog Items
      parameters:
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductsResponse'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - ApiKey: []
        - bearerAuth: []
  /segments:
    get:
      operationId: getSegments
      summary: Get Segments
      tags:
        - Get Catalog Items
      description: Retrieves all the segments in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these segments (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved segments and pagination is activated.
      parameters:
        - $ref: '#/components/parameters/path'
        - $ref: '#/components/parameters/optPageSize'
        - $ref: '#/components/parameters/optModifiedAfter'
        - $ref: '#/components/parameters/optAll'
        - $ref: '#/components/parameters/optQueryMoreFrom'
        - $ref: '#/components/parameters/optQueryMoreAlias'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSegmentsResponse'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - ApiKey: []
        - bearerAuth: []
  /journeys:
    get:
      operationId: getJourneys
      summary: Get Journeys
      tags:
        - Get Catalog Items
      description: Retrieves all the journeys in the Catalog
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetJourneysResponse'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - ApiKey: []
        - bearerAuth: []
  /v2/journey:
    get:
      operationId: getJourneysV2
      summary: Get Journeys V2
      tags:
        - Journeys V2
      description: Retrieves all the journeysV2 in the Catalog
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getJourneysV2Response'
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Journey not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    description: The unique identifier of the request
                  code:
                    type: string
                    default: data_not_found
                  message:
                    type: string
                    default: No journey groups found
      security:
        - ApiKey: []
        - bearerAuth: []
    post:
      operationId: addJourneyV2
      summary: Add Journey V2
      tags:
        - Journeys V2
      description: Adds a new journey in the Catalog
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the journey
                  example: Test
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    default: Journey added successfully
        '401':
          $ref: '#/components/responses/401Response'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    description: The unique identifier of the request
                  code:
                    type: string
                    default: conflict_found
                  message:
                    type: string
                    default: Journey name already exists
  /v2/journey/{journeyName}:
    get:
      operationId: getJourneyV2ByName
      summary: Get Journey V2 by name
      tags:
        - Journeys V2
      description: Get a journey by name
      security:
        - bearerAuth: []
      parameters:
        - name: journeyName
          in: path
          required: true
          description: The name of the journey to retrieve
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getJourneyByNameV2Response'
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Journey not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    description: The unique identifier of the request
                  code:
                    type: string
                    default: data_not_found
                  message:
                    type: string
                    default: 'Not Found: Journey not found'
    delete:
      operationId: deleteJourneyV2ByName
      summary: Delete JourneyV2 by name
      tags:
        - Journeys V2
      description: Delete a journey by name
      security:
        - bearerAuth: []
      parameters:
        - name: journeyName
          in: path
          required: true
          description: The name of the journey to delete
          schema:
            type: string
      responses:
        '200':
          description: Successfully deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    default: Journey deleted successfully
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Journey not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    description: The unique identifier of the request
                  code:
                    type: string
                    default: data_not_found
                  message:
                    type: string
                    default: 'Not Found: Journey not found'
    put:
      operationId: putJourneysV2
      summary: Update or Create Journey V2
      tags:
        - Journeys V2
      description: Updates an existing Journey V2 with the provided data, identified by the `journeyName` path parameter. If no Journey V2 with the specified `journeyName` exists, a new one will be created.
      security:
        - bearerAuth: []
      parameters:
        - $ref: '#/components/parameters/journeyName'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutJourneysV2Response'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutJourneysV2Response'
        '401':
          $ref: '#/components/responses/401Response'
  /limio/catalogs/1/bulk-update:
    put:
      tags:
        - Update Catalog Items
      servers:
        - url: https://{shard}.{domain}
          variables:
            domain:
              default: prod.limio.com
            shard:
              default: your-environment
      operationId: bulkUpdate
      summary: Bulk Update
      description: This API allows you to perform bulk update operations on Limio catalog items (such as offers, add-ons etc.). This can be useful for updating multiple items at once, for example, when you want to update the price of multiple offers at the same time.
      security:
        - bearerAuth:
            - checkout
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                diffs:
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
                        description: The offer path in Limio
                      diff:
                        type: object
                        properties:
                          attributes:
                            type: object
                            description: The attributes on the offer that will be updated
                            properties:
                              example_attribute:
                                type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpdateCatalogItemResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          description: Not found
  /shop/builds:
    post:
      description: This API allows you to build Limio Campaigns and Pages in bulk, without needing to build them one by one. You can build multiple campaigns and pages at once by providing an array of items to build. This can be useful for building multiple campaigns and pages at once, for example, when you want to build a set of campaigns and pages for a new product launch.
      operationId: buildShop
      summary: Build Campaigns and Pages
      tags:
        - Build
      requestBody:
        description: The paths of the items you want to build - for example, campaigns (starting with /offers) and pages (starting with /pages).
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  description: The list of campaigns and pages to build
                  example:
                    - /offers/Limio Campaign
                    - /pages/Limio Page
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildShopResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
      security:
        - bearerAuth: []
  /component/builds:
    get:
      description: This endpoint allows you to fetch custom component builds.
      operationId: RepositoryComponentBuilds
      summary: Repository Component Builds
      tags:
        - Build
      parameters:
        - $ref: '#/components/parameters/commitHash'
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositoryComponentBuildsResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '404':
          $ref: '#/components/responses/404RepositoryResponse'
      security:
        - bearerAuth: []
  /publish:
    post:
      description: This API allows you to publish campaigns and pages in Limio. You can use this API to publish campaigns and pages to make them live on your website. This can be useful for activities such as launching new products, promoting sales, or creating seasonal campaigns.
      operationId: publishCampaign
      summary: Publish Campaigns and Pages
      tags:
        - Publish
      requestBody:
        description: The tags of the campaigns / pages that you want to publish
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tags:
                  type: array
                  description: The list of campaigns and pages to publish
                  example:
                    - /tags/uk-uk/default
                buildId:
                  type: string
                  description: The build ID of the campaigns and pages to publish
                  example: build-shard-shop:b83ee127-2301-4358-b993-cb3d7f009718
                name:
                  type: string
                  description: The name of one of the campaigns / pages to be published
                  example: Default
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishCampaignResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
      security:
        - bearerAuth: []
  /session/entitlements:
    get:
      operationId: sessionRouter.getEntitlements
      tags:
        - Session
      summary: Get User Entitlements
      description: This API allows you to get the entitlements of a user session. Entitlements are the rights and permissions that a user has to access certain resources or perform certain actions. This can be useful for understanding what a user is currently entitled to access.
      security:
        - sessionAuth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSessionEntitlementsResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
  /plugins/zuora/sync/subscription/{id}:
    post:
      description: This API allows you to update subscriptions that already exist within Limio or to create new subscriptions / customer accounts in Limio for orders that were created outside of Limio (for example directly in Zuora). It can be used to keep Limio in sync with non-Limio-initiated changes, or to fetch new subscriptions and accounts that have been created outside of a Limio shop.
      operationId: syncZuoraData
      summary: Sync Zuora Subscription
      tags:
        - Sync Zuora Data
      parameters:
        - name: id
          in: path
          description: The id of the subscription created in Zuora
          required: true
          example: https://{TENANT}.prod.limio.com/api/plugins/zuora/sync/subscription/A-S00000271
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncZuoraDataResponse'
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
      security:
        - bearerAuth: []
  /partner-organisations:
    get:
      operationId: getPartnerOrganisations
      summary: List Partner Organisations
      tags:
        - Partner Management
      description: Retrieve a list of all partner organisations with optional pagination
      security:
        - bearerAuth: []
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
          description: Maximum number of items to return
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PartnerOrganisation'
                  queryMore:
                    type: string
                    description: Token for next page of results
        '401':
          $ref: '#/components/responses/401Response'
  /partner-organisation:
    post:
      operationId: createPartnerOrganisation
      summary: Create Partner Organisation
      tags:
        - Partner Management
      description: Create a new partner organisation
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - zuoraAccountId
                - isZuoraInvoiceOwner
              properties:
                name:
                  type: string
                  description: Organisation name
                zuoraAccountId:
                  type: string
                  description: Associated Zuora account ID
                isZuoraInvoiceOwner:
                  type: boolean
                  description: Whether this organisation owns Zuora invoices
                salesforceAccountId:
                  type: string
                  description: Associated Salesforce account ID
                logo:
                  type: string
                  format: uri
                  description: Organisation logo URL
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerOrganisation'
        '401':
          $ref: '#/components/responses/401Response'
  /partner-organisation/{partnerOrganisationId}:
    post:
      operationId: createPartnerUserForOrganisation
      summary: Create Partner User
      tags:
        - Partner Management
      description: Create a new user for a specific partner organisation
      security:
        - bearerAuth: []
      parameters:
        - name: partnerOrganisationId
          in: path
          required: true
          schema:
            type: string
          description: Partner organisation ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - email
              properties:
                email:
                  type: string
                  format: email
                  description: User email address
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerUser'
        '401':
          $ref: '#/components/responses/401Response'
    put:
      operationId: updatePartnerOrganisation
      summary: Update Partner Organisation
      tags:
        - Partner Management
      description: Update an existing partner organisation's details
      security:
        - bearerAuth: []
      parameters:
        - name: partnerOrganisationId
          in: path
          required: true
          schema:
            type: string
          description: Partner organisation ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                zuoraAccountId:
                  type: string
                  description: Associated Zuora account ID
                isZuoraInvoiceOwner:
                  type: boolean
                  description: Whether this organisation owns Zuora invoices
                salesforceAccountId:
                  type: string
                  description: Associated Salesforce account ID
                logo:
                  type: string
                  format: uri
                  description: Organisation logo URL
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerOrganisation'
        '401':
          $ref: '#/components/responses/401Response'
    delete:
      operationId: deletePartnerOrganisation
      summary: Delete Partner Organisation
      tags:
        - Partner Management
      description: Delete a partner organisation and all associated users
      security:
        - bearerAuth: []
      parameters:
        - name: partnerOrganisationId
          in: path
          required: true
          schema:
            type: string
          description: Partner organisation ID
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
        '401':
          $ref: '#/components/responses/401Response'
  /partner-organisation/{partnerOrganisationId}/users:
    get:
      operationId: getPartnerUsersForOrganisation
      summary: List Partner Users for Organisation
      tags:
        - Partner Management
      description: Retrieve all users associated with a specific partner organisation
      security:
        - bearerAuth: []
      parameters:
        - name: partnerOrganisationId
          in: path
          required: true
          schema:
            type: string
          description: Partner organisation ID
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PartnerUser'
                  queryMore:
                    type: string
                    description: Token for next page of results
        '401':
          $ref: '#/components/responses/401Response'
  /partner-organisation/{partnerOrganisationId}/{partnerUserId}:
    delete:
      operationId: deletePartnerUser
      summary: Delete Partner User
      tags:
        - Partner Management
      description: Delete a specific user from a partner organisation
      security:
        - bearerAuth: []
      parameters:
        - name: partnerOrganisationId
          in: path
          required: true
          schema:
            type: string
          description: Partner organisation ID
        - name: partnerUserId
          in: path
          required: true
          schema:
            type: string
          description: Partner user ID
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
        '401':
          $ref: '#/components/responses/401Response'
  /partner/objects/{path_type}:
    get:
      operationId: getObjectsForPartner
      summary: Get Objects For Partner
      description: Retrieve a list of objects of the specified type associated with your partner organisation. Each object is returned with a summary of its data.
      parameters:
        - name: path_type
          in: path
          required: true
          description: The type of object to retrieve
          schema:
            type: string
            enum:
              - subscription
            example: subscription
        - name: limit
          in: query
          required: false
          description: The maximum number of records to return
          schema:
            type: integer
            example: 20
        - name: queryMore
          in: query
          required: false
          description: A token to retrieve the next set of results. The token can be retrieved from the `queryMore` field in the response of a previous call to this endpoint. If there are no more results, this field will not be returned.
          schema:
            type: string
            example: eyJjcmVhdGVkIjoiMjAyNC0wMy0wMVQwMTozNjowOC4zMjVaIn0=
      tags:
        - Get Objects For Partner
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/GetSubscriptionObjectsResponse'
                properties:
                  queryMore:
                    type: string
                    example: eyJjcmVhdGVkIjoiMjAyNC0wMy0wMVQwMTozNjowOCC4zMjVaIn0=
                    description: A token to retrieve the next set of results. If there are no more results, this field will not be returned.
        '401':
          $ref: '#/components/responses/401Response'
        '502':
          $ref: '#/components/responses/502Response'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |-
        To create a Bearer token, see [How to get an OAuth Bearer Token?](https://developers.limio.com/api-docs/authentication-overview/full-api).

        Usage format: `Bearer <token>`
    ApiKey:
      type: apiKey
      name: Authorization
      in: header
      description: |-
        This authentication method is applicable to specific operations.

        To create a publishable API key, see [Public Keys (Read-Only API)](https://developers.limio.com/api-docs/authentication-overview/public-keys).
    sessionAuth:
      type: http
      scheme: bearer
      bearerFormat: Session Token
  schemas:
    Order:
      type: object
      properties:
        external_id:
          description: external order reference
          type: string
        initiated_source:
          description: initiated source of the order. "shop" and "salesforce" used by limio.
          type: string
        source:
          description: source of the order. "shop" and "salesforce" used by limio.
          type: string
        process_immediately:
          description: if true the order is processed synchronously
          type: boolean
    OfferPayload:
      description: Details of a published Limio Offer
      required:
        - id
        - version
      properties:
        id:
          type: string
          description: The ID of the Offer
          example: 8a512ee55befaea0f7fa962cea9982d0e84f0098
        version:
          type: string
          description: The version ID of the Offer
          example: 4dd34671f26fdbbf240560b78f7f2f54654cde72
    Entitlement:
      type: object
      properties:
        $ref:
          type: string
          example: /entitlements/Digital
    ProductAttributes:
      type: object
      properties:
        display_name__limio:
          type: string
          example: Digital
        has_delivery__limio:
          type: boolean
          example: false
        product_code__limio:
          type: string
          example: LI.DIGITAL
    ProductDetails:
      type: object
      properties:
        baseTemplate:
          type: string
          example: /config/templates/products/default
        entitlements:
          type: array
          items:
            $ref: '#/components/schemas/Entitlement'
        path:
          type: string
          example: /products/Digital
        created:
          type: string
          format: date-time
          example: '2023-12-11T13:44:43+00:00'
        modified:
          type: string
          format: date-time
          example: '2024-01-15T13:56:18+00:00'
        attributes:
          $ref: '#/components/schemas/ProductAttributes'
        record_type:
          type: string
          example: product
        lastSynced:
          type: string
          format: date-time
          example: '2024-03-12T16:00:35.232Z'
        synced:
          type: boolean
          example: true
        syncedFrom:
          type: string
          example: 2c92c0f9778c090d0177aa4f357d043b
    OrderDiscount:
      description: Order Discount
      type: object
      properties:
        name:
          type: string
          description: The name of the order discount
          example: TEST123
        productDetails:
          type: object
          properties:
            ratePlan:
              type: object
              properties:
                path:
                  type: string
                  description: The path of the rate plan
                  example: 30% Off Monthly
            product:
              type: object
              properties:
                path:
                  type: string
                  description: The path of the product
                  example: /products/Discounts
        product:
          $ref: '#/components/schemas/ProductDetails'
        discountOverrides:
          type: object
          properties:
            discountType:
              type: string
              description: The type of the discount
              example: DiscountPercentage
            durationLength:
              type: number
              description: The period of time the discount is applied
              example: 1
            durationType:
              type: string
              description: The type of period of time the discount is applied
              example: Months
            percentageDiscount:
              type: number
              description: The percentage of the discount
              example: 10
            amountDiscount:
              type: number
              description: The amount of the discount
              example: 10
            currency:
              type: string
              description: The currency of the discount
              example: USD
            orderItemsWithSpecifiedDiscount:
              type: object
              properties:
                discountedOffers:
                  type: array
                  example: []
    Address:
      description: Address
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        workEmail:
          type: string
        phone:
          type: string
        workPhone:
          type: string
        otherPhone:
          type: string
        company:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state:
          type: string
        postalCode:
          type: string
        country:
          type: string
    CustomerDetails:
      properties:
        firstName:
          type: string
        lastName:
          type: string
        phone:
          type: string
        email:
          type: string
    Tracking:
      type: object
      properties:
        offers:
          type: array
          items:
            type: string
            example: /offers2/$75 for 52 weeks then $31.96 every 4 weeks autorenew
        purchaseCountryCode:
          type: string
          example: GB
        accountId:
          type: string
          example: 0017x00000Q9O9qAAF
        contactId:
          type: string
          example: 0037x00000F58M9AAJ
        userId:
          type: string
          example: 0057x0000088Oh3AAE
    ZuoraPayment:
      type: object
      description: Zuora Payment Method
      properties:
        type:
          type: string
          enum:
            - zuora
        zuora:
          type: object
          properties:
            refId:
              type: string
              example: 2c92c0f96e4e3b7f016e5f3b3b7b0b3d
              description: The Zuora ID of the payment method to use for the payment
            paymentGateway:
              type: string
              example: CreditCard_UK
              description: The Zuora payment gateway to use for processing the payment
    CreateSubscription:
      type: object
      title: Create Subscription
      description: Create a new subscription
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - new
            orderItems:
              type: array
              items:
                type: object
                properties:
                  offer:
                    $ref: '#/components/schemas/OfferPayload'
                  quantity:
                    type: number
                    example: 1
            orderDiscount:
              $ref: '#/components/schemas/OrderDiscount'
            billingDetails:
              $ref: '#/components/schemas/Address'
            deliveryDetails:
              $ref: '#/components/schemas/Address'
            customerDetails:
              $ref: '#/components/schemas/CustomerDetails'
            tracking:
              $ref: '#/components/schemas/Tracking'
            payment:
              description: Payment
              oneOf:
                - $ref: '#/components/schemas/ZuoraPayment'
            orderDate:
              type: string
              format: date-time
              example: '2020-01-01T00:00:00Z'
              description: the date on which the subscription should start
            checkoutId:
              type: string
              example: basket-22e3d318-92e2-4909-b59c-1265623bc3f6
              description: the limio session checkout id for this order
            country:
              type: string
              example: GB
              description: the country code of the customer's purchase location
          required:
            - order_type
            - billingDetails
            - customerDetails
            - orderItems
            - payment
            - country
            - checkoutId
    RecipientDetails:
      type: object
      properties:
        startNow:
          type: boolean
          description: if true, the gift subscription will begin on the date of the order, not when the gift is redeemed by the recipient
        startDate:
          type: string
          format: date-time
          example: '2030-01-01T00:00:00Z'
          description: send the gift on a specific date, will default to the order date if undefined
        firstName:
          type: string
        lastName:
          type: string
        sendEmail:
          type: boolean
          description: send the recipient an email with the gift details, this includes the gift code
        message:
          type: string
          description: a message from the purchaser to the recipient
        email:
          type: string
          format: email
      required:
        - email
    CreateGiftSubscription:
      type: object
      title: Create Gift Subscription
      description: Create a new gift subscription
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - new
            orderItems:
              type: array
              items:
                type: object
                properties:
                  offer:
                    $ref: '#/components/schemas/OfferPayload'
                  quantity:
                    type: number
                    example: 1
            orderDiscount:
              $ref: '#/components/schemas/OrderDiscount'
            billingDetails:
              $ref: '#/components/schemas/Address'
            deliveryDetails:
              $ref: '#/components/schemas/Address'
            customerDetails:
              $ref: '#/components/schemas/CustomerDetails'
            tracking:
              $ref: '#/components/schemas/Tracking'
            payment:
              description: Payment
              oneOf:
                - $ref: '#/components/schemas/ZuoraPayment'
            orderDate:
              type: string
              format: date-time
              example: '2020-01-01T00:00:00Z'
              description: the date on which the subscription should start
            checkoutId:
              type: string
              example: basket-22e3d318-92e2-4909-b59c-1265623bc3f6
              description: the limio session checkout id for this order
            country:
              type: string
              example: GB
              description: the country code of the customer's purchase location
            isRedeem:
              type: boolean
            recipientDetails:
              $ref: '#/components/schemas/RecipientDetails'
            isGift:
              type: boolean
              enum:
                - true
            variant:
              type: string
              enum:
                - gift
          required:
            - order_type
            - billingDetails
            - customerDetails
            - orderItems
            - payment
            - country
            - checkoutId
            - recipientDetails
            - isGift
            - variant
    RedeemGiftSubscription:
      type: object
      title: Redeem Gift Subscription
      description: Redeem a new gift subscription
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - new
            orderItems:
              type: array
              items:
                type: object
                properties:
                  offer:
                    $ref: '#/components/schemas/OfferPayload'
                  quantity:
                    type: number
                    example: 1
            deliveryDetails:
              $ref: '#/components/schemas/Address'
            customerDetails:
              $ref: '#/components/schemas/CustomerDetails'
            orderDate:
              type: string
              format: date-time
              example: '2020-01-01T00:00:00Z'
              description: the date on which the subscription should start
            giftCode:
              type: string
              description: gift code a recipient redeems their gift with
            payment:
              description: Payment
              type: object
              required:
                - type
              properties:
                type:
                  type: string
                  description: type of payment method
                  enum:
                    - gift_code
                gift_code:
                  type: string
                  description: gift code a recipient redeems their gift with
            tracking:
              type: object
              properties:
                accountId:
                  type: string
                  example: 0017x00000Q9O9qAAF
                contactId:
                  type: string
                  example: 0037x00000F58M9AAJ
            sourceDetails:
              type: object
              properties:
                instance:
                  type: string
                  example: LIMIO.my.salesforce.com
            checkoutId:
              type: string
              example: basket-22e3d318-92e2-4909-b59c-1265623bc3f6
              description: the limio session checkout id for this order
            country:
              type: string
              example: GB
              description: the country code of the customer's purchase location
            recipientDetails:
              $ref: '#/components/schemas/RecipientDetails'
            hasDelivery:
              type: boolean
          required:
            - order_type
            - customerDetails
            - orderItems
            - payment
            - country
            - checkoutId
            - recipientDetails
            - giftCode
    SubscriptionByName:
      description: Update subscription by name
      properties:
        name:
          type: string
    SubscriptionById:
      description: Update subscription by id
      properties:
        id:
          type: string
    UpdateCustomerDetails:
      type: object
      title: Update Customer Details
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - update_customer_details
            forSubscription:
              description: Subscription to update
              oneOf:
                - $ref: '#/components/schemas/SubscriptionByName'
                - $ref: '#/components/schemas/SubscriptionById'
            customerDetails:
              $ref: '#/components/schemas/CustomerDetails'
          required:
            - order_type
            - forSubscription
            - customerDetails
    ChangeAddress:
      type: object
      description: Create a new billing or delivery address on a subscription.
      title: Change Address
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - change_address
            forSubscription:
              description: Subscription to update
              oneOf:
                - $ref: '#/components/schemas/SubscriptionByName'
                - $ref: '#/components/schemas/SubscriptionById'
            type:
              type: string
              enum:
                - billing
                - delivery
                - all
            address:
              $ref: '#/components/schemas/Address'
          required:
            - order_type
            - forSubscription
            - type
            - address
    ChangeOffer:
      type: object
      title: Change Offer
      description: Change the offer that is attached to a subscription.
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - change_offer
            forSubscription:
              description: Subscription to update
              oneOf:
                - $ref: '#/components/schemas/SubscriptionByName'
                - $ref: '#/components/schemas/SubscriptionById'
            offer:
              $ref: '#/components/schemas/OfferPayload'
            effectiveDate:
              description: The date on which the Offer change will be effective. If not provided, the change will be effective at the end of the current term.
              type: string
              format: date-time
            payment:
              description: Payment
              oneOf:
                - $ref: '#/components/schemas/ZuoraPayment'
            billingDetails:
              $ref: '#/components/schemas/Address'
            deliveryDetails:
              $ref: '#/components/schemas/Address'
          required:
            - order_type
            - forSubscription
            - offer
    ChangeDefaultZuoraPaymentMethod:
      type: object
      title: Change Default Zuora Payment Method
      description: Change the default payment method for an account in Zuora and on the customer in Limio.
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - change_default_payment
            customerId:
              type: string
            newDefaultPaymentId:
              type: string
          required:
            - order_type
            - customerId
            - newDefaultPaymentId
    DeletePaymentMethod:
      type: object
      title: Delete Payment Method
      description: Delete the payment method for an account in Zuora and in Limio.
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - delete_payment_method
            customerId:
              type: string
            paymentMethodId:
              type: string
          required:
            - order_type
            - customerId
            - paymentMethodId
    AddOffer:
      type: object
      title: Add Offer
      description: Replace the offer attached to a subscription with a discounted offer.
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - add_offer
            forSubscription:
              description: Subscription to update
              oneOf:
                - $ref: '#/components/schemas/SubscriptionByName'
                - $ref: '#/components/schemas/SubscriptionById'
            offer:
              $ref: '#/components/schemas/OfferPayload'
            effectiveDate:
              description: The date on which the Offer change will be effective. If not provided, the change will be effective at the end of the current term.
              type: string
              format: date-time
          required:
            - order_type
            - forSubscription
            - offer
    CancelData:
      type: object
      description: Cancel reasons data
      properties:
        reason:
          type: object
          properties:
            id:
              type: string
              description: Identifier for the cancellation reason
          required:
            - id
    CancelSubscription:
      type: object
      title: Cancel Subscription
      description: Cancel a subscription.
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - cancel_subscription
            forSubscription:
              description: Subscription to cancel
              oneOf:
                - $ref: '#/components/schemas/SubscriptionByName'
                - $ref: '#/components/schemas/SubscriptionById'
            effectiveDate:
              description: The date on which the cancellation will be effective. If not provided, the cancellation will be effective at the end of the current term.
              type: string
              format: date-time
            payment:
              description: Payment
              oneOf:
                - $ref: '#/components/schemas/ZuoraPayment'
            data:
              $ref: '#/components/schemas/CancelData'
          required:
            - order_type
            - forSubscription
    OrderResponse:
      type: object
      properties:
        id:
          type: string
        order_reference:
          type: string
        status:
          type: string
        external_id:
          type: string
        subscriptionReference:
          type: string
        owner:
          type: string
    AdminOrderPartner:
      type: object
      description: Partner organisation to associate with the order and all related objects. The end customer will be the subscription owner.
      properties:
        id:
          type: string
          description: Partner organisation id
          example: partner_org-123
      required:
        - id
    AdminOrderExtension:
      type: object
      description: Additional fields available when submitting an order as an admin user.
      properties:
        forPartner:
          description: Submit the order on behalf of a specific partner organisation.
          allOf:
            - $ref: '#/components/schemas/AdminOrderPartner'
    SubscriptionUpdate:
      description: Add, Remove or Update an Offer or Add On on a Subscription
      required:
        - type
        - record_type
        - id
      properties:
        type:
          type: string
          enum:
            - add
            - remove
            - update
        record_type:
          type: string
          enum:
            - offer
            - add_on
        effective_date:
          description: The date on which the Offer change will be effective. If not provided, the change will be effective at the end of the current term.
          type: string
          format: date-time
        id:
          type: string
          description: For remove and update the subscription_{record_type}, for add the {record_type}
          example: subscription_offer-c8d2615ab1af8774395f154b41970bf3
        version:
          type: string
          description: For adding version on the associated target object is required.
          example: 4dd34671f26fdbbf240560b78f7f2f54654cde72
        quantity:
          type: number
          description: For add and update only
          example: 2
          default: 1
    UpdateSubscription:
      type: object
      title: Update Subscription
      description: Update a subscription with new offers, add-ons or other changes.
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - update_subscription
            owner:
              type: string
            forSubscription:
              description: Subscription to update
              oneOf:
                - $ref: '#/components/schemas/SubscriptionByName'
                - $ref: '#/components/schemas/SubscriptionById'
            updates:
              type: array
              items:
                $ref: '#/components/schemas/SubscriptionUpdate'
          required:
            - order_type
            - forSubscription
            - updates
            - owner
    GiftRefund:
      type: object
      title: Gift Refund
      description: Process a refund for a gift subscription
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - gift_refund
            subscriptionId:
              type: string
              description: ID of the gift subscription to refund
            data:
              type: object
              properties:
                gift_code:
                  type: string
                  description: The gift code associated with the subscription
          required:
            - order_type
            - subscriptionId
    CreditMemo:
      type: object
      title: Credit Memo
      description: Create a credit memo for a subscription to apply credits or adjustments
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          properties:
            order_type:
              type: string
              enum:
                - credit_memo
            forSubscription:
              description: Subscription to apply the credit memo to
              oneOf:
                - $ref: '#/components/schemas/SubscriptionByName'
                - $ref: '#/components/schemas/SubscriptionById'
            orderItems:
              type: array
              description: Items to include in the credit memo
              items:
                type: object
                properties:
                  offer:
                    $ref: '#/components/schemas/OfferPayload'
                  quantity:
                    type: number
                    example: 1
                  type:
                    type: string
                    example: add_on
            creditMemoReasonCode:
              type: string
              description: Reason code for the credit memo
              example: test
          required:
            - order_type
            - forSubscription
            - orderItems
            - creditMemoReasonCode
    ZuoraLineItem:
      type: object
      properties:
        additionalInfo:
          type: object
          properties:
            quantity:
              type: number
              example: 1
            unitOfMeasure:
              type: string
              example: Each
        amountWithoutTax:
          type: number
          example: 19.99
        chargeDescription:
          type: string
          example: Monthly subscription
        chargeName:
          type: string
          example: Charge
        chargeNumber:
          type: string
          example: C-000000000
        processingType:
          type: string
          example: Charge
        productName:
          type: string
          example: Product
        productRatePlanChargeId:
          type: string
          example: 2c98901f6706718c016706b91c6e001f
        serviceEndDate:
          type: string
          format: date-time
          example: '2020-05-01T00:00:00Z'
        serviceStartDate:
          type: string
          format: date-time
          example: '2020-05-01T00:00:00Z'
        subscriptionNumber:
          type: string
          example: S-000000000
        taxAmount:
          type: number
          example: 0
        unitPrice:
          type: number
          example: 19.99
    SwitchPreviewResponse:
      type: object
      properties:
        preview:
          type: object
          properties:
            success:
              type: boolean
              example: true
            orderNumber:
              type: string
              example: 67JKSCLQESR0
            orderId:
              type: string
              example: 8ad0887e850fc589018512981a1b4acb
            accountNumber:
              type: string
              example: A-000000000
            status:
              type: string
              example: active
            subscriptions:
              type: array
              items:
                type: object
                properties:
                  status:
                    type: string
                    example: active
                  subscriptionId:
                    type: string
                    example: 8ad0887e850fc589018512981a1b4acb
                  subscriptionNumber:
                    type: string
                    example: S-000000000
            paymentNumber:
              type: string
              example: P-000000000
            paymentId:
              type: string
              example: 8ad0887e850fc589018512981a1b4acb
            paidAmount:
              type: string
              example: '19.99'
            previewResult:
              type: object
              properties:
                invoices:
                  type: array
                  items:
                    type: object
                    properties:
                      amount:
                        type: number
                        example: 19.99
                      amountWithoutTax:
                        type: number
                        example: 19.99
                      targetDate:
                        type: string
                        format: date-time
                        example: '2020-05-01T00:00:00Z'
                      taxAmount:
                        type: number
                        example: 0
                      invoiceItems:
                        type: array
                        $ref: '#/components/schemas/ZuoraLineItem'
                creditMemos:
                  type: array
                  items:
                    type: object
                    properties:
                      amount:
                        type: number
                        example: 19.99
                      amountWithoutTax:
                        type: number
                        example: 19.99
                      targetDate:
                        type: string
                        format: date-time
                        example: '2020-05-01T00:00:00Z'
                      taxAmount:
                        type: number
                        example: 0
                      creditMemoItems:
                        type: array
                        items:
                          $ref: '#/components/schemas/ZuoraLineItem'
        schedule:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
                format: date-time
                example: '2020-05-01T00:00:00Z'
              schedule_date:
                type: string
                format: date-time
                example: '2020-05-01T00:00:00Z'
              type:
                type: string
                example: Schedule
              description:
                type: string
                example: Schedule
              amount:
                type: string
                example: '19.99'
              taxAmount:
                type: number
                example: 0
              amountWithoutTax:
                type: string
                example: '19.99'
              currency:
                type: string
                example: GBP
              lineItems:
                type: array
                items:
                  type: object
                  properties:
                    amountWithoutTax:
                      type: number
                      example: 19.99
                    processingType:
                      type: string
                      example: Charge
                    taxAmount:
                      type: string
                      example: '0.00'
                    chargeDescription:
                      type: string
                      example: Charge
                    chargeName:
                      type: string
                      example: Charge
                    productName:
                      type: string
                      example: Product
                    quantity:
                      type: number
                      example: 1
              quantity:
                type: number
                example: 1
              reference:
                type: string
                example: S-000000000
              unit_amount:
                type: string
                example: '19.99'
    OfferData:
      type: object
      properties:
        price__limio:
          type: array
          items: {}
        created:
          type: string
          format: date-time
          example: '2024-02-28T15:22:14+00:00'
        duplicatedFrom:
          type: string
          example: /offers2/$75 for 52 weeks then $31.96 every 4 weeks autorenew
        type:
          type: string
          example: item
        version:
          type: string
          example: 64e79ce3cbe2474c5b5fcbc5af229ec0d2439b12
        record_type:
          type: string
          example: offer
        productBundles:
          type: array
          items:
            type: object
            properties:
              revenue_split:
                type: string
                example: '100'
              product_path:
                type: string
                example: /products/Digital
              rate_plan:
                type: string
                example: $75 dollar per week
        products:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetails'
        baseTemplate:
          type: string
          example: /config/templates/offers/default
        path:
          type: string
          example: /offers2/$75 for 52 weeks then $31.96 every 4 weeks autorenew
        priceReference:
          type: string
          example: /offers2/$75 for 52 weeks then $31.96 every 4 weeks autorenew
        price:
          type: array
          items: {}
        name:
          type: string
          example: $75 for 52 weeks then $31.96 every 4 weeks autorenew
        modified:
          type: string
          format: date-time
          example: '2024-03-08T10:53:37+00:00'
        attributes:
          type: object
          properties:
            checkout_description__limio:
              type: string
              example: <p>Description</p>
            price__limio:
              type: array
              items:
                type: object
                properties:
                  delay_interval_type:
                    type: string
                    example: weeks
                  name:
                    type: string
                    example: charge_1
                  delay_interval:
                    type: string
                    example: '2'
                  repeat_interval:
                    type: integer
                    example: 52
                  attributes:
                    type: array
                    items: {}
                  label:
                    type: string
                    example: Charge 1
                  trigger:
                    type: string
                    example: order_date
                  repeat_interval_type:
                    type: string
                    example: weeks
                  repeat_count:
                    type: integer
                    example: 1
                  type:
                    type: string
                    example: recurring
                  value:
                    type: string
                    example: '75.00'
                  currencyCode:
                    type: string
                    example: USD
            default_quantity_options__limio: {}
            supportBillingFrequencyChange__zuora:
              type: boolean
              example: true
            allowed_countries__limio:
              type: array
              items:
                type: string
                example: AX
            label__limio:
              type: array
              items:
                type: string
                example: default
            term__limio:
              type: object
              properties:
                renewal_type:
                  type: string
                  example: EVERGREEN
                renewal_trigger:
                  type: string
                  example: EXTERNAL
            display_price__limio:
              type: string
              example: <p>Display Price</p>
            cta_text__limio:
              type: string
              example: buy
            payment_types__limio:
              type: array
              items:
                type: string
                example: zuora_card
            sales_channel__limio:
              type: array
              items:
                type: string
                example: Online
            display_name__limio:
              type: string
              example: $75 for 52 weeks then $31.96 every 4 weeks autorenew 1
            checkout__limio:
              type: object
              properties:
                checkout_type:
                  type: string
                  example: standard
            initial_term__limio:
              type: object
              properties:
                renewal_type:
                  type: string
                  example: TERMED
                length:
                  type: integer
                  example: 52
                renewal_trigger:
                  type: string
                  example: EXTERNAL
                type:
                  type: string
                  example: weeks
            push_to_checkout__limio:
              type: boolean
              example: true
            autoRenew__limio:
              type: boolean
              example: true
            offer_type__limio:
              type: string
              example: standard
        id:
          type: string
          example: 998f6ca141d60006e1e239b9f4b4e725bf1615d3
        user:
          type: string
          example: user@domain.com
    GetSubscriptionObjectResponse:
      type: object
      description: Subscription object
      title: Get Subscription Response
      properties:
        name:
          type: string
          description: Subscription name
          example: 3V053CN9SFIG
        start:
          type: string
          format: date
          description: Subscription start date
          example: '2024-03-22'
        data:
          type: object
          description: Subscription data
          properties:
            name:
              type: string
              description: Subscription data name
              example: $75 for 52 weeks then $31.96 every 4 weeks autorenew
            tracking:
              $ref: '#/components/schemas/Tracking'
            offer:
              type: object
              description: Offer details
              properties:
                mode:
                  type: string
                  example: production
                path:
                  type: string
                  example: /offers2/$75 for 52 weeks then $31.96 every 4 weeks autorenew
                data:
                  $ref: '#/components/schemas/OfferData'
                service:
                  type: string
                  example: limio
                created:
                  type: string
                  format: date-time
                  example: '2024-03-12T17:30:40.337Z'
                name:
                  type: string
                  example: $75 for 52 weeks then $31.96 every 4 weeks autorenew
                id:
                  type: string
                  example: 998f6ca141d60006e1e239b9f4b4e725bf1615d3
                type:
                  type: string
                  example: item
                updated:
                  type: string
                  format: date-time
                  example: '2024-03-12T17:30:40.337Z'
                version:
                  type: string
                  example: 121defc69da9962e4b78424234577aa7717f4daf
                record_type:
                  type: string
                  example: offer
                status:
                  type: string
                  example: active
            quantity:
              type: integer
              example: 1
            termEndDate:
              type: string
              format: date
              example: '2025-03-21'
            price:
              type: object
              description: Price details
              properties:
                summary:
                  type: object
                  properties:
                    headline:
                      type: string
                      example: <p>Display Price</p>
                currency:
                  type: string
                  example: USD
                amount:
                  type: number
                  example: 75
            termStartDate:
              type: string
              format: date
              example: '2024-03-22'
            attributes:
              type: object
              properties:
                gift:
                  type: boolean
                  example: false
                external:
                  type: boolean
                  example: false
            id:
              type: string
              example: bdc3cfb7-77b9-d8b8-7395-f44758ef1b29
            purchaseCountry:
              type: string
              example: GB
            startDate:
              type: string
              format: date
              example: '2024-03-22'
            products:
              type: array
              items:
                $ref: '#/components/schemas/ProductDetails'
        status:
          type: string
          example: initial
        record_type:
          type: string
          example: subscription
        owner:
          type: string
          example: id-39e4c3727b273ec4110b5769c10cdb52
        customer:
          type: string
          example: cus-81f7a36b4737e4d07b56e89d392a4d6e
        id:
          type: string
          example: sub-7f0146cba78f9455e57875402643f103
        service:
          type: string
          example: limio
        ref:
          type: string
          example: order-db546637c354a63b0eeaa121a0c14f0b/bdc3cfb7-77b9-d8b8-7395-f44758ef1b29
        created:
          type: string
          format: date-time
          example: '2024-03-22T12:13:29.718Z'
        updated:
          type: string
          format: date-time
          example: '2024-03-22T12:13:29.718Z'
        reference:
          type: string
          example: 3V053CN9SFIG
        mode:
          type: string
          example: production
    GetCustomerObjectResponse:
      type: object
      description: Customer object
      title: Get Customer Response
      properties:
        data:
          type: object
          description: Customer data
          properties:
            name:
              type: string
              description: Full name of the customer
              example: First Last
            email:
              type: string
              format: email
              description: Email address of the customer
              example: first.last@example.com
            firstName:
              type: string
              description: First name of the customer
              example: First
            lastName:
              type: string
              description: Last name of the customer
              example: Last
            purchaseCountry:
              type: string
              description: Country code of the customer's purchase
              example: GB
            trialist:
              type: boolean
              description: Indicates if the customer is a trialist
              example: false
        status:
          type: string
          description: Status of the customer
          example: active
        record_type:
          type: string
          description: Record type of the object
          example: customer
        owner:
          type: string
          description: ID of the owner of the customer
          example: id-3c0f1c952150f672a50224da2d7fd561
        id:
          type: string
          description: Unique identifier of the customer
          example: cus-238a6ee4b713ea8547b44ad1321d9a1d
        service:
          type: string
          description: Service associated with the customer
          example: limio
        created:
          type: string
          format: date-time
          description: Timestamp of when the customer was created
          example: '2024-02-13T14:14:57.958Z'
        updated:
          type: string
          format: date-time
          description: Timestamp of when the customer was last updated
          example: '2024-02-13T14:15:01.465Z'
        reference:
          type: string
          description: Reference code associated with the customer
          example: 13H9NE9DOJT8
        mode:
          type: string
          description: Mode of the customer object
          example: production
    BillingDetails:
      type: object
      properties:
        country:
          type: string
          example: GB
        firstName:
          type: string
          example: First
        lastName:
          type: string
          example: Last
        streetName:
          type: string
          example: Street
        city:
          type: string
          example: City
        address1:
          type: string
          example: Address 1
        address2:
          type: string
          example: Address 2
        postalCode:
          type: string
          example: SW1A 1AA
        buildingNumber:
          type: number
          example: 1
        company:
          type: string
          example: Company
        state:
          type: string
          example: State
    Offer:
      type: object
      properties:
        mode:
          type: string
          example: production
        path:
          type: string
          example: /offers2/Digital Monthly UK multiple
        data:
          $ref: '#/components/schemas/OfferData'
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
          example: '2024-01-24T10:18:17.578Z'
        name:
          type: string
          example: Digital Monthly UK multiple
        id:
          type: string
          example: 95dc800a5c77fd461744c9e0c638ac58c778eeaf
        type:
          type: string
          example: item
        updated:
          type: string
          format: date-time
          example: '2024-01-24T10:18:17.578Z'
        version:
          type: string
          example: 8f72261aebfba7069338ae0845ef31a15460b88e
        record_type:
          type: string
          example: offer
        status:
          type: string
          example: active
    OrderItem:
      type: object
      properties:
        offer:
          $ref: '#/components/schemas/Offer'
        quantity:
          type: integer
          example: 1
        price:
          type: object
          properties:
            summary:
              type: object
              properties:
                headline:
                  type: string
                  example: <p>Headline</p>
            currency:
              type: string
              example: USD
            amount:
              type: integer
              example: 75
        name:
          type: string
          example: $75 for 52 weeks then $31.96 every 4 weeks autorenew
        id:
          type: string
          example: bdc3cfb7-77b9-d8b8-7395-f44758ef1b29
        startDate:
          type: string
          format: date
          example: '2024-03-22'
        products:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetails'
    GetOrderObjectResponse:
      type: object
      description: Order object
      title: Get Order Response
      properties:
        name:
          type: string
          description: Order name
          example: 2JTPIUPFQCQ0
        data:
          type: object
          description: Order data
          properties:
            email:
              type: string
              example: user@domain.com
            name:
              type: string
              example: First Last
            tracking:
              $ref: '#/components/schemas/Tracking'
            country:
              type: string
              example: GB
            billingDetails:
              $ref: '#/components/schemas/BillingDetails'
            __spec_version:
              type: string
              example: '2'
            external_id:
              type: string
              example: 1HPJ18UUJRV
            source:
              type: string
              example: salesforce
              enum:
                - salesforce
                - limio
            orderItems:
              type: array
              items:
                $ref: '#/components/schemas/OrderItem'
            process_immediately:
              type: boolean
              example: true
            mode:
              type: string
              example: production
            total:
              type: object
              properties:
                currency:
                  type: string
                  example: USD
                amount:
                  type: integer
                  example: 75
            payment:
              type: object
              properties:
                type:
                  type: string
                  example: invoice
                invoicePref:
                  type: string
                  example: Email
            customerDetails:
              type: object
              properties:
                lastName:
                  type: string
                  example: Last
                firstName:
                  type: string
                  example: First
            sourceDetails:
              type: object
              properties:
                instance:
                  type: string
                  example: env.scratch.my.salesforce.com
            initiated_source:
              type: string
              example: salesforce
            orderDate:
              type: string
              format: date-time
              example: '2024-03-22T12:13:28.026Z'
        status:
          type: string
          example: active
        record_type:
          type: string
          example: order
        owner:
          type: string
          example: id-39e4c3727b273ec4110b5769c10cdb52
        id:
          type: string
          example: order-db546637c354a63b0eeaa121a0c14f0b
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
          example: '2024-03-22T12:13:29.455Z'
        updated:
          type: string
          format: date-time
          example: '2024-03-22T12:13:29.972Z'
        reference:
          type: string
          example: 6RAHJ3FGQKL0
        mode:
          type: string
          example: production
        authority:
          type: object
          properties:
            aut:
              type: object
              properties:
                iss:
                  type: string
                  example: issuer.domain
                sub:
                  type: string
                  example: test@user.com
            permissions:
              type: array
              items:
                type: string
                example: order:*
    GetIdentityObjectResponse:
      type: object
      description: Identity object
      title: Get Identity Response
      properties:
        data:
          type: object
          description: Identity data
          properties:
            email:
              type: string
              format: email
              example: user@domain.com
            cognito:username:
              type: string
            email_verified:
              type: boolean
              example: true
            event_id:
              type: string
              example: 222900c6-fc72-4418-86ee-c4e6e69e2c67
            isValidated:
              type: boolean
              example: true
            iss:
              type: string
              example: issuer.domain
            jti:
              type: string
              example: asdasd3
            origin_jti:
              type: string
              example: asdasd
            sub:
              type: string
              example: asdasd
        status:
          type: string
          example: active
        record_type:
          type: string
          example: identity
        record_variant:
          type: string
          example: '@limio/id'
        owner:
          type: string
          example: id-hjgjh7897jkhjk
        id:
          type: string
          example: id-98789kjhkjhjk
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
          example: '2024-02-13T14:13:48.378Z'
        updated:
          type: string
          format: date-time
          example: '2024-02-13T14:13:48.386Z'
        mode:
          type: string
          example: production
    CustomerAddress:
      type: object
      description: Customer Address object
      title: Get Customer Address Response
      properties:
        record_type:
          type: string
          example: address
        id:
          type: string
          example: address-sadsdasdaasd
        relationship_id:
          type: string
          example: rel-4d84ed598c025e72561dedfe029e5ec0
        data:
          type: object
          properties:
            firstName:
              type: string
              example: First
            lastName:
              type: string
              example: Last
            country:
              type: string
              example: United Kingdom
            address2:
              type: string
              example: Address 2
            city:
              type: string
              example: City
            address1:
              type: string
              example: Address 1
            postalCode:
              type: string
              example: SW1A 1AA
            company:
              type: string
              example: string
            state:
              type: string
              example: State
            email:
              type: string
              format: email
              example: user@domain.com
        related:
          type: string
          example: cus-238a6ee4b713ea8547b44ad1321d9a1d
        service:
          type: string
          example: limio
        start:
          type: string
          format: date-time
        relationship_type:
          type: string
          example: billing
        mode:
          type: string
          example: production
        created:
          type: string
          format: date-time
          example: '2024-02-13T14:20:24.658Z'
        status:
          type: string
          example: active
        owner:
          type: string
          example: id-3c0f1c952150f672a50224da2d7fd561
        customer:
          type: string
          example: cus-238a6ee4b713ea8547b44ad1321d9a1d
        updated:
          type: string
          format: date-time
          example: '2024-02-13T14:20:24.658Z'
        reference:
          type: string
          example: 6CR7JI0LQBB0
    GetScheduleObjectResponse:
      type: object
      description: Schedule object
      title: Get Schedule Response
      properties:
        data:
          type: object
          description: Schedule data
          properties:
            date:
              type: string
              format: date-time
              example: '2024-03-13T00:00:00.000Z'
            amountWithoutTax:
              type: string
              example: '25.00'
            lineItems:
              type: array
              items:
                type: object
                properties:
                  amountWithoutTax:
                    type: string
                    example: '25.00'
                  processingType:
                    type: string
                    example: Charge
                  quantity:
                    type: integer
                    example: 1
                  taxAmount:
                    type: string
                    example: '0.00'
                  chargeName:
                    type: string
                    example: Per Unit Charge
                  productName:
                    type: string
                    example: Digital
                  chargeDescription:
                    type: string
                    example: ''
            amount:
              type: string
              example: '25.00'
            quantity:
              type: integer
              example: 1
            description:
              type: string
              example: Monthly Digital
            currency:
              type: string
              example: GBP
            unit_amount:
              type: string
              example: '25.00'
            schedule_date:
              type: string
              format: date-time
              example: '2024-03-13T00:00:00.000Z'
            type:
              type: string
              example: payment
            taxAmount:
              type: integer
              example: 0
        status:
          type: string
          example: pending-external
        record_type:
          type: string
          example: schedule
        related:
          type: string
          example: sub-asdasd123213
        owner:
          type: string
          example: id-asdasd123123
        id:
          type: string
          example: schedule-saddsd213123
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
          example: '2024-02-13T14:15:01.197Z'
        updated:
          type: string
          format: date-time
          example: '2024-02-13T14:15:01.197Z'
        reference:
          type: string
          example: 37A9JDOP2JL0
        mode:
          type: string
          example: production
    GetPaymentMethodObjectResponse:
      type: object
      description: Payment Method object
      title: Get Payment Method Response
      properties:
        type:
          type: string
          example: zuora
        data:
          type: object
          description: Payment method data
          properties:
            type:
              type: string
              example: zuora
            zuora:
              type: object
              properties:
                result:
                  type: object
                  properties:
                    LastTransactionDateTime:
                      type: string
                      format: date-time
                      example: '2024-02-13T03:14:54.000-11:00'
                    LastTransactionStatus:
                      type: string
                      example: Approved
                    NumConsecutiveFailures:
                      type: integer
                      example: 0
                    UpdatedDate:
                      type: string
                      format: date-time
                      example: '2024-02-13T03:14:54.000-11:00'
                    UpdatedById:
                      type: string
                      example: '3'
                    CreditCardExpirationMonth:
                      type: integer
                      example: 1
                    CreditCardExpirationYear:
                      type: integer
                      example: 2030
                    CreditCardType:
                      type: string
                      example: Visa
                    CreditCardHolderName:
                      type: string
                      example: First Last
                    PaymentMethodStatus:
                      type: string
                      example: Active
                    Active:
                      type: boolean
                      example: false
                    Type:
                      type: string
                      example: CreditCard
                    CreatedById:
                      type: string
                      example: '3'
                    CreditCardMaskNumber:
                      type: string
                      example: '************4242'
                    CreatedDate:
                      type: string
                      format: date-time
                      example: '2024-02-13T03:14:54.000-11:00'
                    BankIdentificationNumber:
                      type: string
                      example: '424242'
                    IsCompany:
                      type: boolean
                      example: false
                    TotalNumberOfErrorPayments:
                      type: integer
                      example: 0
                    Id:
                      type: string
                      example: 8ad09c9f8d8dc4c7018da2d2193839c5
                    TotalNumberOfProcessedPayments:
                      type: integer
                      example: 0
                    UseDefaultRetryRule:
                      type: boolean
                      example: true
                signature:
                  type: string
                success:
                  type: boolean
                  example: true
                tenantId:
                  type: string
                  example: '33390'
                responseFrom:
                  type: string
                  example: Response_From_Submit_Page
                refId:
                  type: string
                  example: asdas23123
                paymentGateway:
                  type: string
                  example: Gateway Name
                token:
                  type: string
                  example: asdas123123
            timing:
              type: object
              properties:
                delta:
                  type: integer
                  example: 1154
            address:
              type: object
              properties:
                country:
                  type: string
                  example: GB
                firstName:
                  type: string
                  example: First
                lastName:
                  type: string
                  example: Last
                streetName:
                  type: string
                  example: Street
                address2:
                  type: string
                  example: ''
                city:
                  type: string
                  example: City
                address1:
                  type: string
                  example: Address 1
                postalCode:
                  type: string
                  example: SW1A 1AA
                buildingNumber:
                  type: string
                  example: '1'
                company:
                  type: string
                  example: Company Name
                state:
                  type: string
                  example: State
        status:
          type: string
          example: active
        record_type:
          type: string
          example: payment_method
        related:
          type: string
          example: cus-asdas123123
        owner:
          type: string
          example: id-asdasd1234
        customer:
          type: string
          example: cus-asdasd123123
        id:
          type: string
          example: pm-asdasd123123
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
          example: '2024-02-13T14:14:58.213Z'
        updated:
          type: string
          format: date-time
          example: '2024-02-13T14:15:01.276Z'
        reference:
          type: string
          example: 1ILMEOM90FMG
        mode:
          type: string
          example: production
    PromoCodeProductDetails:
      type: object
      properties:
        product:
          type: object
          properties:
            path:
              type: string
              example: /products/Discounts
              description: Path to the Limio Product.
        ratePlan:
          type: object
          properties:
            path:
              type: string
              example: '''30% Off Monthly'' 1 month only'
              description: The name of the rate plan. This rate plan should exist in the product specified. Its type should match the discount type specified in the payload
      required:
        - product
        - ratePlan
    PromoCodeData:
      type: object
      properties:
        promoCode:
          type: string
          example: abc123
          description: The object name. Not included values will not be updated and nested values will require the structure to update.  Updates will only occur for the id provided. WARNING! Changing this field might break integrations
        status:
          type: boolean
          example: true
          description: Sets the status of the promo code. If true, the promo code is active. If false, the promo code is inactive.
        description:
          type: string
          example: ''
          description: A brief description of the promo code.
        promoStartDate:
          type: string
          format: date
          example: '2024-11-11'
          description: The start date for the promo code. If no start date is provided, the promo code will be active immediately providing the status is set to active.
        promoExpiryDate:
          type: string
          format: date
          example: '2024-12-31'
          description: The expiry date for the promo code. If no expiry date is provided, the promo code will be active indefinitely.
        productDetails:
          $ref: '#/components/schemas/PromoCodeProductDetails'
        usage:
          type: object
          properties:
            availableQuantity:
              type: number
              example: 100
              description: The number of times the promo code can be used. If undefined, the promo code can be used an unlimited number of times.
        discount:
          type: object
          oneOf:
            - title: Discount Type Percentage
              properties:
                discountType:
                  type: string
                  const: DiscountPercentage
                percentageDiscount:
                  type: number
                  example: 12
                  description: The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage.
                durationLength:
                  type: integer
                  example: 1
                  description: The duration length of the discount.
                durationType:
                  type: string
                  example: Months
                  enum:
                    - Days
                    - Weeks
                    - Months
                    - Years
                  description: The duration type (e.g., months).
            - title: Discount Type Fixed Amount
              properties:
                discountType:
                  type: string
                  const: DiscountFixedAmount
                amountDiscount:
                  type: number
                  example: 10
                  description: The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount.
                currency:
                  type: string
                  example: USD
                  description: The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system.
                durationLength:
                  type: integer
                  example: 1
                  description: The duration length of the discount.
                durationType:
                  type: string
                  example: Months
                  enum:
                    - Days
                    - Weeks
                    - Months
                    - Years
                  description: The duration type (e.g., months).
      required:
        - promoCode
        - status
        - productDetails
        - discount
    GetPromoCodeV2ObjectResponse:
      type: object
      description: Promo Code V2 object
      title: Get Promo Code V2 Response
      properties:
        name:
          type: string
          description: Promo code name
          example: ABC123
        data:
          $ref: '#/components/schemas/PromoCodeData'
        status:
          type: string
          example: initial
        record_type:
          type: string
          example: promo_code_v2
        id:
          type: string
          example: promo_code_v2-ABC123
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
          example: '2024-03-22T12:13:29.718Z'
        updated:
          type: string
          format: date-time
          example: '2024-03-22T12:13:29.718Z'
        mode:
          type: string
          example: production
    GetSubscriptionOfferObjectResponse:
      type: object
      description: Subscription Offer object
      title: Get Subscription Offer Response
      properties:
        data:
          type: object
          description: Subscription Offer data
          properties:
            name:
              type: string
              example: Monthly Digital
            start:
              type: string
              format: date-time
              example: '2024-02-13T14:14:56.403Z'
            price:
              type: object
              description: Price details
              properties:
                summary:
                  type: object
                  example: {}
                currency:
                  type: string
                  example: GBP
                amount:
                  type: number
                  example: 5.99
            offer:
              $ref: '#/components/schemas/Offer'
            quantity:
              type: integer
              example: 1
            details:
              type: string
              example: ''
            id:
              type: string
              example: asdasd123123
            tracking:
              type: object
              properties:
                offers:
                  type: array
                  items:
                    type: string
                    example: /offers2/Monthly Digital
                lmo_offer:
                  type: string
                  example: /offers2/Monthly+Digital
                campaign:
                  type: string
                  example: /pages2/Default
                tag:
                  type: string
                  example: /tags/default
            products:
              type: array
              items:
                type: object
                properties:
                  baseTemplate:
                    type: string
                    example: /config/templates/products/default
                  entitlements:
                    type: array
                    items:
                      type: object
                      properties:
                        $ref:
                          type: string
                          example: /entitlements/Digital
                  path:
                    type: string
                    example: /products/Digital
                  created:
                    type: string
                    format: date-time
                    example: '2023-12-27T11:05:38+00:00'
                  modified:
                    type: string
                    format: date-time
                    example: '2024-01-31T11:33:19+00:00'
                  attributes:
                    type: object
                    properties:
                      display_name__limio:
                        type: string
                        example: Digital
                      Product Family:
                        type: string
                        example: Digital
                      product_code__limio:
                        type: string
                        example: LI.DIGITAL
                  record_subtype:
                    type: 'null'
                    example: null
                  record_type:
                    type: string
                    example: product
        status:
          type: string
          example: active
        record_type:
          type: string
          example: subscription_offer
        related:
          type: string
          example: sub-asdasd123123
        owner:
          type: string
          example: id-asdas12313
        customer:
          type: string
          example: id-123123asdas
        id:
          type: string
          example: subscription_offer-aasda12312
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
          example: '2024-02-13T14:14:58.146Z'
        updated:
          type: string
          format: date-time
          example: '2024-02-13T14:14:58.146Z'
        reference:
          type: string
          example: J2OQMM8EU4O0
        mode:
          type: string
          example: production
    GetUserEntitlementObjectResponse:
      type: object
      description: Entitlement object
      title: Get User Entitlement Response
      properties:
        from:
          type: string
          example: 7PKAAZR1EKEF0
        code:
          type: string
          example: digital_ent
        type:
          type: string
          example: subscription
        endDate:
          type: string
          format: date
          example: '2024-03-13'
        startDate:
          type: string
          format: date-time
          example: '2024-02-13T14:14:56.403Z'
        effectiveDate:
          type: string
          format: date-time
          example: '2024-02-13T14:14:56.403Z'
    PromoCodeWholeBasket:
      type: object
      allOf:
        - properties:
            applicationLevel:
              type: string
              example: wholeBasket
              enum:
                - wholeBasket
              description: Specifies if the promo code applies to the whole basket.
        - $ref: '#/components/schemas/PromoCodeData'
      required:
        - applicationLevel
    PromoCodeSelectedItems:
      type: object
      allOf:
        - properties:
            applicationLevel:
              type: string
              example: selectedItems
              enum:
                - selectedItems
              description: Specifies if the promo code applies to selected items.
            referencedOfferLabel:
              type: string
              example: cart
              description: A label referencing the specific offer. This corresponds to the label__limio value set in the offer or add-on
        - $ref: '#/components/schemas/PromoCodeData'
      required:
        - applicationLevel
        - referencedOfferLabel
    UpdateObject:
      type: object
      properties:
        name:
          type: string
          example: abc123
          description: The object name such as the subscription name, or gift code name. Not included values will not be updated  and nested values will require the structure to update. Updates will only occur for the id provided. WARNING! Changing this field might break integrations
        data:
          type: object
          oneOf:
            - properties:
                quantity:
                  type: number
                  example: 2
            - $ref: '#/components/schemas/PromoCodeWholeBasket'
            - $ref: '#/components/schemas/PromoCodeSelectedItems'
      required:
        - data
    UpdateObjectResponse:
      type: object
      properties:
        id:
          type: string
          description: The ID of the object
          example: sub-123123123
        sort_key:
          type: string
          description: The sort key of the object
          example: object/subscription
        data:
          type: object
          description: The data of the object sent in the request
          example:
            quantity: 2
    DeleteObjectResponse:
      type: object
      properties:
        httpStatusCode:
          type: integer
          description: The HTTP status code of the response
          example: 200
        requestId:
          type: string
          description: The request ID
          example: 1234ABC
        attempts:
          type: integer
          description: The number of attempts made
          example: 1
        totalRetryDelay:
          type: integer
          description: The total retry delay in milliseconds
          example: 0
    GetOrderObjectsResponse:
      type: object
      description: Get Order Objects Response object
      title: Get Orders Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetOrderObjectResponse'
    GetSubscriptionObjectsResponse:
      type: object
      description: Response object
      title: Get Subscriptions Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetSubscriptionObjectResponse'
    GetCustomerObjectsResponse:
      type: object
      description: Response object
      title: Get Customers Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetCustomerObjectResponse'
    GetIdentityObjectsResponse:
      type: object
      description: Response object
      title: Get Identities Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetIdentityObjectResponse'
    GetCustomerAddressObjectsResponse:
      type: object
      description: Response object
      title: Get Customer Addresses Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/CustomerAddress'
    GetScheduleObjectsResponse:
      type: object
      description: Response object
      title: Get Schedules Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetScheduleObjectResponse'
    GetPaymentMethodObjectsResponse:
      type: object
      description: Response object
      title: Get Payment Methods Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetPaymentMethodObjectResponse'
    GetPromoCodeV2ObjectsResponse:
      type: object
      title: Get Promo Code V2 Objects Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetPromoCodeV2ObjectResponse'
    GetSubscriptionOfferObjectsResponse:
      type: object
      description: Response object
      title: Get Subscription Offers Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetSubscriptionOfferObjectResponse'
    GetUserEntitlementObjectsResponse:
      type: object
      description: Response object
      title: Get User Entitlements Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetUserEntitlementObjectResponse'
    GetEventObjectResponse:
      type: object
      title: Order Event Response
      properties:
        data:
          type: object
          description: Metadata about the event
          properties:
            hasError:
              type: boolean
              description: Indicates whether the event contains an error
              example: false
            message:
              type: string
              description: Human-readable description of the event
              example: Order Received - New payment method
            source:
              type: string
              description: Source of the event, either shop or salesforce
              example: shop
            type:
              type: string
              description: Type of event
              example: order.change_payment
        status:
          type: string
          description: Current status of the event
          example: processed
        record_type:
          type: string
          description: Type of record
          example: event
        id:
          type: string
          description: Unique identifier for the event
          example: event-b6b644c234e8bff77de4dc0eda6cc759
        service:
          type: string
          description: Name of the service generating the event
          example: limio
        created:
          type: string
          format: date-time
          description: ISO timestamp when the event was created
          example: '2025-05-12T14:01:49.394Z'
        mode:
          type: string
          description: Environment mode in which the event occurred
          example: production
    GetEventObjectsResponse:
      type: object
      title: Get Event Objects Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetEventObjectResponse'
    GetProcessEventObjectResponse:
      type: object
      description: Process event object indicating plugin results
      title: Process Event Response
      properties:
        data:
          type: object
          description: Event metadata containing plugin error details
          properties:
            criticalPluginErrors:
              type: array
              description: List of critical plugin errors that occurred during processing
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Name of the plugin where the error occurred
                    example: zuora
                  stack:
                    type: string
                    description: Full stack trace of the error
                    example: |
                      Error: request failed 400: {"Errors":[{"Message":"Missing required value: FirstName","Code":"MISSING_REQUIRED_VALUE"}],"Success":false}
                          ...
                  message:
                    type: string
                    description: Error message returned by the plugin
                    example: 'request failed 400: {"Errors":[{"Message":"Missing required value: FirstName","Code":"MISSING_REQUIRED_VALUE"}],"Success":false}'
                  critical:
                    type: boolean
                    description: Whether the error is considered critical
                    example: true
        status:
          type: string
          description: Status of the processing event
          example: error
        record_type:
          type: string
          description: Type of record
          example: process_event
        id:
          type: string
          description: Unique identifier for the event
          example: process_event-6f09ee7495a3ce3b0807d708a62279a7
        service:
          type: string
          description: Name of the service generating the event
          example: limio
        created:
          type: string
          format: date-time
          description: Timestamp of when the event was created
          example: '2025-05-12T11:14:17.948Z'
        mode:
          type: string
          description: Deployment mode
          example: production
    GetProcessEventObjectsResponse:
      type: object
      title: Get Process Event Objects Response
      properties:
        items:
          type: array
          description: Array of objects
          items:
            $ref: '#/components/schemas/GetProcessEventObjectResponse'
    RelatedObjectsResponse:
      type: object
      description: Related Objects
      properties:
        items:
          type: array
          items:
            type: object
            description: Related Object
            properties:
              name:
                type: string
                description: Related Object name
                example: Limio Subscription
              id:
                type: string
                description: Related Object id
                example: e3535c52-3058-472e-aa4f-fe772a7c0f38
              relationship_id:
                type: string
                description: Relationship id
                example: rel-123123sasdas
              type:
                type: string
                description: Related Object type
                example: zuora
                enum:
                  - zuora
              record_type:
                type: string
                description: Related Object record type
                example: subscription
                enum:
                  - customer
                  - order
                  - subscription_offer
                  - address
                  - event
                  - identity
                  - subscription
                  - payment_method
              service:
                type: string
                description: Related Object service
                example: limio
                enum:
                  - limio
                  - zuora
                  - salesforce
                  - zephr
              mode:
                type: string
                description: Mode in which the related object was created
                example: production
              created:
                type: string
                format: date-time
                description: ISO date string on which the related object was created
                example: '2020-03-18T16:02:01.526Z'
              data:
                type: object
                description: Relationship data
                properties:
                  reference:
                    type: string
                    description: Relationship reference
                    example: 217OU0391HEG
                  id:
                    type: string
                    description: Object id
                    example: e3535c52-3058-472e-aa4f-fe772a7c0f38
                  related:
                    type: string
                    description: The id of the object to which this relationship object is related
                    example: order-bcc1997b17b7824caf86b06451904fb8
                  record_type:
                    type: string
                    description: Relationship record type
                    example: rel
                  service:
                    type: string
                    description: Relationship service
                    example: limio
                  mode:
                    type: string
                    description: Mode in which the relationship was created
                    example: production
                  created:
                    type: string
                    description: ISO date string on which the relationship was created
                    example: '2020-03-18T16:02:01.526Z'
                  data:
                    type: object
                    description: Data of the two objects in the relationship
                    properties:
                      from:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Object name
                            example: Limio Subscription
                          id:
                            type: string
                            description: Object id
                            example: e3535c52-3058-472e-aa4f-fe772a7c0f38
                          record_type:
                            type: string
                            description: Object record type
                            example: subscription
                          service:
                            type: string
                            description: Object service
                            example: limio
                          data:
                            type: object
                            description: Additional object data
                      to:
                        type: object
                        properties:
                          name:
                            type: string
                            description: Object name
                            example: Limio Order
                          id:
                            type: string
                            description: Object id
                            example: order-bcc1997b17b7824caf86b06451904fb8
                          record_type:
                            type: string
                            description: Object record type
                            example: order
                          service:
                            type: string
                            description: Object service
                            example: limio
                          data:
                            type: object
                            description: Additional object data
                      metadata:
                        type: object
                        description: Additional relationship data
    GetObjectSubTypeResponse:
      type: object
      description: Children Objects
      properties:
        items:
          type: array
          description: Children Object array
          items:
            type: object
            description: Child Object
            properties:
              name:
                type: string
                description: Child Object name
                example: Limio Subscription
              id:
                type: string
                description: Child Object id
                example: e3535c52-3058-472e-aa4f-fe772a7c0f38
              related:
                type: string
                description: The id of the object to which this child object is related
                example: order-bcc1997b17b7824caf86b06451904fb8
              owner:
                type: string
                description: The id of the parent object
                example: id-UshF1h62VLeKzukBmLGb59kU9c1Jn_hNewKngSrNXl8
              record_type:
                type: string
                description: Child Object record type
                example: subscription
              service:
                type: string
                description: Child Object service
                example: limio
              mode:
                type: string
                description: Mode in which the child object was created
                example: production
              created:
                type: string
                description: ISO date string on which the child object was created
                example: '2020-03-18T16:02:01.526Z'
              data:
                type: object
                description: Additional data of the child object
    GetObjectEventsResponse:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              record_type:
                type: string
                example: event
              id:
                type: string
                example: event-64ad4e5eab8a9288e379a1e059c0d3ee
              relationship_id:
                type: string
                example: rel-344856c1b0d4f64c4f8738bd1758ea0b
              data:
                type: object
                properties:
                  message:
                    type: string
                    example: Order Received
                  type:
                    type: string
                    example: order.change_address
                  source:
                    type: string
                    example: shop
              related:
                type: string
                example: order-bcd2d53ebd5066d8fc644507ed5f1cdf
              service:
                type: string
                example: limio
              mode:
                type: string
                example: production
              created:
                type: string
                format: date-time
                example: '2024-02-13T14:20:24.608Z'
              status:
                type: string
                example: submitted
        unpackedItems:
          type: array
          items:
            type: object
            properties:
              mode:
                type: string
                example: production
              status:
                type: string
                example: sprint-96/production/limio/active
              created:
                type: string
                format: date-time
                example: '2024-02-13T14:20:24.608Z'
              sort_key:
                type: string
                example: rel/object/order/limio/order-bcd2d53ebd5066d8fc644507ed5f1cdf/event/limio/event-64ad4e5eab8a9288e379a1e059c0d3ee
              related:
                type: string
                example: sprint-96/production/limio/order-bcd2d53ebd5066d8fc644507ed5f1cdf
              reference:
                type: string
                example: 1K91BC3C6KUO
              service:
                type: string
                example: limio
              hash:
                type: string
                example: sprint-96/production/limio/event-64ad4e5eab8a9288e379a1e059c0d3ee
              updated:
                type: string
                format: date-time
                example: '2024-02-13T14:20:24.608Z'
              header:
                type: object
                properties:
                  from:
                    type: object
                    properties:
                      id:
                        type: string
                        example: limio/event-64ad4e5eab8a9288e379a1e059c0d3ee
                      data:
                        type: object
                        properties:
                          message:
                            type: string
                            example: Order Received
                          type:
                            type: string
                            example: order.change_address
                          source:
                            type: string
                            example: shop
                      record_type:
                        type: string
                        example: event
                      service:
                        type: string
                        example: limio
                      status:
                        type: string
                        example: submitted
                  metadata:
                    type: object
                    example: {}
                  to:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 34LL75TASAIG
                      id:
                        type: string
                        example: limio/order-bcd2d53ebd5066d8fc644507ed5f1cdf
                      data:
                        type: object
                        example: {}
                      record_type:
                        type: string
                        example: order
                      service:
                        type: string
                        example: limio
                      status:
                        type: string
                        example: active
              tenant_id:
                type: string
                example: sprint-96
              processName:
                type: string
                example: unknown/1/8/8eafcaaa-c04c-47d9-abfe-3e4dc381fe4c
              id:
                type: string
                example: limio/rel-344856c1b0d4f64c4f8738bd1758ea0b
              record_type:
                type: string
                example: sprint-96/production/limio/rel
              body:
                type: object
                example: {}
    UpdatePromoCodeObjects:
      type: object
      properties:
        name:
          type: string
          example: abc123
          description: The object name. Not included values will not be updated and nested values will require the structure to update.  Updates will only occur for the id provided. WARNING! Changing this field might break integrations
        id:
          type: string
          example: promo_code_v2-abc123
          description: The object id. This is the record_type and name concatenated such as promo_code_v2-abc123.  Not included values will not be updated and nested values will require the structure to update.  Updates will only occur for the id provided. WARNING! Changing this field might break integrations
        data:
          oneOf:
            - $ref: '#/components/schemas/PromoCodeWholeBasket'
            - $ref: '#/components/schemas/PromoCodeSelectedItems'
      required:
        - name
        - id
        - data
    UpdateObjectsResponse:
      type: object
      properties:
        id:
          type: string
          description: The ID of the object
          example: promo_code_v2-CODE123
        name:
          type: string
          description: The name of the object
          example: CODE123
        status:
          type: string
          description: The status of the object
          example: active
        record_type:
          type: string
          description: The record type of the object
          example: promo_code_v2
        service:
          type: string
          description: The service of the object
          example: limio
        data:
          type: object
          description: The data of the object sent in the request
          example:
            promoStartDate: '2024-10-07'
    TransferOwnershipRequest:
      type: object
      properties:
        sourceId:
          type: string
          example: id-6306ee777d16170f96338bcaec7e825f
        destinationId:
          type: string
          example: id-459605d1dac621bc8b0201cce6ca6f11
        message:
          type: string
          example: Transfer ownership
    TransferOwnershipResponse:
      type: object
      properties:
        result:
          type: object
          properties:
            sourceId:
              type: string
              example: id-e3cdd2126f13a7cfd0bcb526384a3b2c
            destinationId:
              type: string
              example: id-dbf94081308168b4057f2b41035ded82
            updatedIds:
              type: array
              items:
                type: string
              example:
                - subscription_offer-8b9e945bba16exx5f875a566eecccbc7
                - sub-8b6bd55194a0b23b49fd8xx1822c507f
                - schedule-3159cb9c9b4fa7655xx1179cb1fb4059
                - schedule-21029311834d0cfxx0a2693cff4359b7
                - pm-1413873b06d82097xxd94bdf23210d7c
                - order-sprint-105-vxtzyxxRLEMzqsOVT_7i4SoDSsBnKjKZJo3dVtZ3HlY
                - zuora/id-17359482xx
                - salesforce/id-RNS7PMxxUQlUa3mZZC
                - salesforce/id-3Rxx6B9hG0mJ8YwV7X
                - zuora/id-101086xx0007
                - id-bWlncmF0ZWQvOExxQWUwMDAwMFlEQ1FDUlYw
                - cus-1bbb47ac9f4b92c5875c34bxxacb9bcf
                - address-48b6ed42821xx35ea845bcbebecf70dc
                - address-0c3ef6f5a606ce6403d93xxc5f1f6afe
            failedIds:
              type: array
              items:
                type: string
              example: []
            eventId:
              type: string
              example: event-6309e8123d80df483e7e2ad3463b0a00
        success:
          type: boolean
          example: true
    ExternalIdentityRequest:
      type: object
      properties:
        id_token:
          description: id_token
          type: object
          properties:
            iss:
              type: string
              example: https://domain.com
            sub:
              type: string
              example: sub
    AddExternalIdentityResponse:
      type: object
      properties:
        name:
          type: string
          example: John Doe
        data:
          type: object
          properties:
            iss:
              type: string
              example: https://domain.com
            sub:
              type: string
              example: sub
        status:
          type: string
          example: active
        record_type:
          type: string
          example: identity
        record_variant:
          type: string
          example: '@limio/external-id'
        owner:
          type: string
          example: '123456789012345678901'
        id:
          type: string
          example: '12345678901234564923810'
        service:
          type: string
          example: limio
        created:
          type: string
          example: '2021-01-01T00:00:00.000Z'
        updated:
          type: string
          example: '2021-01-01T00:00:00.000Z'
        mode:
          type: string
          example: production
    RemoveExternalIdentityResponse:
      type: object
      properties: {}
    ForgetCustomerDataResponse:
      type: object
      properties:
        customerId:
          type: string
          example: cus-fc689f05092b27605bb622a6ca7871b0
        eventId:
          type: string
          example: event-596b708a4e9794466d7c7d9841d0d2d9
        success:
          type: boolean
          example: true
    GetAbandonedCheckoutsResponse:
      type: object
      properties:
        items:
          type: array
          description: The list of baskets retrieved
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier of the basket
                example: basket-8cf72b2a-eb57-462d-8e55-981c3b5e5364
              created:
                type: string
                format: date-time
                description: The date and time the basket was created
                example: '2024-03-26T15:44:54.975Z'
              customerDetails:
                type: object
                description: Details about the customer or potential customer that abandoned the checkout
                properties:
                  email:
                    type: string
                    description: The value from the checkout form email field, or the user's email if they authenticated
                    example: user@limio.com
              orderItems:
                type: array
                description: The list of order items in the basket
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: The name of the order item
                      example: The Offer
                    path:
                      type: string
                      description: The path of the order item
                      example: /offers2/The Offer
                    products:
                      type: array
                      description: The list of products associated with the order item
                      items:
                        type: object
                        properties:
                          path:
                            type: string
                            description: The path of the product
                            example: /products/Digital All Access
                          productCode:
                            type: string
                            description: The product code
                            example: SKU-00000001
              tracking:
                type: object
                description: Tracking data for the basket
              identities:
                type: array
                description: The list of identities associated with the basket
                items:
                  type: object
                  properties:
                    sub:
                      type: string
                      description: The subject identifier
                      example: user@test.com
                    iss:
                      type: string
                      description: The issuer
                      example: https://issuer.domain
                    service:
                      type: string
                      description: The service associated with the identity
                      example: salesforce
                    type:
                      type: string
                      description: The type of identity
                      example: account
              entry:
                type: string
                description: The entry point for the basket
                example: /checkout
              completed:
                type: boolean
                description: Indicates if the basket has been completed
                example: false
              recoveryLink:
                type: string
                description: Recovery link to provide to user to allow them to recover abandoned checkout session
                example: /api/checkout/recover?basket=basket-8cf72b2a-eb57-462d-8e55-981c3b5e5364&recover=abc123
        queryMore:
          type: string
          description: Cursor for the next page of results
          example: eyJ2IjoiMSIsImMiOiJjYjY0ZDY1YS1iYzQwLTQ3YjItODI5Ny1mN2E4ZGEyYjA0M2UiLCJyIjoiMjAyNC0wMy0yNlQxNTowNDo1NC45NzVaIn0=
    InitiateCheckout:
      type: object
      title: Initiate Checkout
      description: Create a new basket
      allOf:
        - type: object
          properties:
            order:
              type: object
              properties:
                orderItems:
                  type: array
                  items:
                    type: object
                    properties:
                      offer:
                        $ref: '#/components/schemas/OfferPayload'
                      quantity:
                        type: number
                        example: 1
                external_id:
                  type: string
                  description: external order reference - becomes the checkoutId of the order
                  example: '1234567890'
                tracking:
                  $ref: '#/components/schemas/Tracking'
                country:
                  type: string
                  example: GB
                  description: the country code of the customer's purchase location
                source:
                  type: string
                  description: source of the order
                  example: shop
                order_type:
                  type: string
                  enum:
                    - new
                    - renew
              required:
                - orderItems
                - external_id
                - country
                - source
                - order_type
          required:
            - order
    Price:
      type: object
      properties:
        summary:
          type: object
          properties:
            headline:
              type: string
              example: <p>£5.99</p>
        currency:
          type: string
          example: GBP
        amount:
          type: number
          example: 5.99
    LineItem:
      type: object
      properties:
        amountWithoutTax:
          type: string
        processingType:
          type: string
        quantity:
          type: integer
        taxAmount:
          type: string
        chargeName:
          type: string
        productName:
          type: string
        chargeDescription:
          type: string
    Schedule:
      type: object
      properties:
        data:
          type: object
          properties:
            date:
              type: string
              format: date-time
            amountWithoutTax:
              type: string
            lineItems:
              type: array
              items:
                $ref: '#/components/schemas/LineItem'
    SubscriptionData:
      type: object
      properties:
        name:
          type: string
          example: Digital Monthly UK multiple
        tracking:
          type: object
          properties:
            offers:
              type: array
              items:
                type: string
                example: /offers2/Digital Monthly UK multiple
            purchaseCountryCode:
              type: string
              example: GB
            accountId:
              type: string
              example: 0018c000031m4fHAAQ
            contactId:
              type: string
              example: 0038c00003WEiIPAA1
            userId:
              type: string
              example: 0058c00000ADNGKAA5
        offer:
          $ref: '#/components/schemas/Offer'
        quantity:
          type: integer
          example: 1
        termEndDate:
          type: string
          format: date
          example: '2024-03-12'
        price:
          $ref: '#/components/schemas/Price'
        termStartDate:
          type: string
          format: date
          example: '2024-02-12'
        attributes:
          type: object
          properties:
            gift:
              type: boolean
              example: false
            external:
              type: boolean
              example: false
        id:
          type: string
          example: bc371cb3-43a9-1c83-722a-b56eeb212dbb
        purchaseCountry:
          type: string
          example: GB
        startDate:
          type: string
          format: date
          example: '2024-02-12'
        products:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetails'
        schedule:
          type: array
          items:
            $ref: '#/components/schemas/Schedule'
        offers:
          type: array
          items:
            $ref: '#/components/schemas/Offer'
        address:
          type: array
          items:
            $ref: '#/components/schemas/Address'
    Subscription:
      type: object
      properties:
        name:
          type: string
          example: 2TJ25TK632EG
        start:
          type: string
          format: date
          example: '2024-02-12'
        data:
          $ref: '#/components/schemas/SubscriptionData'
        status:
          type: string
          example: active
        record_type:
          type: string
          example: subscription
        owner:
          type: string
          example: id-62401f8d5bf6b26a37ea0defd66fd005
        customer:
          type: string
          example: cus-3578da83e3e4f12dff39b314bb486ca6
        id:
          type: string
          example: sub-02ecc45ed0c313a8dc4dd84c45854796
        service:
          type: string
          example: limio
        ref:
          type: string
          example: order-4dd195c3eee4297e33aecb5436cf8092/bc371cb3-43a9-1c83-722a-b56eeb212dbb
        created:
          type: string
          format: date-time
          example: '2024-02-12T17:27:50.087Z'
        updated:
          type: string
          format: date-time
          example: '2024-02-12T17:27:54.005Z'
        reference:
          type: string
          example: 2TJ25TK632EG
        mode:
          type: string
          example: production
    Customer:
      type: object
      properties:
        data:
          type: object
          properties:
            name:
              type: string
            email:
              type: string
            firstName:
              type: string
            lastName:
              type: string
            purchaseCountry:
              type: string
            trialist:
              type: boolean
            address:
              type: array
              items:
                $ref: '#/components/schemas/CustomerAddress'
        status:
          type: string
        record_type:
          type: string
        owner:
          type: string
        id:
          type: string
        service:
          type: string
        created:
          type: string
        updated:
          type: string
        reference:
          type: string
        mode:
          type: string
    TimelineField:
      type: object
      required:
        - label
        - type
      properties:
        label:
          type: string
          description: Field label to display in the Timeline UI
          example: Offer Name
        type:
          type: string
          description: Type of field to render
          enum:
            - string
            - date
            - currency
            - number
            - boolean
            - json
          example: string
        value:
          description: Field value as rendered by the Timeline. Null values hide the row.
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
          example: My offer
        additionalInfo:
          type: string
          description: Optional metadata for formatting (e.g. currency code GBP, locale GB)
          example: GBP
    CreateTimelineEvent:
      type: object
      required:
        - forSubscription
        - name
        - type
        - fields
      properties:
        forSubscription:
          description: Subscription to add the event for
          oneOf:
            - $ref: '#/components/schemas/SubscriptionByName'
            - $ref: '#/components/schemas/SubscriptionById'
        name:
          type: string
          description: Event name
          example: Order Received
        type:
          type: string
          description: Domain/type of event
          example: order.event_received
        source:
          type: string
          description: Source of the event e.g. system, user, webhook
          example: webhook
        fields:
          type: array
          description: |
            Renderable data for the Timeline. Each item is shown as a field row in the UI. Use `additionalInfo` for currency codes, date locale hints, masks, etc.
          items:
            $ref: '#/components/schemas/TimelineField'
    CreateTimelineEventResponse:
      type: object
      required:
        - id
        - status
        - reference
      properties:
        id:
          type: string
          description: Limio event ID generated for the created event
          example: event-03bc891227308ae7c7a258240ac60b82
        reference:
          type: string
          description: Limio event reference generated for the created event
          example: 3NI4H49PGHBG
        status:
          type: string
          description: Processing status of the event
          example: submitted
    GetTimelineResponse:
      type: object
      properties:
        metadata:
          type: object
          properties:
            ownerId:
              type: string
              description: The owner ID of the subscription or customer
          required:
            - ownerId
        subscriptions:
          type: array
          items:
            type: object
            properties:
              action:
                type: string
                description: Human-readable action description (e.g., "New Subscription", "Change Payment")
              type:
                type: string
                description: The order type (e.g., "order.new", "order.change_payment")
              subscriptionId:
                type: string
                description: The unique identifier of the subscription
              subscriptionNumber:
                type: string
                description: The subscription number/name
              created:
                type: string
                format: date-time
                description: When the event was created
              createdBy:
                type: string
                description: User ID who created the event
              status:
                type: string
                description: Current status of the event (e.g. error, completed)
              service:
                type: string
                description: Service name (e.g., "Zuora")
              fields:
                type: array
                description: Additional fields specific to the event type, such as dates and prices
                items:
                  type: object
                  additionalProperties: true
              error:
                type: boolean
                description: Indicates if there was an error processing this timeline event
            required:
              - action
              - type
              - subscriptionId
              - subscriptionNumber
              - created
              - createdBy
              - status
      required:
        - metadata
        - subscriptions
      example:
        metadata:
          ownerId: id-dff9df30bdaa4d7f8b19681af37db6c7
        subscriptions:
          - action: New Subscription
            type: order.new
            subscriptionId: sub-fdb5ff44f3513733c91869c43fdd37ba0
            subscriptionNumber: 32F5P8T7EG40
            created: '2024-01-15T10:30:00Z'
            createdBy: 0058c00000ADNGKAA5
            status: completed
            service: Zuora
            fields:
              - label: Offer Name
                value: Premium Monthly
                type: string
              - label: Price
                value: $29.99
                type: currency
          - action: Change Payment
            type: order.change_payment
            subscriptionId: sub-fdb5ff44f3513733c91869c43fdd37ba0
            subscriptionNumber: 32F5P8T7EG40
            created: '2024-01-20T14:15:00Z'
            createdBy: 0058c00000ADNGKAA5
            status: completed
            service: Zuora
            fields:
              - label: Payment Method
                value: '****1234'
                type: string
    ElasticAsset:
      type: object
      properties:
        id:
          type: string
          description: Asset id in the Elastic index
          example: d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c
        name:
          type: string
          description: Name of asset
          example: MyImage
        parent_path:
          type: string
          description: Parent Path
          example: /assets/image
        path:
          type: string
          description: Asset path
          example: /assets/image/MyImage
        data:
          type: object
          properties:
            attributes:
              type: object
              description: Attributes for asset
            baseTemplate:
              type: string
              description: Template for asset attributes
              example: /config/templates/assets
            key:
              type: string
              description: S3 key for asset
              example: 1e1f1dd8-7609-4bb5-8ec0-7e0ec83abadd.png
    ElasticProduct:
      type: object
      properties:
        id:
          type: string
          description: Product id in the Elastic index
          example: d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c
        name:
          type: string
          description: Name of product
          example: Entertainment Pass
        parent_path:
          type: string
          description: Parent Path
          example: /products/Streaming
        path:
          type: string
          description: Product path
          example: /products/Streaming/Entertainment Pass
        data:
          type: object
          properties:
            attributes:
              type: object
              description: Attributes for product
            baseTemplate:
              type: string
              description: Template for product attributes
              example: /config/templates/products
    ElasticOffer:
      properties:
        id:
          type: string
          description: Offer id in the Elastic index
          example: d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c
        name:
          type: string
          description: Offer name
          example: Limio Regular Subscription
        parent_path:
          type: string
          description: Parent Path
          example: /offers/2019 Winter Campaign
        path:
          type: string
          description: Path to the offer
          example: /offers/2019 Winter Campaign/Limio Regular Subscription
        data:
          type: object
          description: Data attached to offer
          properties:
            attributes:
              type: object
            price:
              type: array
              description: Prices of offer
              items:
                type: object
                description: Price item
                properties:
                  attributes:
                    type: object
                  name:
                    type: string
                    description: Charge name
                    example: charge_1
                  label:
                    type: string
                    description: Label for charge
                    example: Charge 1
                  currencyCode:
                    type: string
                    description: Currency of charge
                    example: GBP
                  value:
                    type: string
                    description: Value of charge
                    example: '75'
                  type:
                    type: string
                    description: Pricing type
                    example: onetime
                  trigger:
                    type: string
                    description: Trigger for the charge
                    example: subscription_start
                  repeat_interval:
                    type: integer
                    description: Number of repeat_interval_type between charges
                    example: 1
                  repeat_interval_type:
                    type: string
                    description: The unit between charges
                    example: months
                  repeat_count:
                    type: integer
                    description: The number of times the charge will be repeated
                    example: 12
                  delay_trigger:
                    type: string
                    description: Delay to charge trigger
                  delay_interval:
                    type: integer
                    description: Number of delay_interval_type that charge will be delayed
                    example: 1
                  delay_interval_type:
                    type: string
                    description: The unit charge will be delayed
                    example: months
            products:
              type: array
              description: Products attached to offer
              items:
                $ref: '#/components/schemas/ElasticProduct'
            segments:
              type: array
              description: Segments attached to offer
              items:
                type: string
                description: Path to segment
                example: /segments/regions/UK/UK/GB
            tags:
              type: array
              description: Tags attached to campaign
              items:
                type: string
                description: tag path
                example: /tags/test
            status:
              type: string
              description: Offer status
              example: approved
            description:
              type: string
              description: Offer description
              example: A starter offer which gives access to all Limio content
            validFrom:
              type: string
              description: Date offer is valid from
              example: '20190226'
            validTo:
              type: string
              description: Date offer is valid until
              example: '20190305'
    AssociatedOffer:
      properties:
        type:
          type: string
          description: The type of associated offer can be of type "cross-sell", "upsell" or "save"
          example: cross-sell
        offer:
          $ref: '#/components/schemas/ElasticOffer'
    ElasticCampaign:
      properties:
        id:
          type: string
          description: Campaign id in the Elastic index
          example: d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c
        parent_path:
          type: string
          description: Parent Path
          example: /offers
        path:
          type: string
          description: Path to the campaigns
          example: /offers/2019 Winter Campaign
        attributes:
          type: object
          description: Attribures of campaign
        name:
          type: string
          description: Name of campaign
          example: 2019 Winter Campaign
        data:
          type: object
          description: data object
          properties:
            description:
              type: string
              description: Description of campaign
              example: A campaign for new Limio customers
            headline:
              type: string
              description: Headline of campaign
              example: Look at the Limio offers below!
            subline:
              type: string
              description: Subline of campaign
              example: They are great!
            assets:
              type: array
              description: Assets attached to campaign
              items:
                $ref: '#/components/schemas/ElasticAsset'
            tags:
              type: array
              description: Tags attached to campaign
              items:
                type: string
                description: tag path
                example: /tags/test
            status:
              type: string
              description: Campaign status
              example: draft
            validFrom:
              type: string
              description: Date campaign is valid from
              example: '20190226'
            validTo:
              type: string
              description: Date campaign is valid until
              example: '20190305'
            associatedOffers:
              type: array
              description: Different offers associated with this campaign eg. 'cross-sell', 'upsell'  or 'save'
              items:
                $ref: '#/components/schemas/AssociatedOffer'
    GetCampaignResponse:
      type: object
      properties:
        hits:
          type: number
          description: Amount of records found on the catalog responding the query
          example: 1
        header:
          description: header with information about the requested data
          type: object
          properties:
            commitId:
              description: the commitId from the index used to query
              type: string
              example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
        items:
          type: array
          description: Campaigns retrieved
          items:
            $ref: '#/components/schemas/ElasticCampaign'
        queryMore:
          type: object
          description: query more object used for pagination
          properties:
            from:
              type: string
              description: Cursor for the next page of results
              example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
            alias:
              type: string
              description: The Alias used to fetch next page of the query
              example: catalog_test.test0.dev.limio.com
    ElasticPage:
      type: object
      description: A published page stored in the Limio catalog index.
      properties:
        id:
          type: string
          description: Page identifier within the catalog index.
          example: 4b4f1a8457f4fb4a9c7c2a8da2c9b8f4a1b2c3d4.Default
        parent_path:
          type: string
          description: Parent path for the page.
          example: /pages
        path:
          type: string
          description: Full path to the page.
          example: /pages/default
        name:
          type: string
          description: Human readable page name.
          example: Default Page
        type:
          type: string
          description: Catalog record type.
          example: page
        version:
          type: string
          description: Version identifier for the page definition.
          example: 1.0.0
        attributes:
          type: object
          description: Additional metadata stored with the page.
        data:
          type: object
          description: Page configuration payload as stored in the catalog.
    GetPagesResponse:
      type: object
      description: Paginated list of published pages.
      properties:
        items:
          type: array
          description: Pages returned for the current query window.
          items:
            $ref: '#/components/schemas/ElasticPage'
        hits:
          type: integer
          description: Total number of pages that matched the query.
          example: 42
        queryMore:
          type: object
          description: Cursor information for retrieving the next page of results.
          properties:
            from:
              type: string
              description: Cursor token for the next request.
              example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAABCD
            alias:
              type: string
              description: Elastic alias used to continue the query.
              example: catalog_example.example.dev.limio.com
        commitId:
          type: string
          description: Commit identifier for the source index.
          example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
        buildId:
          type: string
          description: Build identifier of the index queried.
          example: build-20240501010101
        indexName:
          type: string
          description: Name of the Elastic index queried.
          example: catalog_example_default
    ElasticOfferV2:
      properties:
        id:
          type: string
          description: Offer id in the Elastic index
          example: fab052ce94fbfd0d3663ec0cb9d977367a593684
        name:
          type: string
          description: Offer name
          example: SaaS Basic Plan
        path:
          type: string
          description: Path to the offer
          example: /offers2/SaaS Basic Plan
        created:
          type: string
          description: Offer creation date
          example: '2025-01-10T09:00:00+00:00'
        modified:
          type: string
          description: Offer last modification date
          example: '2025-03-10T10:00:00+00:00'
        version:
          type: string
          description: Offer version
          example: 3f5a2a4b9de911c8f73e876d2c44a2f7f739acb2
        version_date:
          type: string
          description: Offer version date
          example: '2025-03-11T15:33:12.072Z'
        record_type:
          type: string
          description: Record type
          example: offer
        duplicatedFrom:
          type: string
          description: Path of offer duplicated from
          example: /offers2/SaaS Starter Plan
        baseTemplate:
          type: string
          description: Base template path
          example: /config/templates/offers/default
        priceReference:
          type: string
          description: Reference price path
          example: /offers2/SaaS Basic Plan
        user:
          type: string
          description: User associated with offer
          example: user@domain.com
        data:
          type: object
          description: Data attached to offer
          properties:
            attributes:
              type: object
              properties:
                display_name__limio:
                  type: string
                  description: Display name
                  example: SaaS Basic Plan
                checkout_description__limio:
                  type: string
                  description: Checkout description
                  example: <p>Annual subscription to the Basic SaaS tier</p>
                allowed_countries__limio:
                  type: array
                  description: Allowed countries
                  example:
                    - US
                    - GB
                    - CA
                checkout__limio:
                  type: object
                  properties:
                    checkout_type:
                      type: string
                      example: external
                    external_url:
                      type: string
                      example: /checkout
                allow_multibuy__limio:
                  type: boolean
                  description: Whether multiple purchases of this offer are allowed
                  example: true
                label__limio:
                  type: array
                  description: Labels
                  example:
                    - saas
                    - annual
                    - basic
                term__limio:
                  type: object
                  properties:
                    renewal_type:
                      type: string
                      example: TERMED
                    renewal_trigger:
                      type: string
                      example: AUTO
                push_to_checkout__limio:
                  type: boolean
                  description: Push to checkout
                  example: true
                initial_term__limio:
                  type: object
                  properties:
                    renewal_type:
                      type: string
                      example: TERMED
                    renewal_trigger:
                      type: string
                      example: AUTO
                cross_sell_addons__limio:
                  type: object
                  description: Cross-sell add-ons such as additional services
                  properties:
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            example: 9b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7g8h9i
                          path:
                            type: string
                            example: /add_ons/SMS Texting
                    item_label:
                      type: string
                      example: basic_addons
                    item_type:
                      type: string
                      example: add_on
                upsell_offers__limio:
                  type: object
                  description: Upsell offers to higher SaaS tiers
                  properties:
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            example: 7f92b8a3f1c7d67e5b23b8f920b8b1e3b9b2e8f1
                          path:
                            type: string
                            example: /offers2/SaaS Plus Plan
                    item_label:
                      type: string
                      example: upsell_saas
                    item_type:
                      type: string
                      example: offer
                cross_sell_offers__limio:
                  type: object
                  description: Cross-sell offers such as complementary SaaS solutions
                  properties:
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            example: 8d1b857a225977ed3a41916af2efa000f6b6ee99
                          path:
                            type: string
                            example: /offers2/SaaS AI Usage Add-On
                    item_label:
                      type: string
                      example: saas_cross
                    item_type:
                      type: string
                      example: offer
                upsell_display_name__limio:
                  type: string
                  description: Upsell display name
                  example: <p><strong>Pro Plan</strong></p>
                upsell_display_description__limio:
                  type: string
                  description: Upsell display description
                  example: <p>$1,499 / year</p>
                cross_sell_display_description__limio:
                  type: string
                  description: Cross-sell display description
                  example: <p>Add SMS Texting, Email Campaigns or AI Usage</p>
                cross_sell_display_name__limio:
                  type: string
                  description: Cross-sell display name
                  example: <p>Enhance your plan with add-ons</p>
            price:
              type: array
              description: Prices of offer
              example:
                - name: charge_1
                  label: Charge 1
                  value: '999.00'
                  currencyCode: USD
                  type: recurring
                  trigger: subscription_start
                  repeat_interval: 1
                  repeat_interval_type: years
                  repeat_count: 1
                  delay_interval: 1
                  attributes: []
                  delay_interval_type: years
                  subscription_start_day: asap
              items:
                type: object
                description: Price item
                properties:
                  name:
                    type: string
                    description: Charge name
                    example: charge_1
                  label:
                    type: string
                    description: Label for charge
                    example: Charge 1
                  value:
                    type: string
                    description: Value of charge
                    example: '999.00'
                  currencyCode:
                    type: string
                    description: Currency of charge
                    example: USD
                  type:
                    type: string
                    description: Pricing type
                    example: recurring
                  trigger:
                    type: string
                    description: Trigger for the charge
                    example: subscription_start
                  repeat_interval:
                    type: integer
                    description: Number of repeat_interval_type between charges
                    example: 1
                  repeat_interval_type:
                    type: string
                    description: The unit between charges
                    example: years
                  repeat_count:
                    type: integer
                    description: The number of times the charge will be repeated
                    example: 1
                  delay_interval:
                    type: integer
                    description: Number of delay_interval_type that charge will be delayed
                    example: 1
                  delay_interval_type:
                    type: string
                    description: The unit charge will be delayed
                    example: years
                  attributes:
                    type: array
                    items: {}
                    example: []
                  subscription_start_day:
                    type: string
                    description: When the subscription starts
                    example: asap
            productBundles:
              type: array
              description: Product bundles attached to offer
              items:
                type: object
                properties:
                  product_path:
                    type: string
                    description: Path to product
                    example: /products/SaaS
                  revenue_split:
                    type: string
                    description: Revenue split percentage
                    example: '100'
                  rate_plan:
                    type: string
                    description: Rate plan
                    example: Annual
            products:
              type: array
              description: Products attached to offer
              items:
                type: object
                properties:
                  baseTemplate:
                    type: string
                    description: Base template path
                    example: /config/templates/products/default
                  path:
                    type: string
                    description: Path to product
                    example: /products/SaaS
                  lastSynced:
                    type: string
                    description: Last synced timestamp
                    example: '2025-03-10T15:03:10.427Z'
                  synced:
                    type: boolean
                    example: true
                  created:
                    type: string
                    description: Product creation date
                    example: '2025-01-01T10:09:30+00:00'
                  syncedFrom:
                    type: string
                    description: Synced from id
                    example: 2c92c0f9778c090d0177aa4f357d043b
                  modified:
                    type: string
                    description: Product last modification date
                    example: '2025-03-10T15:03:10+00:00'
                  attributes:
                    type: object
                    properties:
                      display_name__limio:
                        type: string
                        description: Display name
                        example: SaaS Product
                      has_delivery__limio:
                        type: boolean
                        description: Has delivery
                        example: false
                      product_code__limio:
                        type: string
                        description: Product code
                        example: SAAS.BASIC
                  record_type:
                    type: string
                    example: product
    GetOffersResponse:
      type: object
      properties:
        hits:
          type: number
          description: Amount of records found on the catalog in response to the query
          example: 2
        items:
          type: array
          description: Offers retrieved
          anyOf:
            - $ref: '#/components/schemas/ElasticOffer'
            - $ref: '#/components/schemas/ElasticOfferV2'
          example:
            - id: d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c
              name: Regular Subscription
              parent_path: /offers/2019 Winter Campaign
              path: /offers/2019 Winter Campaign/Regular Subscription
              data:
                attributes:
                  price:
                    - name: charge_1
                      label: Charge 1
                      currencyCode: GBP
                      value: '75'
                      type: onetime
                      trigger: subscription_start
                      repeat_interval: 1
                      repeat_interval_type: months
                      repeat_count: 12
                      delay_trigger: null
                      delay_interval: 1
                      delay_interval_type: months
                      attributes: {}
                products:
                  - id: prod_abc123
                    name: Digital
                segments:
                  - /segments/regions/UK/UK/GB
                tags:
                  - /tags/test
            - id: fab052ce94fbfd0d3663ec0cb9d9773676593684
              name: Digital offer
              path: /offers2/Digital offer
              created: '2024-02-08T09:54:10+00:00'
              modified: '2024-03-08T10:53:37+00:00'
              version: 101d166f7386bb9f1c76354124a4b51bbe393ccc
              version_date: '2024-03-11T15:33:12.072Z'
              record_type: offer
              duplicatedFrom: /offers2/Delivery offer
              baseTemplate: /config/templates/offers/default
              priceReference: /offers2/Delivery offer
              user: user@limio.com
              data:
                attributes:
                  checkout_description__limio: <p>Description</p>
                  display_name__limio: Delivery Offer
                  allowed_countries__limio:
                    - GB
                  checkout__limio:
                    checkout_type: external
                    external_url: /checkout
                  label__limio:
                    - offers
                  term__limio:
                    renewal_type: TERMED
                    renewal_trigger: EXTERNAL
                  push_to_checkout__limio: true
                  initial_term__limio:
                    renewal_type: TERMED
                    renewal_trigger: EXTERNAL
                price:
                  - delay_interval_type: months
                    delay_interval: null
                    label: Charge 1
                    trigger: order_date
                    repeat_count: 1
                    type: onetime
                    name: charge_1
                    repeat_interval: 1
                    attributes: {}
                    repeat_interval_type: months
                    value: '1.00'
                    currencyCode: GBP
                productBundles:
                  - product_path: /products/Digital
                    revenue_split: '100'
                    rate_plan: Canada Annual
                products:
                  - baseTemplate: /config/templates/products/default
                    path: /products/Digital
                    lastSynced: '2024-03-07T15:03:10.427Z'
                    synced: true
                    created: '2024-02-01T10:09:30+00:00'
                    syncedFrom: 2c92c0f9778c090d0177aa4f357d043b
                    modified: '2024-03-07T15:03:10+00:00'
                    attributes:
                      display_name__limio: Digital
                      has_delivery__limio: false
                      product_code__limio: LI.DIGITAL
                    record_type: product
        queryMore:
          type: object
          description: query more object used for pagination
          properties:
            from:
              type: string
              description: Cursor for the next page of results
              example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
            alias:
              type: string
              description: The Alias used to fetch next page of the query
              example: catalog_test.test0.dev.limio.com
        commitId:
          description: the commitId from the index used to query
          type: string
          example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
    GetOffersV2Response:
      type: object
      properties:
        hits:
          type: number
          description: Amount of records found on the catalog in response to the query
          example: 1
        items:
          type: array
          description: Offers retrieved
          items:
            $ref: '#/components/schemas/ElasticOfferV2'
        queryMore:
          type: object
          description: query more object used for pagination
          properties:
            from:
              type: string
              description: Cursor for the next page of results
              example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
            alias:
              type: string
              description: The Alias used to fetch next page of the query
              example: catalog_test.test0.dev.limio.com
        commitId:
          description: the commitId from the index used to query
          type: string
          example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
    ElasticAddOn:
      properties:
        id:
          type: string
          description: Add On id in the Elastic index
          example: fab052ce94fbfd0d3663ec0cb9d977367a593684
        name:
          type: string
          description: Add On name
          example: Add On Digital
        path:
          type: string
          description: Path to the Add On
          example: /add_ons/Add On Digital
        created:
          type: string
          description: Add On creation date
          example: '2024-02-08T09:54:10+00:00'
        modified:
          type: string
          description: Add On last modification date
          example: '2024-03-08T10:53:37+00:00'
        version:
          type: string
          description: Add On version
          example: 101d166f7386bb9f1c7635412424b51bbe393ccc
        version_date:
          type: string
          description: Add On version date
          example: '2024-03-11T15:33:12.072Z'
        record_type:
          type: string
          description: Record type
          example: add_on
        duplicatedFrom:
          type: string
          description: Path of Add On duplicated from
          example: /add_ons/Add On Digital
        baseTemplate:
          type: string
          description: Base template path
          example: /config/templates/add_ons/default
        user:
          type: string
          description: User associated with Add On
          example: user@domain.com
        data:
          type: object
          description: Data attached to Add On
          properties:
            attributes:
              type: object
              properties:
                display_name__limio:
                  type: string
                  description: Display name
                  example: Delivery Add On
                label__limio:
                  type: array
                  description: Labels
                  example:
                    - Add Ons
            price:
              type: array
              description: Prices of Add On
              items:
                type: object
                description: Price item
                properties:
                  attributes:
                    type: object
                  name:
                    type: string
                    description: Charge name
                    example: charge_1
                  label:
                    type: string
                    description: Label for charge
                    example: Charge 1
                  currencyCode:
                    type: string
                    description: Currency of charge
                    example: GBP
                  value:
                    type: string
                    description: Value of charge
                    example: '1.00'
                  type:
                    type: string
                    description: Pricing type
                    example: onetime
                  trigger:
                    type: string
                    description: Trigger for the charge
                    example: order_date
                  repeat_interval:
                    type: integer
                    description: Number of repeat_interval_type between charges
                    example: 1
                  repeat_interval_type:
                    type: string
                    description: The unit between charges
                    example: months
                  repeat_count:
                    type: integer
                    description: The number of times the charge will be repeated
                    example: 1
                  delay_interval:
                    type: integer
                    description: Number of delay_interval_type that charge will be delayed
                    example: 1
                  delay_interval_type:
                    type: string
                    description: The unit charge will be delayed
                    example: months
            productBundles:
              type: array
              description: Product bundles attached to Add On
              items:
                type: object
                properties:
                  product_path:
                    type: string
                    description: Path to product
                    example: /products/Digital
                  revenue_split:
                    type: string
                    description: Revenue split percentage
                    example: '100'
                  rate_plan:
                    type: string
                    description: Rate plan
                    example: Annual
            products:
              type: array
              description: Products attached to Add On
              items:
                type: object
                properties:
                  baseTemplate:
                    type: string
                    description: Base template path
                    example: /config/templates/products/default
                  path:
                    type: string
                    description: Path to product
                    example: /products/Digital
                  lastSynced:
                    type: string
                    description: Last synced timestamp
                    example: '2024-03-07T15:03:10.427Z'
                  synced:
                    type: boolean
                    example: true
                  created:
                    type: string
                    description: Product creation date
                    example: '2024-02-01T10:09:30+00:00'
                  syncedFrom:
                    type: string
                    description: Synced from id
                    example: 2c92c0f9778c090d0177aa4f357d043b
                  modified:
                    type: string
                    description: Product last modification date
                    example: '2024-03-07T15:03:10+00:00'
                  attributes:
                    type: object
                    properties:
                      display_name__limio:
                        type: string
                        description: Display name
                        example: Digital
                      has_delivery__limio:
                        type: boolean
                        description: Has delivery
                        example: false
                      product_code__limio:
                        type: string
                        description: Product code
                        example: LI.DIGITAL
                  record_type:
                    type: string
                    example: product
    GetAssetsResponse:
      type: object
      properties:
        hits:
          type: number
          description: Amount of records found on the catalog in response to the query
          example: 1
        items:
          type: array
          description: Assets retrieved
          items:
            $ref: '#/components/schemas/ElasticAsset'
        queryMore:
          type: object
          description: query more object used for pagination
          properties:
            from:
              type: string
              description: Cursor for the next page of results
              example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
            alias:
              type: string
              description: The Alias used to fetch next page of the query
              example: catalog_test.test0.dev.limio.com
        commitId:
          description: the commitId from the index used to query
          type: string
          example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
    GetProductsResponse:
      type: object
      properties:
        hits:
          type: number
          description: Amount of records found on the catalog responding the query
          example: 1
        items:
          type: array
          description: Products retrieved
          items:
            $ref: '#/components/schemas/ElasticProduct'
        queryMore:
          type: object
          description: query more object used for pagination
          properties:
            from:
              type: string
              description: Cursor for the next page of results
              example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
            alias:
              type: string
              description: The Alias used to fetch next page of the query
              example: catalog_test.test0.dev.limio.com
        commitId:
          description: the commitId from the index used to query
          type: string
          example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
    ElasticSegment:
      type: object
      properties:
        id:
          type: string
          description: Segment id in the Elastic index
          example: d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c
        name:
          type: string
          description: Name of segment
          example: Finance
        parent_path:
          type: string
          description: Parent Path
          example: /segments/Interest
        path:
          type: string
          description: Segment path
          example: /segments/Interest/Finance
        data:
          type: object
          properties:
            attributes:
              type: object
              description: Attributes for segment
            baseTemplate:
              type: string
              description: Template for segment attributes
              example: /config/templates/segments
    GetSegmentsResponse:
      type: object
      properties:
        hits:
          type: number
          description: Amount of records found on the catalog responding the query
          example: 1
        items:
          type: array
          description: Segments retrieved
          items:
            $ref: '#/components/schemas/ElasticSegment'
        queryMore:
          type: object
          description: query more object used for pagination
          properties:
            from:
              type: string
              description: Cursor for the next page of results
              example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB
            alias:
              type: string
              description: The Alias used to fetch next page of the query
              example: catalog_test.test0.dev.limio.com
        commitId:
          description: the commitId from the index used to query
          type: string
          example: e44d0795e9d0aa78ddea15c3e925cfd581adfb04
    GetJourneysResponse:
      type: object
      properties:
        starting_point:
          type: string
          description: The starting point of the journey
          example: /cancel-now/
        fallback_tag:
          type: string
          description: The fallback tag for the journey
          example: /cancel/
        journeys:
          type: array
          description: The list of journeys
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier of the journey
                example: 0dd1b0b0-22b1-400e-8590-301aabd50a69
              conditions:
                type: array
                description: The list of conditions for the journey
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      description: The unique identifier of the condition
                      example: c10cb349-e06a-4a13-bd87-edb40aae77dc
                    type:
                      type: string
                      description: The type of the condition
                      enum:
                        - country
                        - region
                        - city
                        - authentication
                        - segment
                        - subscriptionStatus
                        - subscriptionOfferLabel
                        - cloudfrontDevice
                        - queryString
                        - jwt
                        - cookie
                      example: segment
                    value:
                      type: string
                      description: The value of the condition
                      example: /segments/123abc
              actions:
                type: array
                description: The list of actions for the journey
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      description: The unique identifier of the action
                      example: a9e2204a-8fa0-4d17-83cc-1f6c0838daaf
                    type:
                      type: string
                      description: The type of the action
                      example: destination
                    values:
                      type: array
                      description: The list of values for the action
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            description: The unique identifier of the value
                            example: a5113403-7e7d-4c46-9d08-13d79e9df9d1
                          tag:
                            type: string
                            description: The tag associated with the value
                            example: /tags/cancel-discount
                          split:
                            type: string
                            description: The split percentage for the value
                            example: '100'
    getJourneysV2Response:
      type: object
      properties:
        starting_point:
          type: string
          description: The starting point of the journey
          example: /cancel-now/
        fallback_tag:
          type: string
          description: The fallback tag for the journey
          example: /cancel/
        journeys:
          type: array
          description: The list of journeys
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier of the journey
                example: 0dd1b0b0-22b1-400e-8590-301aabd50a69
              conditions:
                type: array
                description: The list of conditions for the journey
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      description: The unique identifier of the condition
                      example: c10cb349-e06a-4a13-bd87-edb40aae77dc
                    type:
                      type: string
                      description: The type of the condition
                      enum:
                        - country
                        - region
                        - city
                        - authentication
                        - segment
                        - subscriptionStatus
                        - subscriptionOfferLabel
                        - cloudfrontDevice
                        - queryString
                        - jwt
                        - cookie
                      example: segment
                    value:
                      type: string
                      description: The value of the condition
                      example: /segments/123abc
              actions:
                type: array
                description: The list of actions for the journey
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      description: The unique identifier of the action
                      example: a9e2204a-8fa0-4d17-83cc-1f6c0838daaf
                    type:
                      type: string
                      description: The type of the action
                      example: destination
                    values:
                      type: array
                      description: The list of values for the action
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            description: The unique identifier of the value
                            example: a5113403-7e7d-4c46-9d08-13d79e9df9d1
                          tag:
                            type: string
                            description: The tag associated with the value
                            example: /tags/cancel-discount
                          split:
                            type: string
                            description: The split percentage for the value
                            example: '100'
    getJourneyByNameV2Response:
      type: object
      properties:
        data:
          type: object
          properties:
            version_date:
              type: string
              format: date-time
              description: The version timestamp of the journey
              example: '2025-03-06T14:25:01.064Z'
            journeys:
              type: array
              description: A list of journeys
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: The unique identifier of the journey
                    example: 17c99708-7d9e-4a52-9b95-5b3c456b4e4f
                  conditions:
                    type: array
                    description: The list of conditions for the journey
                    items:
                      type: object
                    example: []
                  actions:
                    type: array
                    description: The list of actions for the journey
                    items:
                      type: object
                    example: []
            starting_point:
              type: string
              description: The starting point of the journey
              example: ''
        status:
          type: string
          description: The status of the journey record
          example: active
        record_type:
          type: string
          description: The type of record
          example: journey
        id:
          type: string
          description: The unique ID of the journey record
          example: journey-678
        service:
          type: string
          description: The service the journey belongs to
          example: limio
        created:
          type: string
          format: date-time
          description: Timestamp when the record was created
          example: '2025-03-06T14:25:01.064Z'
        updated:
          type: string
          format: date-time
          description: Timestamp when the record was last updated
          example: '2025-03-06T14:25:01.064Z'
        mode:
          type: string
          description: The environment or mode the journey is in
          example: production
        process_hash:
          type: string
          description: The hash used for processing the journey
          example: journey-678
        version:
          type: string
          description: The version hash of the journey
          example: c37254b0e5d43c52ca5da66367261b8c57148d63
    PutJourneysV2Response:
      type: object
      required:
        - name
        - data
      properties:
        name:
          type: string
          description: Name of the journey.
          example: test001
        data:
          type: object
          required:
            - journeys
          description: Journey conditions to be added.
          properties:
            journeys:
              type: array
              description: A list of journeys to be updated.
              items:
                type: object
                required:
                  - id
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique identifier for the journey.
                    example: 3f16d308-15f7-4185-874e-5ab2ec0eb644
                  conditions:
                    type: array
                    description: List of conditions to be evaluated for the journey.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Condition identifier.
                          example: 64ef0c29-893a-44de-ba2b-2f3e793a9fc2
                        type:
                          type: string
                          description: Condition type, such as "country".
                          example: country
                        value:
                          type: array
                          description: Condition values.
                          items:
                            type: string
                            example: example_value
                  actions:
                    type: array
                    description: List of actions to be executed for the journey.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Action identifier.
                          example: e98094b3-23f8-487d-b0fe-05526940767c
                        type:
                          type: string
                          description: Action type, such as "destination".
                          example: destination
                        values:
                          type: array
                          description: List of action values.
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                description: Action value identifier.
                                example: ceb9fab6-2ba7-45b2-b199-43f2f40f9cc5
                              tag:
                                type: string
                                description: Action value tag, such as "/".
                                example: /
                              split:
                                type: string
                                description: Action value split.
                                example: '100'
            starting_point:
              type: string
              description: Optional starting point of the journey.
              example: /
            fallback_tag:
              type: string
              description: Optional fallback tag.
              example: ''
            domains:
              type: array
              description: Optional list of domains related to the journey.
              items:
                type: string
              example:
                - example.com
                - example.org
    BulkUpdateCatalogItemResponse:
      type: object
      properties:
        success:
          type: string
        failed:
          type: array
    BuildShopResponse:
      type: object
      properties:
        buildPaths:
          type: array
          description: The list of campaigns and pages built
          example:
            - /offers/Limio Campaign
            - /pages/Limio Page
        id:
          type: string
          description: The unique identifier of the build
          example: build-{{limioTenant}}-shop:xxxxx
        success:
          type: boolean
          description: Indicates if the build has been completed
          example: true
    RepositoryComponentBuildsResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the build
          items:
            type: string
            example: '{env-name}-component-builder-2:468d57a0-c9f7-4f66-ba3a-86eac185f0d0'
        buildNumber:
          type: string
          description: The build number of the build
          example: '25'
        commitId:
          type: string
          description: The commit id which triggered the build
          example: 608f72e742a77bd0862b1b30d84814f00fc2fceb
        startTime:
          type: string
          description: Indicates the time the build started
          example: '2024-03-26T12:22:14.554Z'
        endTime:
          type: string
          description: Indicates the time the build ended
          example: '2024-03-26T12:22:14.554Z'
        buildStatus:
          type: string
          description: Indicates the status of the build
          enum:
            - SUCCEEDED
            - FAILED
            - FAULT
            - TIMED_OUT
            - IN_PROGRESS
            - STOPPED
        buildComplete:
          type: boolean
          description: Indicates if the build has been completed
          example: true
        logErrors:
          type: array
          description: Any error messages that occurred during the build, which may prevent the shop from building successfully
          example:
            - 'Error: No such import ''MyIcon'' in /offerCard.js'
    PublishCampaignResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates whether the operation was successful
          example: true
        publishedData:
          type: object
          description: Contains the published data
          properties:
            pages:
              type: object
              description: Contains the published pages
              additionalProperties:
                type: array
                items:
                  type: object
                  properties:
                    path:
                      type: string
                      description: The path of the published page
                      example: /default/
                    isDefault:
                      type: boolean
                      description: Indicates whether the page is the default page
                      example: true
                    pathPrefix:
                      type: string
                      description: The path prefix of the published page
                      example: /__v/956ec1a_1712754608
                    type:
                      type: string
                      description: The type of the published item
                      example: page
                    codebuildId:
                      type: string
                      description: The codebuild ID associated with the published page
                      example: build-shard-shop:b83ee127-2301-4358-b993-cb3d7f009718
                    buildDate:
                      type: string
                      format: date-time
                      description: The build date of the published page
                      example: '2024-04-10T13:11:05.534Z'
                    name:
                      type: string
                      description: The name of the published page
                      example: Campaign
                    publishedDate:
                      type: string
                      format: date-time
                      description: The date and time when the page was published
                      example: '2024-04-10T13:13:05.081Z'
                    userName:
                      type: string
                      description: The username of the user who published the page
                      example: user@limio.com
              example:
                /default/:
                  - path: /default/
                    isDefault: true
                    pathPrefix: /__v/956ec1a_1712754608
                    type: page
                    codebuildId: build-shard-shop:b83ee127-2301-4358-b993-cb3d7f009718
                    buildDate: '2024-04-10T13:11:05.534Z'
                    name: Campaign
                    publishedDate: '2024-04-10T13:13:05.081Z'
                    userName: user@limio.com
                /checkout/:
                  - path: /checkout/
                    isDefault: false
                    pathPrefix: /__v/4b09596_1712311159
                    type: page
                    codebuildId: build-shard-shop:b83ee127-2301-4358-b993-cb3d7f009718
                    buildDate: '2024-04-05T10:00:39.455Z'
                    name: Checkout
                    publishedDate: '2024-04-05T10:01:07.401Z'
                    userName: user@limio.com
        ommitedWithError:
          type: object
          description: Contains information about omitted items with errors
          properties:
            pages:
              type: object
              description: Contains information about omitted pages with errors
              example: {}
    UserSessionEntitlementsResponse:
      type: object
      properties:
        owner:
          type: string
          description: The limio identity that owns the session.
        entitlements:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: The entitlement code
              startDate:
                type: string
                format: date
                description: The start date of the entitlement
              endDate:
                type: string
                format: date
                description: The end date of the entitlement
              effectiveDate:
                type: string
                format: date
                description: The effective date of this request
              type:
                type: string
                enum:
                  - subscription
    SyncZuoraDataResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates if the sync has been completed
          example: true
        id:
          description: The id of the subscription created in Limio
          type: string
          example: sub-5c3d83c60950014c306865f0ab8c499b
        owner:
          description: The id of the owner identity of the subscription created in Limio
          type: string
          example: id-23252f4950f5efe7de30de37da283149
    PartnerOrganisation:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the partner organisation
        name:
          type: string
          description: Organisation name
        data:
          type: object
          properties:
            zuoraAccountId:
              type: string
              description: Associated Zuora account ID
            isZuoraInvoiceOwner:
              type: boolean
              description: Whether this organisation owns Zuora invoices
            salesforceAccountId:
              type: string
              description: Associated Salesforce account ID
            logo:
              type: string
              format: uri
              description: Organisation logo URL
        record_type:
          type: string
          enum:
            - partner_org
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
    PartnerUser:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the partner user
        name:
          type: string
          description: User identifier (typically email)
        data:
          type: object
          properties:
            email:
              type: string
              format: email
              description: User email address
        partner_org:
          type: string
          description: Associated partner organisation ID
        record_type:
          type: string
          enum:
            - partner_user
        service:
          type: string
          example: limio
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
  responses:
    401Response:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                default: Unauthorized
    502Response:
      description: Bad Gateway
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                default: Internal server error
                description: This typically indicates an error in the request to the Limio API, such as an invalid request or a missing parameter.
    404RepositoryResponse:
      description: Builds not found
      content:
        application/json:
          schema:
            type: object
            properties:
              requestId:
                type: string
                description: The unique identifier of the request
                example: c855dce3-7f28-4fb5-8793-e68fc5769c9d
              code:
                type: string
                description: The error code
                example: builds_not_found
              message:
                type: string
                description: The error message
                example: No custom component builds found
  parameters:
    service:
      in: path
      name: service
      required: true
      description: The service the object belongs to
      schema:
        type: string
        enum:
          - limio
          - zuora
          - salesforce
        default: limio
    path_type:
      in: path
      required: true
      name: path_type
      schema:
        type: string
        enum:
          - orders
          - customers
          - subscriptions
          - identities
          - address
          - schedules
          - payment_methods
          - subscription_offers
          - user_entitlements
          - gift_code
          - promo_codes_v2
          - events
          - process
    id:
      in: path
      name: id
      required: true
      schema:
        type: string
        example: sub-abcxyz123456
    limit:
      in: query
      name: limit
      description: The number of objects to return.
      schema:
        type: number
        example: 10
    queryMore:
      in: query
      name: queryMore
      description: Retrieves the next page of results. Use the queryMore returned in the previous response.
      schema:
        type: string
        example: DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH
    record_type:
      in: path
      name: record_type
      required: true
      description: The record type of the object
      schema:
        type: string
        enum:
          - offer
          - order
          - customer
          - gift_code
          - promo_code
          - identity
          - schedule
          - subscription_offer
          - payment_method
          - rate_plan
          - entitlement
          - product
    subtype:
      in: path
      name: subtype
      description: The subtype of an object
      schema:
        type: string
        enum:
          - offer
          - order
          - customer
          - gift_code
          - promo_code
          - identity
          - schedule
          - subscription_offer
          - payment_method
          - rate_plan
          - entitlement
          - product
    createdAfter:
      in: query
      name: createdAfter
      description: Filter items created after the provided ISO date-time string
      schema:
        type: string
        example: '2020-12-01T16:00:00Z'
        format: date-time
    path:
      in: query
      name: path
      description: Exact path to the object
      schema:
        type: string
    tags:
      in: query
      name: tags
      description: To filter by associated tag to the object
      schema:
        type: string
    reducedData:
      in: query
      name: reducedData
      description: Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)
      schema:
        type: boolean
    optPageSize:
      in: query
      name: opt.pageSize
      description: Set the page size for the array response (default is 50 records). Bear in mind that response size limit is 6Mb so if you need to retrieve lots of data is probably best practice to use the queryMore functionality
      schema:
        type: number
    optModifiedAfter:
      in: query
      name: opt.modifiedAfter
      description: Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')
      schema:
        type: string
        format: date-time
        example: '2020-12-01T16:00:00Z'
    optAll:
      in: query
      name: opt.all
      description: Indicate true to activate the pagination
      schema:
        type: boolean
    optQueryMoreFrom:
      in: query
      name: opt.queryMoreFrom
      description: The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)
      schema:
        type: string
    optQueryMoreAlias:
      in: query
      name: opt.queryMoreAlias
      description: The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)
      schema:
        type: string
    attributes:
      in: query
      name: attributes.YOUR_ATTRIBUTE_HERE
      description: To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.
      schema:
        type: string
        example: Due Upon Receipt
    offersSource:
      in: query
      name: offersSource
      description: Specifies the source for fetching offers. `catalog` Retrieves all offersV2 from your catalog. `published` Retrieves only published offers.
      schema:
        type: string
        enum:
          - catalog
          - published
    addOnsSource:
      in: query
      name: addOnsSource
      description: Specifies the source for fetching Add Ons. `catalog` Retrieves all add ons from your catalog. `published` Retrieves only published add ons.
      schema:
        type: string
        enum:
          - catalog
          - published
    journeyName:
      in: path
      name: journeyName
      description: The name of the journey to update.
      schema:
        type: string
        example: Digital Journey
    commitHash:
      in: query
      name: commitHash
      description: Will retrieve the build information for the specified commit hash.
      schema:
        type: string
        example: qv0hg3h4
x-tagGroups:
  - name: Order
    tags:
      - Send Orders
  - name: User
    tags:
      - Subscription
      - Identities
      - Basket
      - Session
  - name: Objects
    tags:
      - Get Objects
      - Create Objects
      - Update Objects
  - name: Catalog
    tags:
      - Get Catalog Items
      - Update Catalog Items
  - name: Build and Publish
    tags:
      - Build
      - Publish
  - name: Sync
    tags:
      - Sync Zuora Data
  - name: Journeys V2
    tags:
      - Journeys V2
  - name: Partner Portal
    tags:
      - Partner Management
      - Get Objects For Partner
