> For the complete documentation index, see [llms.txt](https://docs.limio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.limio.com/api/models.md).

# Models

## The OfferPayload object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}}}}}
```

## The Tracking object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Tracking":{"type":"object","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}}}}}
```

## The InitiateCheckout object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"type":{"type":"string","description":"Item type. Only required when the basket includes add-ons alongside offers — set to \"offer\" for the main offer and \"add_on\" for each add-on. Can be omitted for offer-only baskets.","enum":["offer","add_on"]}}}},"external_id":{"type":"string","description":"external order reference - becomes the checkoutId of the order"},"tracking":{"$ref":"#/components/schemas/Tracking"},"country":{"type":"string","description":"the country code of the customer's purchase location"},"source":{"type":"string","description":"source of the order"},"order_type":{"type":"string","description":"Order type. If omitted, it is inferred from the order: \"renew\" when a subscription id or reference is present, otherwise \"new\".","enum":["new","renew"]}}}},"required":["order"]}]},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}},"Tracking":{"type":"object","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}}}}}
```

## The admin\_InitiateCheckout object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"admin_InitiateCheckout":{"type":"object","title":"Initiate Checkout","description":"Create a new checkout session. Extends the standard initiate checkout request with additional fields such as journey configuration and flexible basket expiry.","allOf":[{"$ref":"#/components/schemas/InitiateCheckout"},{"type":"object","properties":{"journey":{"type":"object","description":"Optional journey configuration for the checkout session. Allows specifying a custom checkout URL for the customer.","properties":{"checkout":{"type":"string","description":"Custom checkout page path for the customer to complete the order."}}},"expiresAfter":{"type":"object","description":"How long the basket should remain active before expiring. Defaults to 14 days if not specified.","properties":{"seconds":{"type":"integer","minimum":60,"description":"Expiry in seconds (min 60)."},"minutes":{"type":"integer","minimum":1,"description":"Expiry in minutes."},"hours":{"type":"integer","minimum":1,"description":"Expiry in hours."},"days":{"type":"integer","minimum":1,"description":"Expiry in days."}}}}}]},"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"},"type":{"type":"string","description":"Item type. Only required when the basket includes add-ons alongside offers — set to \"offer\" for the main offer and \"add_on\" for each add-on. Can be omitted for offer-only baskets.","enum":["offer","add_on"]}}}},"external_id":{"type":"string","description":"external order reference - becomes the checkoutId of the order"},"tracking":{"$ref":"#/components/schemas/Tracking"},"country":{"type":"string","description":"the country code of the customer's purchase location"},"source":{"type":"string","description":"source of the order"},"order_type":{"type":"string","description":"Order type. If omitted, it is inferred from the order: \"renew\" when a subscription id or reference is present, otherwise \"new\".","enum":["new","renew"]}}}},"required":["order"]}]},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}},"Tracking":{"type":"object","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}}}}}
```

## The SubscriptionOrderItem object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SubscriptionOrderItem":{"type":"object","required":["orderItemActionType","type"],"properties":{"id":{"type":"string","description":"Auto-generated UUID for the order item"},"orderItemActionType":{"type":"string","enum":["add","remove"],"description":"Action to perform on this item"},"type":{"type":"string","enum":["offer","addon"],"description":"Type of item being added or removed"},"offerId":{"type":"string","description":"ID of the offer or add-on"},"quantity":{"type":"integer","minimum":1,"default":1,"description":"Quantity of the item"},"price":{"type":"object","description":"Price details (calculated by system)","readOnly":true},"orderLineItem":{"type":"object","description":"Line item details (calculated by system)","readOnly":true},"effective_date":{"type":"string","format":"date-time","description":"When this item takes effect (set by system)","readOnly":true}}}}}}
```

## The SubscriptionOffer object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SubscriptionOffer":{"type":"object","description":"Subscription offer or add-on details","properties":{"id":{"type":"string","description":"Offer identifier"},"name":{"type":"string","description":"Offer name"},"description":{"type":"string","description":"Offer description"},"price":{"type":"object","description":"Pricing information","properties":{"currency":{"type":"string"},"amount":{"type":"number"}}},"attributes":{"type":"object","description":"Additional offer attributes","additionalProperties":true}}}}}}
```

## The SubscriptionCheckoutResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SubscriptionCheckoutResponse":{"type":"object","properties":{"id":{"type":"string","description":"Unique basket identifier"},"order":{"type":"object","description":"The subscription modification order details","properties":{"checkoutId":{"type":"string","description":"Unique basket identifier"},"external_id":{"type":"string","description":"External tracking identifier"},"order_type":{"type":"string","enum":["update_subscription"]},"forSubscription":{"type":"object","description":"Target subscription being modified","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"forSubscriptionOffer":{"type":"object","description":"Current subscription offer","properties":{"offerId":{"type":"string"}}},"orderItems":{"type":"array","description":"Items in the order (add/remove actions)","items":{"$ref":"#/components/schemas/SubscriptionOrderItem"}},"country":{"type":"string","description":"Purchase country code"},"source":{"type":"string","default":"shop","description":"Source of the order"},"effectiveDate":{"type":"string","format":"date-time","description":"When the subscription changes take effect"},"total":{"type":"object","description":"Order pricing totals","properties":{"currency":{"type":"string"},"orderSubtotal":{"type":"number","description":"Subtotal before discounts"},"orderTotal":{"type":"number","description":"Final total"},"totalOrderDiscounts":{"type":"number","description":"Total discount amount"},"amount":{"type":"number","description":"Amount to be charged"}}}}},"nextActions":{"type":"object","description":"Available actions for the checkout","properties":{"upgrades":{"type":"array","description":"Available upgrade offers","items":{"$ref":"#/components/schemas/SubscriptionOffer"}},"downgrades":{"type":"array","description":"Available downgrade offers","items":{"$ref":"#/components/schemas/SubscriptionOffer"}},"crossSells":{"type":"array","description":"Available cross-sell offers","items":{"$ref":"#/components/schemas/SubscriptionOffer"}},"subscriptionAddOns":{"type":"array","description":"Currently owned subscription add-ons","items":{"$ref":"#/components/schemas/SubscriptionOffer"}},"selectOffer":{"type":"boolean","description":"If true, user must select an offer before proceeding"}}},"completed":{"type":"boolean","description":"Whether the checkout is completed"}}},"SubscriptionOrderItem":{"type":"object","required":["orderItemActionType","type"],"properties":{"id":{"type":"string","description":"Auto-generated UUID for the order item"},"orderItemActionType":{"type":"string","enum":["add","remove"],"description":"Action to perform on this item"},"type":{"type":"string","enum":["offer","addon"],"description":"Type of item being added or removed"},"offerId":{"type":"string","description":"ID of the offer or add-on"},"quantity":{"type":"integer","minimum":1,"default":1,"description":"Quantity of the item"},"price":{"type":"object","description":"Price details (calculated by system)","readOnly":true},"orderLineItem":{"type":"object","description":"Line item details (calculated by system)","readOnly":true},"effective_date":{"type":"string","format":"date-time","description":"When this item takes effect (set by system)","readOnly":true}}},"SubscriptionOffer":{"type":"object","description":"Subscription offer or add-on details","properties":{"id":{"type":"string","description":"Offer identifier"},"name":{"type":"string","description":"Offer name"},"description":{"type":"string","description":"Offer description"},"price":{"type":"object","description":"Pricing information","properties":{"currency":{"type":"string"},"amount":{"type":"number"}}},"attributes":{"type":"object","description":"Additional offer attributes","additionalProperties":true}}}}}}
```

## The UpdateSubscriptionCheckoutRequest object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"UpdateSubscriptionCheckoutRequest":{"type":"object","required":["order"],"properties":{"order":{"type":"object","required":["forSubscription","order_type"],"properties":{"external_id":{"type":"string","maxLength":128,"pattern":"^[0-9a-zA-Z-_]+$","description":"External identifier for tracking"},"checkoutId":{"type":"string","description":"Checkout identifier from basket"},"forSubscription":{"type":"object","description":"Target subscription reference","properties":{"id":{"type":"string","description":"Subscription ID"},"name":{"type":"string","description":"Subscription name"}}},"order_type":{"type":"string","enum":["update_subscription"],"description":"Must be \"update_subscription\""},"orderItems":{"type":"array","description":"Order items to add/remove (max 1 add offer at a time)","items":{"$ref":"#/components/schemas/SubscriptionOrderItem"}}}},"tracking":{"type":"object","additionalProperties":true,"description":"Optional tracking data for analytics and reporting"}}},"SubscriptionOrderItem":{"type":"object","required":["orderItemActionType","type"],"properties":{"id":{"type":"string","description":"Auto-generated UUID for the order item"},"orderItemActionType":{"type":"string","enum":["add","remove"],"description":"Action to perform on this item"},"type":{"type":"string","enum":["offer","addon"],"description":"Type of item being added or removed"},"offerId":{"type":"string","description":"ID of the offer or add-on"},"quantity":{"type":"integer","minimum":1,"default":1,"description":"Quantity of the item"},"price":{"type":"object","description":"Price details (calculated by system)","readOnly":true},"orderLineItem":{"type":"object","description":"Line item details (calculated by system)","readOnly":true},"effective_date":{"type":"string","format":"date-time","description":"When this item takes effect (set by system)","readOnly":true}}}}}}
```

## The InitiateSubscriptionCheckoutRequest object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"InitiateSubscriptionCheckoutRequest":{"type":"object","required":["order"],"properties":{"order":{"type":"object","required":["forSubscription","order_type"],"properties":{"external_id":{"type":"string","maxLength":128,"pattern":"^[0-9a-zA-Z-_]+$","description":"External identifier for tracking purposes"},"checkoutId":{"type":"string","description":"Optional checkout identifier (usually auto-generated)"},"forSubscription":{"type":"object","description":"Target subscription for modification (id or name required)","properties":{"id":{"type":"string","description":"Subscription ID"},"name":{"type":"string","description":"Subscription reference"}},"anyOf":[{"required":["id"]},{"required":["name"]}]},"forSubscriptionOffer":{"type":"object","description":"Optional - Pre-select target offer for subscription modification","properties":{"offerId":{"type":"string","description":"Target offer ID to switch to"}}},"order_type":{"type":"string","enum":["update_subscription"],"description":"Must be \"update_subscription\" for subscription modifications"},"orderItems":{"type":"array","description":"Optional initial order items","items":{"$ref":"#/components/schemas/SubscriptionOrderItem"}}}},"tracking":{"type":"object","description":"Optional tracking data for analytics and reporting"}}},"SubscriptionOrderItem":{"type":"object","required":["orderItemActionType","type"],"properties":{"id":{"type":"string","description":"Auto-generated UUID for the order item"},"orderItemActionType":{"type":"string","enum":["add","remove"],"description":"Action to perform on this item"},"type":{"type":"string","enum":["offer","addon"],"description":"Type of item being added or removed"},"offerId":{"type":"string","description":"ID of the offer or add-on"},"quantity":{"type":"integer","minimum":1,"default":1,"description":"Quantity of the item"},"price":{"type":"object","description":"Price details (calculated by system)","readOnly":true},"orderLineItem":{"type":"object","description":"Line item details (calculated by system)","readOnly":true},"effective_date":{"type":"string","format":"date-time","description":"When this item takes effect (set by system)","readOnly":true}}}}}}
```

## The GetAbandonedCheckoutsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"created":{"type":"string","format":"date-time","description":"The date and time the basket was created"},"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"},"firstName":{"type":"string","description":"Customer's first name"},"lastName":{"type":"string","description":"Customer's last name"},"companyName":{"type":"string","description":"Customer's company name"}}},"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"},"path":{"type":"string","description":"The path of the order item"},"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"},"productCode":{"type":"string","description":"The product code"}}}}}}},"customFields":{"type":"object","description":"Custom fields from the order","additionalProperties":true},"tracking":{"type":"object","description":"Tracking data for the basket, including the originating page and tag. The `tag` field can be used to filter baskets by sales channel (e.g. direct, referral, reseller)","properties":{"offers":{"type":"array","description":"List of offer paths being tracked","items":{"type":"string"}},"campaign":{"type":"string","description":"The Limio page path where the checkout was initiated"},"tag":{"type":"string","description":"The tag associated with the checkout entry point, typically reflecting the sales channel"}}},"identities":{"type":"array","description":"The list of identities associated with the basket","items":{"type":"object","properties":{"sub":{"type":"string","description":"The subject identifier"},"iss":{"type":"string","description":"The issuer"},"service":{"type":"string","description":"The service associated with the identity"},"type":{"type":"string","description":"The type of identity"}}}},"entry":{"type":"string","description":"The entry point URL for the basket, including any UTM parameters from the original visit. Useful for preserving campaign attribution in recovery emails"},"completed":{"type":"boolean","description":"Indicates if the basket has been completed"},"recoveryLink":{"type":"string","description":"Recovery link to provide to user to allow them to recover abandoned checkout session"}}}},"queryMore":{"type":"string","description":"Cursor for the next page of results"}}}}}}
```

## The AdminOrderPartner object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}},"required":["id"]}}}}
```

## The AdminOrderExtension object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}]}}},"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"}},"required":["id"]}}}}
```

## The Order object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}}}}}
```

## The Entitlement object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}}}}}
```

## The ProductAttributes object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The ProductDetails object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The OrderDiscount object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"OrderDiscount":{"description":"Order Discount","type":"object","properties":{"name":{"type":"string","description":"The name of the order discount"},"productDetails":{"type":"object","properties":{"ratePlan":{"type":"object","properties":{"path":{"type":"string","description":"The path of the rate plan"}}},"product":{"type":"object","properties":{"path":{"type":"string","description":"The path of the product"}}}}},"product":{"$ref":"#/components/schemas/ProductDetails"},"discountOverrides":{"type":"object","properties":{"discountType":{"type":"string","description":"The type of the discount"},"durationLength":{"type":"number","description":"The period of time the discount is applied"},"durationType":{"type":"string","description":"The type of period of time the discount is applied"},"percentageDiscount":{"type":"number","description":"The percentage of the discount"},"amountDiscount":{"type":"number","description":"The amount of the discount"},"currency":{"type":"string","description":"The currency of the discount"},"orderItemsWithSpecifiedDiscount":{"type":"object","properties":{"discountedOffers":{"type":"array"}}}}}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The Address object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The CustomerDetails object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CustomerDetails":{"properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"}}}}}}
```

## The ZuoraPayment object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ZuoraPayment":{"type":"object","description":"Zuora Payment Method","properties":{"type":{"type":"string","enum":["zuora"]},"zuora":{"type":"object","properties":{"refId":{"type":"string","description":"The Zuora ID of the payment method to use for the payment"},"paymentGateway":{"type":"string","description":"The Zuora payment gateway to use for processing the payment"}}}}}}}}
```

## The CreateSubscription object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}}}},"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","description":"the date on which the subscription should start"},"checkoutId":{"type":"string","description":"the limio session checkout id for this order"},"country":{"type":"string","description":"the country code of the customer's purchase location"}},"required":["order_type","billingDetails","customerDetails","orderItems","payment","country","checkoutId"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}},"OrderDiscount":{"description":"Order Discount","type":"object","properties":{"name":{"type":"string","description":"The name of the order discount"},"productDetails":{"type":"object","properties":{"ratePlan":{"type":"object","properties":{"path":{"type":"string","description":"The path of the rate plan"}}},"product":{"type":"object","properties":{"path":{"type":"string","description":"The path of the product"}}}}},"product":{"$ref":"#/components/schemas/ProductDetails"},"discountOverrides":{"type":"object","properties":{"discountType":{"type":"string","description":"The type of the discount"},"durationLength":{"type":"number","description":"The period of time the discount is applied"},"durationType":{"type":"string","description":"The type of period of time the discount is applied"},"percentageDiscount":{"type":"number","description":"The percentage of the discount"},"amountDiscount":{"type":"number","description":"The amount of the discount"},"currency":{"type":"string","description":"The currency of the discount"},"orderItemsWithSpecifiedDiscount":{"type":"object","properties":{"discountedOffers":{"type":"array"}}}}}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}},"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","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}},"ZuoraPayment":{"type":"object","description":"Zuora Payment Method","properties":{"type":{"type":"string","enum":["zuora"]},"zuora":{"type":"object","properties":{"refId":{"type":"string","description":"The Zuora ID of the payment method to use for the payment"},"paymentGateway":{"type":"string","description":"The Zuora payment gateway to use for processing the payment"}}}}}}}}
```

## The SubscriptionByName object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}}}}}
```

## The SubscriptionById object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}}}}}
```

## The ChangeOffer object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}},"ZuoraPayment":{"type":"object","description":"Zuora Payment Method","properties":{"type":{"type":"string","enum":["zuora"]},"zuora":{"type":"object","properties":{"refId":{"type":"string","description":"The Zuora ID of the payment method to use for the payment"},"paymentGateway":{"type":"string","description":"The Zuora payment gateway to use for processing the payment"}}}}},"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"}}}}}}
```

## The AddOffer object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}}}}}
```

## The CancelData object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CancelData":{"type":"object","description":"Cancel reasons data","properties":{"reason":{"type":"object","properties":{"id":{"type":"string","description":"Identifier for the cancellation reason"}},"required":["id"]}}}}}}
```

## The CancelSubscription object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"ZuoraPayment":{"type":"object","description":"Zuora Payment Method","properties":{"type":{"type":"string","enum":["zuora"]},"zuora":{"type":"object","properties":{"refId":{"type":"string","description":"The Zuora ID of the payment method to use for the payment"},"paymentGateway":{"type":"string","description":"The Zuora payment gateway to use for processing the payment"}}}}},"CancelData":{"type":"object","description":"Cancel reasons data","properties":{"reason":{"type":"object","properties":{"id":{"type":"string","description":"Identifier for the cancellation reason"}},"required":["id"]}}}}}}
```

## The Refund object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Refund":{"type":"object","title":"Refund","description":"Refund an order. Supply a `gift_code` to refund a gift subscription. Limio raises a credit memo against the gift's original charges, refunds it, and marks the gift code as redeemed. Preview the refund amount first with the Preview Order endpoint using `order_type: gift_refund`.","allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"order_type":{"type":"string","enum":["refund"]},"gift_code":{"type":"string","description":"Gift code to refund. Limio looks up the gift's Zuora charges from this code to build the credit memo."},"subscriptionId":{"type":"string","description":"ID of the gift subscription being refunded."},"total":{"type":"object","description":"Amount to refund, raised on the credit memo.","properties":{"amount":{"type":"number"},"currency":{"type":"string"}}}},"required":["order_type","subscriptionId","gift_code","total"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}}}}}
```

## The ChangeAddress object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"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"}}}}}}
```

## The UpdateCustomerDetails object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"CustomerDetails":{"properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"}}}}}}
```

## The ChangePayment object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ChangePayment":{"type":"object","title":"Change Payment Method","description":"Change the payment method on an existing subscription.\n\nWhen submitted without a `payment` object, the order status is set to `pending-payment`.\nThis supports flows where the payment token is collected separately (e.g. via an MMA checkout basket with Stripe).\n\nWhen submitted with a `payment` object, the order is processed immediately with the new payment method.\n","allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"order_type":{"type":"string","enum":["change_payment"]},"forSubscription":{"description":"Subscription to update. At least one of `id` or `name` is required.","oneOf":[{"$ref":"#/components/schemas/SubscriptionByName"},{"$ref":"#/components/schemas/SubscriptionById"}]},"checkoutId":{"type":"string","description":"The basket ID from the MMA checkout flow, if applicable"},"tracking":{"type":"object","description":"Must include `accountId` or `contactId` to identify the customer when submitting via the Salesforce endpoint.","properties":{"accountId":{"type":"string","description":"Salesforce Account ID"},"contactId":{"type":"string","description":"Salesforce Contact ID"}},"anyOf":[{"required":["accountId"]},{"required":["contactId"]}]},"payment":{"type":"object","description":"Payment details for the new payment method. If omitted, the order is created with\n`pending-payment` status and the payment is collected asynchronously.\n","properties":{"type":{"type":"string","description":"The payment provider type","enum":["stripe","invoice"]},"stripe":{"type":"object","description":"Stripe-specific payment data. Required when `type` is `stripe`.","properties":{"intentId":{"type":"string","description":"Stripe SetupIntent ID"},"intentType":{"type":"string","description":"Intent type"},"paymentMethodId":{"type":"string","description":"The new Stripe payment method ID"},"connectedAccountId":{"type":"string","description":"Stripe Connect account ID"}}}}}},"required":["order_type","forSubscription"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}}}}}
```

## The ChangeDefaultZuoraPaymentMethod object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}}}}}
```

## The DeletePaymentMethod object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}}}}}
```

## The UpdateSubscriptionOrderItem object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"UpdateSubscriptionOrderItem":{"description":"A single action within an update_subscription order. Each item adds, removes, or updates an offer or add-on on the subscription.","type":"object","required":["id","orderItemActionType","offer"],"properties":{"id":{"type":"string","description":"Unique identifier for this order item (typically a UUID)."},"orderItemActionType":{"type":"string","enum":["add","remove","update"],"description":"The action to perform.\n- `add` — Add a new offer or add-on to the subscription.\n- `remove` — Remove an existing subscription offer or add-on.\n- `update` — Change the quantity of an existing subscription item."},"type":{"type":"string","enum":["offer","add_on","subscription_offer","subscription_add_on"],"description":"The record type of the target item.\n- `offer` / `add_on` — Used with `add` actions. References a catalog offer or add-on.\n- `subscription_offer` / `subscription_add_on` — Used with `remove` and `update` actions. References an existing item on the subscription."},"offer":{"type":"object","description":"Reference to the catalog item (for add) or subscription item (for remove/update).","required":["id","version"],"properties":{"id":{"type":"string","description":"For `add` actions: the catalog offer or add-on ID. For `remove`/`update` actions: the subscription_offer or subscription_add_on ID."},"version":{"type":"string","description":"The version of the referenced object."}}},"quantity":{"type":"integer","minimum":1,"description":"The target quantity. Only applicable for `update` actions on items that support quantity changes (offers with `allow_multibuy` or `recurringVolume` pricing). Must be a positive integer within the offer's configured bounds."}}}}}}
```

## The UpdateSubscription object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"UpdateSubscription":{"type":"object","title":"Update Subscription","description":"Update an existing subscription — upgrade or downgrade the primary offer, add or remove add-ons, or change quantities on existing items.","allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"order_type":{"type":"string","enum":["update_subscription"]},"owner":{"type":"string","description":"The identity ID of the subscription owner."},"forSubscription":{"description":"The subscription to update. Must include `id` and/or `name`.","oneOf":[{"$ref":"#/components/schemas/SubscriptionByName"},{"$ref":"#/components/schemas/SubscriptionById"}]},"forSubscriptionOffer":{"description":"The subscription offer being changed. Used by the checkout flow to resolve the current active offer when multiple offers exist on the subscription. Optional when the subscription has only one active offer.","type":"object","properties":{"offerId":{"type":"string","description":"The ID of the subscription_offer object."}}},"orderItems":{"type":"array","description":"The list of changes to apply. Each item specifies an action (add, remove, or update) targeting an offer, add-on, or existing subscription item.","items":{"$ref":"#/components/schemas/UpdateSubscriptionOrderItem"}},"effectiveDate":{"type":"string","format":"date-time","description":"ISO 8601 date when the changes take effect. If omitted, the system calculates it automatically based on the direction of change — upgrades and additions are effective immediately, downgrades and removals are effective at the end of the current term."}},"required":["order_type","forSubscription","orderItems"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"UpdateSubscriptionOrderItem":{"description":"A single action within an update_subscription order. Each item adds, removes, or updates an offer or add-on on the subscription.","type":"object","required":["id","orderItemActionType","offer"],"properties":{"id":{"type":"string","description":"Unique identifier for this order item (typically a UUID)."},"orderItemActionType":{"type":"string","enum":["add","remove","update"],"description":"The action to perform.\n- `add` — Add a new offer or add-on to the subscription.\n- `remove` — Remove an existing subscription offer or add-on.\n- `update` — Change the quantity of an existing subscription item."},"type":{"type":"string","enum":["offer","add_on","subscription_offer","subscription_add_on"],"description":"The record type of the target item.\n- `offer` / `add_on` — Used with `add` actions. References a catalog offer or add-on.\n- `subscription_offer` / `subscription_add_on` — Used with `remove` and `update` actions. References an existing item on the subscription."},"offer":{"type":"object","description":"Reference to the catalog item (for add) or subscription item (for remove/update).","required":["id","version"],"properties":{"id":{"type":"string","description":"For `add` actions: the catalog offer or add-on ID. For `remove`/`update` actions: the subscription_offer or subscription_add_on ID."},"version":{"type":"string","description":"The version of the referenced object."}}},"quantity":{"type":"integer","minimum":1,"description":"The target quantity. Only applicable for `update` actions on items that support quantity changes (offers with `allow_multibuy` or `recurringVolume` pricing). Must be a positive integer within the offer's configured bounds."}}}}}}
```

## The DataCapture object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"DataCapture":{"type":"object","title":"Data Capture","description":"Submit data captured from a Data Capture Form component. The order is standalone (it does not target a subscription) and is forwarded to configured integrations such as Salesforce.","allOf":[{"$ref":"#/components/schemas/Order"},{"type":"object","properties":{"order_type":{"type":"string","enum":["data_capture"]},"data":{"type":"object","description":"Free-form object containing the fields collected by the Data Capture Form. Keys and values are defined by the form configuration."}},"required":["order_type","data"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}}}}}
```

## The RecipientDetails object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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","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":"a flag that the order keeps for your email system. Limio does not send the gift email"},"message":{"type":"string","description":"a message from the purchaser to the recipient"},"email":{"type":"string","format":"email"}},"required":["email"]}}}}
```

## The CreateGiftSubscription object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}}}},"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","description":"the date on which the subscription should start"},"checkoutId":{"type":"string","description":"the limio session checkout id for this order"},"country":{"type":"string","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","recipientDetails","isGift","variant"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}},"OrderDiscount":{"description":"Order Discount","type":"object","properties":{"name":{"type":"string","description":"The name of the order discount"},"productDetails":{"type":"object","properties":{"ratePlan":{"type":"object","properties":{"path":{"type":"string","description":"The path of the rate plan"}}},"product":{"type":"object","properties":{"path":{"type":"string","description":"The path of the product"}}}}},"product":{"$ref":"#/components/schemas/ProductDetails"},"discountOverrides":{"type":"object","properties":{"discountType":{"type":"string","description":"The type of the discount"},"durationLength":{"type":"number","description":"The period of time the discount is applied"},"durationType":{"type":"string","description":"The type of period of time the discount is applied"},"percentageDiscount":{"type":"number","description":"The percentage of the discount"},"amountDiscount":{"type":"number","description":"The amount of the discount"},"currency":{"type":"string","description":"The currency of the discount"},"orderItemsWithSpecifiedDiscount":{"type":"object","properties":{"discountedOffers":{"type":"array"}}}}}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}},"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","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}},"ZuoraPayment":{"type":"object","description":"Zuora Payment Method","properties":{"type":{"type":"string","enum":["zuora"]},"zuora":{"type":"object","properties":{"refId":{"type":"string","description":"The Zuora ID of the payment method to use for the payment"},"paymentGateway":{"type":"string","description":"The Zuora payment gateway to use for processing the payment"}}}}},"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","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":"a flag that the order keeps for your email system. Limio does not send the gift email"},"message":{"type":"string","description":"a message from the purchaser to the recipient"},"email":{"type":"string","format":"email"}},"required":["email"]}}}}
```

## The RedeemGiftSubscription object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}}}},"deliveryDetails":{"$ref":"#/components/schemas/Address"},"customerDetails":{"$ref":"#/components/schemas/CustomerDetails"},"orderDate":{"type":"string","format":"date-time","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"},"contactId":{"type":"string"}}},"sourceDetails":{"type":"object","properties":{"instance":{"type":"string"}}},"checkoutId":{"type":"string","description":"the limio session checkout id for this order"},"country":{"type":"string","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","recipientDetails","giftCode"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}},"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"}}},"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","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":"a flag that the order keeps for your email system. Limio does not send the gift email"},"message":{"type":"string","description":"a message from the purchaser to the recipient"},"email":{"type":"string","format":"email"}},"required":["email"]}}}}
```

## The OrderResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"OrderResponse":{"type":"object","description":"Response returned after successfully submitting an order.","properties":{"id":{"type":"string","description":"Unique identifier of the created order."},"order_reference":{"type":"string","description":"Human-readable order reference code."},"status":{"type":"string","description":"Status of the order event at the time of the response. New submissions return `submitted`, or `pending-payment` when the order carries no payment details yet (new orders and payment changes that redirect to a payment provider). Resubmitting an order with an `external_id` that was already submitted returns the stored event's current status instead, which may reflect later processing."},"external_id":{"type":"string","description":"The external order reference provided in the request, if any."},"subscriptionReference":{"type":"string","description":"Reference code of the subscription created or modified by this order."},"owner":{"type":"string","description":"The identity ID that owns objects created by this order."},"customer_endpoint":{"type":"string","description":"The webhook endpoint configured for this order type in the `webhooks.order` setting, if any."},"error":{"type":"string","description":"Error message when the order event was created but immediate processing failed. Absent on success."}}}}}}
```

## The PaymentResult object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PaymentResult":{"type":"object","title":"Payment Failure","description":"Detail of a payment or gateway failure. Present on the admin order response when `error_reason` is `payment`.","properties":{"processor":{"type":"string","description":"The payment processor or gateway that reported the failure."},"reason":{"type":"string","enum":["generic_decline","suspected_fraud","card_velocity_exceeded","authentication_required","payment_method_unavailable","invalid_request","processing_error"],"description":"Normalised decline reason, derived from the processor's response."},"processorError":{"type":"object","description":"The raw response from the payment processor, for reference.","properties":{"code":{"type":"string","description":"The processor's response code."},"message":{"type":"string","description":"The processor's response message."}}},"retry":{"type":"string","enum":["payment_method","none"],"description":"What the caller should do next. `payment_method` - ask the customer for a different card or payment method. `none` - do not retry (for example a suspected-fraud decline, or a request that cannot succeed on resubmission)."}}}}}}
```

## The PluginError object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PluginError":{"type":"object","title":"Processing Failure","description":"A non-payment failure raised while processing the order.","properties":{"name":{"type":"string","description":"The plugin that raised the failure."},"message":{"type":"string","description":"The failure message."},"category":{"type":"string","description":"Coarse category of the failure."},"retry":{"type":"string","enum":["none"],"description":"What the caller should do next. Non-payment processing failures are not retryable."},"critical":{"type":"boolean","description":"Whether this failure was critical to the order."}}}}}}
```

## The AdminOrderResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AdminOrderResponse":{"type":"object","title":"Admin Order Response","description":"Response from submitting an order with management credentials. On success it matches OrderResponse. When the order event was created but immediate processing failed, it additionally carries structured failure detail so the caller can decide what to do next. All failure fields are absent on success.","allOf":[{"$ref":"#/components/schemas/OrderResponse"},{"type":"object","properties":{"error_reason":{"type":"string","enum":["payment","processing"],"description":"Present only alongside `error`. Names the section that describes the failure: `payment` for a payment or gateway failure (see the `payment` object), or `processing` for any other processing failure (see the `processing` array)."},"payment":{"$ref":"#/components/schemas/PaymentResult"},"processing":{"type":"array","description":"Non-payment plugin failures during processing. Present when `error_reason` is `processing`.","items":{"$ref":"#/components/schemas/PluginError"}}}}]},"OrderResponse":{"type":"object","description":"Response returned after successfully submitting an order.","properties":{"id":{"type":"string","description":"Unique identifier of the created order."},"order_reference":{"type":"string","description":"Human-readable order reference code."},"status":{"type":"string","description":"Status of the order event at the time of the response. New submissions return `submitted`, or `pending-payment` when the order carries no payment details yet (new orders and payment changes that redirect to a payment provider). Resubmitting an order with an `external_id` that was already submitted returns the stored event's current status instead, which may reflect later processing."},"external_id":{"type":"string","description":"The external order reference provided in the request, if any."},"subscriptionReference":{"type":"string","description":"Reference code of the subscription created or modified by this order."},"owner":{"type":"string","description":"The identity ID that owns objects created by this order."},"customer_endpoint":{"type":"string","description":"The webhook endpoint configured for this order type in the `webhooks.order` setting, if any."},"error":{"type":"string","description":"Error message when the order event was created but immediate processing failed. Absent on success."}}},"PaymentResult":{"type":"object","title":"Payment Failure","description":"Detail of a payment or gateway failure. Present on the admin order response when `error_reason` is `payment`.","properties":{"processor":{"type":"string","description":"The payment processor or gateway that reported the failure."},"reason":{"type":"string","enum":["generic_decline","suspected_fraud","card_velocity_exceeded","authentication_required","payment_method_unavailable","invalid_request","processing_error"],"description":"Normalised decline reason, derived from the processor's response."},"processorError":{"type":"object","description":"The raw response from the payment processor, for reference.","properties":{"code":{"type":"string","description":"The processor's response code."},"message":{"type":"string","description":"The processor's response message."}}},"retry":{"type":"string","enum":["payment_method","none"],"description":"What the caller should do next. `payment_method` - ask the customer for a different card or payment method. `none` - do not retry (for example a suspected-fraud decline, or a request that cannot succeed on resubmission)."}}},"PluginError":{"type":"object","title":"Processing Failure","description":"A non-payment failure raised while processing the order.","properties":{"name":{"type":"string","description":"The plugin that raised the failure."},"message":{"type":"string","description":"The failure message."},"category":{"type":"string","description":"Coarse category of the failure."},"retry":{"type":"string","enum":["none"],"description":"What the caller should do next. Non-payment processing failures are not retryable."},"critical":{"type":"boolean","description":"Whether this failure was critical to the order."}}}}}}
```

## The GiftRefund object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}}}}}
```

## The CreditMemo object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"type":{"type":"string"}}}},"creditMemoReasonCode":{"type":"string","description":"Reason code for the credit memo"}},"required":["order_type","forSubscription","orderItems","creditMemoReasonCode"]}]},"Order":{"type":"object","description":"Common order properties shared across all order types. These fields can be included alongside the order-type-specific payload (e.g. CreateSubscription, ChangeOffer).","properties":{"external_id":{"description":"Your own external order reference. Useful for correlating Limio orders with records in upstream systems.","type":"string"},"initiated_source":{"description":"Indicates where the order originated. Limio uses `shop` for storefront orders and `salesforce` for CRM-initiated orders. Custom values are supported for other integrations.","type":"string","enum":["shop","salesforce"]},"source":{"description":"The system that submitted the order. Limio uses `shop` for storefront submissions and `salesforce` for CRM submissions.","type":"string"},"process_immediately":{"description":"When `true`, the order is processed synchronously and the response includes the final processing result. When `false` (default), the order is queued for asynchronous processing.","type":"boolean","default":false}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"OfferPayload":{"description":"Reference to a published Limio offer.\nRetrieve `id` and `version` from `GET /offers/v2`.\n","required":["id","version"],"properties":{"id":{"type":"string","description":"The unique content hash of the offer. Retrieve from `GET /offers/v2`."},"version":{"type":"string","description":"The version hash of the offer. Use the latest version from the same API response."}}}}}}
```

## The ZuoraLineItem object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ZuoraLineItem":{"type":"object","properties":{"additionalInfo":{"type":"object","properties":{"quantity":{"type":"number"},"unitOfMeasure":{"type":"string"}}},"amountWithoutTax":{"type":"number"},"chargeDescription":{"type":"string"},"chargeName":{"type":"string"},"chargeNumber":{"type":"string"},"processingType":{"type":"string"},"productName":{"type":"string"},"productRatePlanChargeId":{"type":"string"},"serviceEndDate":{"type":"string","format":"date-time"},"serviceStartDate":{"type":"string","format":"date-time"},"subscriptionNumber":{"type":"string"},"taxAmount":{"type":"number"},"unitPrice":{"type":"number"}}}}}}
```

## The SwitchPreviewResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SwitchPreviewResponse":{"type":"object","description":"Preview response returned by the order preview endpoint. Contains the raw billing provider result and a normalised payment schedule that front-end consumers use to display pricing summaries.","properties":{"preview":{"type":"object","properties":{"success":{"type":"boolean"},"orderNumber":{"type":"string"},"orderId":{"type":"string"},"accountNumber":{"type":"string"},"status":{"type":"string"},"subscriptions":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string"},"subscriptionId":{"type":"string"},"subscriptionNumber":{"type":"string"}}}},"paymentNumber":{"type":"string"},"paymentId":{"type":"string"},"paidAmount":{"type":"string"},"previewResult":{"type":"object","properties":{"invoices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number"},"amountWithoutTax":{"type":"number"},"targetDate":{"type":"string","format":"date-time"},"taxAmount":{"type":"number"},"invoiceItems":{"type":"array","$ref":"#/components/schemas/ZuoraLineItem"}}}},"creditMemos":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number"},"amountWithoutTax":{"type":"number"},"targetDate":{"type":"string","format":"date-time"},"taxAmount":{"type":"number"},"creditMemoItems":{"type":"array","items":{"$ref":"#/components/schemas/ZuoraLineItem"}}}}}}}}},"schedule":{"type":"array","description":"Normalised payment schedule derived from the billing provider preview. For `update_subscription` orders, the first schedule entry is filtered to show only charges related to the update (new charges, proration credits, and quantity amendment pairs). Subsequent entries show all charges since the customer pays the full amount on renewal. Entries before the order's effective date are excluded.","items":{"type":"object","properties":{"date":{"type":"string","format":"date-time","description":"Invoice date (ISO datetime without offset)."},"schedule_date":{"type":"string","format":"date-time","description":"Same as `date`. Included for backwards compatibility."},"type":{"type":"string","description":"Schedule entry type."},"amount":{"type":"string","description":"Total amount including tax."},"taxAmount":{"type":"number","description":"Tax portion of the total amount."},"amountWithoutTax":{"type":"string","description":"Subtotal excluding tax."},"currency":{"type":"string","description":"ISO 4217 currency code from the subscription."},"unit_amount":{"type":"string","description":"Total amount (same as `amount`)."},"quantity":{"type":"number"},"hasDiscount":{"type":"boolean","description":"Whether any charge in this schedule entry has `processingType: \"Discount\"`."},"amountExcludingDiscount":{"type":"string","description":"Subtotal of non-discount charges only (excludes tax). Same as `amountWithoutTax` when no discounts are present."},"discountUnitValue":{"type":"string","description":"Sum of `unitPrice` values from discount charges. `\"0.00\"` when no discounts are present."},"lineItems":{"type":"array","description":"Breakdown of individual charges within this schedule entry.","items":{"type":"object","properties":{"amountWithoutTax":{"type":"string","description":"Charge amount excluding tax."},"taxAmount":{"type":"string","description":"Tax amount for this charge."},"limioCatalogObjectId":{"type":"string","description":"Maps back to the Limio catalog record. Set via the `chargeDescription` field in Zuora charge overrides, formatted as `{record_type}-{id}`."},"processingType":{"type":"string","description":"Zuora processing type.","enum":["Charge","Discount"]},"chargeName":{"type":"string","description":"Name of the charge from the billing provider."},"productName":{"type":"string","description":"Name of the product from the billing provider."},"quantity":{"type":"number","description":"Quantity for this charge."}}}},"taxSummary":{"type":"array","description":"Tax amounts aggregated by tax code.","items":{"type":"object","properties":{"taxCode":{"type":"string","description":"Tax code identifier."},"taxRate":{"type":"number","description":"Tax rate as a decimal (e.g. 0.2 for 20%)."},"taxAmount":{"type":"number","description":"Total tax amount for this tax code."}}}},"reference":{"type":"string"}}}}}},"ZuoraLineItem":{"type":"object","properties":{"additionalInfo":{"type":"object","properties":{"quantity":{"type":"number"},"unitOfMeasure":{"type":"string"}}},"amountWithoutTax":{"type":"number"},"chargeDescription":{"type":"string"},"chargeName":{"type":"string"},"chargeNumber":{"type":"string"},"processingType":{"type":"string"},"productName":{"type":"string"},"productRatePlanChargeId":{"type":"string"},"serviceEndDate":{"type":"string","format":"date-time"},"serviceStartDate":{"type":"string","format":"date-time"},"subscriptionNumber":{"type":"string"},"taxAmount":{"type":"number"},"unitPrice":{"type":"number"}}}}}}
```

## The OfferData object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetSubscriptionObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetSubscriptionObjectResponse":{"type":"object","description":"Subscription object","title":"Get Subscription Response","properties":{"name":{"type":"string","description":"Subscription name"},"start":{"type":"string","format":"date","description":"Subscription start date"},"data":{"type":"object","description":"Subscription data","properties":{"name":{"type":"string","description":"Subscription data name"},"tracking":{"$ref":"#/components/schemas/Tracking"},"offer":{"type":"object","description":"Offer details","properties":{"mode":{"type":"string"},"path":{"type":"string"},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string"},"updated":{"type":"string","format":"date-time"},"version":{"type":"string"},"record_type":{"type":"string"},"status":{"type":"string"}}},"quantity":{"type":"integer"},"termEndDate":{"type":"string","format":"date"},"price":{"type":"object","description":"Price details","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"number"}}},"termStartDate":{"type":"string","format":"date"},"attributes":{"type":"object","properties":{"gift":{"type":"boolean"},"external":{"type":"boolean"}}},"id":{"type":"string"},"purchaseCountry":{"type":"string"},"startDate":{"type":"string","format":"date"},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}}}},"status":{"type":"string"},"record_type":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"ref":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}},"Tracking":{"type":"object","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetCustomerObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"email":{"type":"string","format":"email","description":"Email address of the customer"},"firstName":{"type":"string","description":"First name of the customer"},"lastName":{"type":"string","description":"Last name of the customer"},"purchaseCountry":{"type":"string","description":"Country code of the customer's purchase"},"trialist":{"type":"boolean","description":"Indicates if the customer is a trialist"}}},"status":{"type":"string","description":"Status of the customer"},"record_type":{"type":"string","description":"Record type of the object"},"owner":{"type":"string","description":"ID of the owner of the customer"},"id":{"type":"string","description":"Unique identifier of the customer"},"service":{"type":"string","description":"Service associated with the customer"},"created":{"type":"string","format":"date-time","description":"Timestamp of when the customer was created"},"updated":{"type":"string","format":"date-time","description":"Timestamp of when the customer was last updated"},"reference":{"type":"string","description":"Reference code associated with the customer"},"mode":{"type":"string","description":"Mode of the customer object"}}}}}}
```

## The BillingDetails object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"BillingDetails":{"type":"object","properties":{"country":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"streetName":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"postalCode":{"type":"string"},"buildingNumber":{"type":"number"},"company":{"type":"string"},"state":{"type":"string"}}}}}}
```

## The Offer object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The OrderItem object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"OrderItem":{"type":"object","properties":{"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"price":{"type":"object","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"integer"}}},"name":{"type":"string"},"id":{"type":"string"},"startDate":{"type":"string","format":"date"},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetOrderObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetOrderObjectResponse":{"type":"object","description":"Order object","title":"Get Order Response","properties":{"name":{"type":"string","description":"Order name"},"data":{"type":"object","description":"Order data","properties":{"email":{"type":"string"},"name":{"type":"string"},"tracking":{"$ref":"#/components/schemas/Tracking"},"country":{"type":"string"},"billingDetails":{"$ref":"#/components/schemas/BillingDetails"},"__spec_version":{"type":"string"},"external_id":{"type":"string"},"source":{"type":"string","enum":["salesforce","limio"]},"orderItems":{"type":"array","items":{"$ref":"#/components/schemas/OrderItem"}},"process_immediately":{"type":"boolean"},"mode":{"type":"string"},"total":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"integer"}}},"payment":{"type":"object","properties":{"type":{"type":"string"},"invoicePref":{"type":"string"}}},"customerDetails":{"type":"object","properties":{"lastName":{"type":"string"},"firstName":{"type":"string"}}},"sourceDetails":{"type":"object","properties":{"instance":{"type":"string"}}},"initiated_source":{"type":"string"},"orderDate":{"type":"string","format":"date-time"}}},"status":{"type":"string"},"record_type":{"type":"string"},"owner":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"},"authority":{"type":"object","properties":{"aut":{"type":"object","properties":{"iss":{"type":"string"},"sub":{"type":"string"}}},"permissions":{"type":"array","items":{"type":"string"}}}}}},"Tracking":{"type":"object","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}},"BillingDetails":{"type":"object","properties":{"country":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"streetName":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"postalCode":{"type":"string"},"buildingNumber":{"type":"number"},"company":{"type":"string"},"state":{"type":"string"}}},"OrderItem":{"type":"object","properties":{"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"price":{"type":"object","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"integer"}}},"name":{"type":"string"},"id":{"type":"string"},"startDate":{"type":"string","format":"date"},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetIdentityObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetIdentityObjectResponse":{"type":"object","description":"Identity object","title":"Get Identity Response","properties":{"data":{"type":"object","description":"Identity data","properties":{"email":{"type":"string","format":"email"},"cognito:username":{"type":"string"},"email_verified":{"type":"boolean"},"event_id":{"type":"string"},"isValidated":{"type":"boolean"},"iss":{"type":"string"},"jti":{"type":"string"},"origin_jti":{"type":"string"},"sub":{"type":"string"}}},"status":{"type":"string"},"record_type":{"type":"string"},"record_variant":{"type":"string"},"owner":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"mode":{"type":"string"}}}}}}
```

## The CustomerAddress object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CustomerAddress":{"type":"object","description":"Customer Address object","title":"Get Customer Address Response","properties":{"record_type":{"type":"string"},"id":{"type":"string"},"relationship_id":{"type":"string"},"data":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"country":{"type":"string"},"address2":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"postalCode":{"type":"string"},"company":{"type":"string"},"state":{"type":"string"},"email":{"type":"string","format":"email"}}},"related":{"type":"string"},"service":{"type":"string"},"start":{"type":"string","format":"date-time"},"relationship_type":{"type":"string"},"mode":{"type":"string"},"created":{"type":"string","format":"date-time"},"status":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"}}}}}}
```

## The GetScheduleObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetScheduleObjectResponse":{"type":"object","description":"Schedule object","title":"Get Schedule Response","properties":{"data":{"type":"object","description":"Schedule data","properties":{"date":{"type":"string","format":"date-time"},"amountWithoutTax":{"type":"string"},"lineItems":{"type":"array","items":{"type":"object","properties":{"amountWithoutTax":{"type":"string"},"processingType":{"type":"string"},"quantity":{"type":"integer"},"taxAmount":{"type":"string"},"chargeName":{"type":"string"},"productName":{"type":"string"},"chargeDescription":{"type":"string"}}}},"amount":{"type":"string"},"quantity":{"type":"integer"},"description":{"type":"string"},"currency":{"type":"string"},"unit_amount":{"type":"string"},"schedule_date":{"type":"string","format":"date-time"},"type":{"type":"string"},"taxAmount":{"type":"integer"}}},"status":{"type":"string"},"record_type":{"type":"string"},"related":{"type":"string"},"owner":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}}}}}
```

## The GetPaymentMethodObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetPaymentMethodObjectResponse":{"type":"object","description":"Payment Method object","title":"Get Payment Method Response","properties":{"type":{"type":"string"},"data":{"type":"object","description":"Payment method data","properties":{"type":{"type":"string"},"zuora":{"type":"object","properties":{"result":{"type":"object","properties":{"LastTransactionDateTime":{"type":"string","format":"date-time"},"LastTransactionStatus":{"type":"string"},"NumConsecutiveFailures":{"type":"integer"},"UpdatedDate":{"type":"string","format":"date-time"},"UpdatedById":{"type":"string"},"CreditCardExpirationMonth":{"type":"integer"},"CreditCardExpirationYear":{"type":"integer"},"CreditCardType":{"type":"string"},"CreditCardHolderName":{"type":"string"},"PaymentMethodStatus":{"type":"string"},"Active":{"type":"boolean"},"Type":{"type":"string"},"CreatedById":{"type":"string"},"CreditCardMaskNumber":{"type":"string"},"CreatedDate":{"type":"string","format":"date-time"},"BankIdentificationNumber":{"type":"string"},"IsCompany":{"type":"boolean"},"TotalNumberOfErrorPayments":{"type":"integer"},"Id":{"type":"string"},"TotalNumberOfProcessedPayments":{"type":"integer"},"UseDefaultRetryRule":{"type":"boolean"}}},"signature":{"type":"string"},"success":{"type":"boolean"},"tenantId":{"type":"string"},"responseFrom":{"type":"string"},"refId":{"type":"string"},"paymentGateway":{"type":"string"},"token":{"type":"string"}}},"timing":{"type":"object","properties":{"delta":{"type":"integer"}}},"address":{"type":"object","properties":{"country":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"streetName":{"type":"string"},"address2":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"postalCode":{"type":"string"},"buildingNumber":{"type":"string"},"company":{"type":"string"},"state":{"type":"string"}}}}},"status":{"type":"string"},"record_type":{"type":"string"},"related":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}}}}}
```

## The PromoCodeProductDetails object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]}}}}
```

## The PromoCodeData object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PromoCodeData":{"type":"object","properties":{"promoCode":{"type":"string","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","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","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","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","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","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","description":"The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","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","description":"The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount."},"currency":{"type":"string","description":"The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","enum":["Days","Weeks","Months","Years"],"description":"The duration type (e.g., months)."}}}]}},"required":["promoCode","status","productDetails","discount"]},"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]}}}}
```

## The GetPromoCodeV2ObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetPromoCodeV2ObjectResponse":{"type":"object","description":"Promo Code V2 object","title":"Get Promo Code V2 Response","properties":{"name":{"type":"string","description":"Promo code name"},"data":{"$ref":"#/components/schemas/PromoCodeData"},"status":{"type":"string"},"record_type":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"mode":{"type":"string"}}},"PromoCodeData":{"type":"object","properties":{"promoCode":{"type":"string","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","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","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","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","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","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","description":"The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","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","description":"The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount."},"currency":{"type":"string","description":"The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","enum":["Days","Weeks","Months","Years"],"description":"The duration type (e.g., months)."}}}]}},"required":["promoCode","status","productDetails","discount"]},"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]}}}}
```

## The PromoCodeV3Data object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PromoCodeV3Data":{"type":"object","required":["promoCode","status"],"properties":{"promoCode":{"type":"string","description":"The promo code string that customers enter at checkout."},"status":{"type":"boolean","description":"Whether the promo code is active. When `true` the code can be redeemed; when `false` it is disabled."},"description":{"type":"string","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","description":"The date the promo code becomes redeemable (YYYY-MM-DD). If omitted the code is active immediately (when status is true)."},"promoExpiryDate":{"type":"string","format":"date","description":"The date the promo code expires (YYYY-MM-DD). If omitted the code does not expire."},"usage":{"type":"object","properties":{"availableQuantity":{"type":"integer","description":"Maximum number of times this code can be redeemed. If omitted the code has unlimited uses."},"redeemedQuantity":{"type":"integer","description":"Number of times the code has been redeemed so far."}}},"attachedDiscount":{"type":"object","description":"Reference to the discount catalog item that defines the pricing rules applied when this code is redeemed.","required":["id","path","name"],"properties":{"id":{"type":"string","description":"The Elasticsearch document ID of the discount."},"path":{"type":"string","description":"The catalog path of the discount."},"name":{"type":"string","description":"Display name of the discount."}}}}}}}}
```

## The GetPromoCodeV3ObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetPromoCodeV3ObjectResponse":{"type":"object","description":"Promo Code V3 object","title":"Get Promo Code V3 Response","properties":{"name":{"type":"string","description":"Promo code name"},"data":{"$ref":"#/components/schemas/PromoCodeV3Data"},"status":{"type":"string"},"record_type":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"mode":{"type":"string"}}},"PromoCodeV3Data":{"type":"object","required":["promoCode","status"],"properties":{"promoCode":{"type":"string","description":"The promo code string that customers enter at checkout."},"status":{"type":"boolean","description":"Whether the promo code is active. When `true` the code can be redeemed; when `false` it is disabled."},"description":{"type":"string","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","description":"The date the promo code becomes redeemable (YYYY-MM-DD). If omitted the code is active immediately (when status is true)."},"promoExpiryDate":{"type":"string","format":"date","description":"The date the promo code expires (YYYY-MM-DD). If omitted the code does not expire."},"usage":{"type":"object","properties":{"availableQuantity":{"type":"integer","description":"Maximum number of times this code can be redeemed. If omitted the code has unlimited uses."},"redeemedQuantity":{"type":"integer","description":"Number of times the code has been redeemed so far."}}},"attachedDiscount":{"type":"object","description":"Reference to the discount catalog item that defines the pricing rules applied when this code is redeemed.","required":["id","path","name"],"properties":{"id":{"type":"string","description":"The Elasticsearch document ID of the discount."},"path":{"type":"string","description":"The catalog path of the discount."},"name":{"type":"string","description":"Display name of the discount."}}}}}}}}
```

## The GetSubscriptionOfferObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetSubscriptionOfferObjectResponse":{"type":"object","description":"Subscription Offer object","title":"Get Subscription Offer Response","properties":{"data":{"type":"object","description":"Subscription Offer data","properties":{"name":{"type":"string"},"start":{"type":"string","format":"date-time"},"price":{"type":"object","description":"Price details","properties":{"summary":{"type":"object"},"currency":{"type":"string"},"amount":{"type":"number"}}},"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"details":{"type":"string"},"id":{"type":"string"},"tracking":{"type":"object","properties":{"offers":{"type":"array","items":{"type":"string"}},"lmo_offer":{"type":"string"},"campaign":{"type":"string"},"tag":{"type":"string"}}},"products":{"type":"array","items":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"type":"object","properties":{"$ref":{"type":"string"}}}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"Product Family":{"type":"string"},"product_code__limio":{"type":"string"}}},"record_subtype":{"type":"null"},"record_type":{"type":"string"}}}}}},"status":{"type":"string"},"record_type":{"type":"string"},"related":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetUserEntitlementObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetUserEntitlementObjectResponse":{"type":"object","description":"Entitlement object","title":"Get User Entitlement Response","properties":{"from":{"type":"string"},"code":{"type":"string"},"type":{"type":"string"},"endDate":{"type":"string","format":"date"},"startDate":{"type":"string","format":"date-time"},"effectiveDate":{"type":"string","format":"date-time"}}}}}}
```

## The GetBasketObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetBasketObjectResponse":{"type":"object","description":"Basket object","title":"Get Basket Response","properties":{"data":{"type":"object","description":"Basket data","properties":{"order":{"type":"object","description":"The in-progress order held by the basket, including order_type, orderItems with the selected offers, quantities, and country. The shape matches the order submitted at checkout completion.","properties":{"order_type":{"type":"string"},"orderItems":{"type":"array","items":{"$ref":"#/components/schemas/OrderItem"}},"country":{"type":"string"}}},"completed":{"type":"boolean","description":"Whether the checkout for this basket has been completed"},"paymentMethod":{"type":"string","description":"Selected payment method, if chosen"},"schedule":{"type":"array","description":"Payment schedule preview for the basket, if calculated","items":{"type":"object"}}}},"record_type":{"type":"string"},"owner":{"type":"string","description":"Identity ID of the basket owner"},"id":{"type":"string","description":"Basket ID"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"expiresAt":{"type":"integer","description":"Unix timestamp in seconds at which the basket expires"},"mode":{"type":"string"}}},"OrderItem":{"type":"object","properties":{"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"price":{"type":"object","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"integer"}}},"name":{"type":"string"},"id":{"type":"string"},"startDate":{"type":"string","format":"date"},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The PromoCodeWholeBasket object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PromoCodeWholeBasket":{"type":"object","allOf":[{"properties":{"applicationLevel":{"type":"string","enum":["wholeBasket"],"description":"Specifies if the promo code applies to the whole basket."}}},{"$ref":"#/components/schemas/PromoCodeData"}],"required":["applicationLevel"]},"PromoCodeData":{"type":"object","properties":{"promoCode":{"type":"string","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","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","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","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","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","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","description":"The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","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","description":"The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount."},"currency":{"type":"string","description":"The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","enum":["Days","Weeks","Months","Years"],"description":"The duration type (e.g., months)."}}}]}},"required":["promoCode","status","productDetails","discount"]},"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]}}}}
```

## The PromoCodeSelectedItems object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PromoCodeSelectedItems":{"type":"object","allOf":[{"properties":{"applicationLevel":{"type":"string","enum":["selectedItems"],"description":"Specifies if the promo code applies to selected items."},"referencedOfferLabel":{"type":"string","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"]},"PromoCodeData":{"type":"object","properties":{"promoCode":{"type":"string","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","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","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","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","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","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","description":"The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","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","description":"The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount."},"currency":{"type":"string","description":"The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","enum":["Days","Weeks","Months","Years"],"description":"The duration type (e.g., months)."}}}]}},"required":["promoCode","status","productDetails","discount"]},"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]}}}}
```

## The UpdateObject object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"UpdateObject":{"type":"object","properties":{"name":{"type":"string","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"}}},{"$ref":"#/components/schemas/PromoCodeWholeBasket"},{"$ref":"#/components/schemas/PromoCodeSelectedItems"},{"$ref":"#/components/schemas/PromoCodeV3Data"}]}},"required":["data"]},"PromoCodeWholeBasket":{"type":"object","allOf":[{"properties":{"applicationLevel":{"type":"string","enum":["wholeBasket"],"description":"Specifies if the promo code applies to the whole basket."}}},{"$ref":"#/components/schemas/PromoCodeData"}],"required":["applicationLevel"]},"PromoCodeData":{"type":"object","properties":{"promoCode":{"type":"string","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","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","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","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","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","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","description":"The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","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","description":"The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount."},"currency":{"type":"string","description":"The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","enum":["Days","Weeks","Months","Years"],"description":"The duration type (e.g., months)."}}}]}},"required":["promoCode","status","productDetails","discount"]},"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]},"PromoCodeSelectedItems":{"type":"object","allOf":[{"properties":{"applicationLevel":{"type":"string","enum":["selectedItems"],"description":"Specifies if the promo code applies to selected items."},"referencedOfferLabel":{"type":"string","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"]},"PromoCodeV3Data":{"type":"object","required":["promoCode","status"],"properties":{"promoCode":{"type":"string","description":"The promo code string that customers enter at checkout."},"status":{"type":"boolean","description":"Whether the promo code is active. When `true` the code can be redeemed; when `false` it is disabled."},"description":{"type":"string","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","description":"The date the promo code becomes redeemable (YYYY-MM-DD). If omitted the code is active immediately (when status is true)."},"promoExpiryDate":{"type":"string","format":"date","description":"The date the promo code expires (YYYY-MM-DD). If omitted the code does not expire."},"usage":{"type":"object","properties":{"availableQuantity":{"type":"integer","description":"Maximum number of times this code can be redeemed. If omitted the code has unlimited uses."},"redeemedQuantity":{"type":"integer","description":"Number of times the code has been redeemed so far."}}},"attachedDiscount":{"type":"object","description":"Reference to the discount catalog item that defines the pricing rules applied when this code is redeemed.","required":["id","path","name"],"properties":{"id":{"type":"string","description":"The Elasticsearch document ID of the discount."},"path":{"type":"string","description":"The catalog path of the discount."},"name":{"type":"string","description":"Display name of the discount."}}}}}}}}
```

## The UpdateObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"UpdateObjectResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the object"},"sort_key":{"type":"string","description":"The sort key of the object"},"data":{"type":"object","description":"The data of the object sent in the request"}}}}}}
```

## The DeleteObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"DeleteObjectResponse":{"type":"object","properties":{"$metadata":{"type":"object","description":"Metadata about the delete operation","properties":{"httpStatusCode":{"type":"integer","description":"The HTTP status code of the response"},"requestId":{"type":"string","description":"The request ID"},"attempts":{"type":"integer","description":"The number of attempts made"},"totalRetryDelay":{"type":"integer","description":"The total retry delay in milliseconds"}}}}}}}}
```

## The GetOrderObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}}}},"GetOrderObjectResponse":{"type":"object","description":"Order object","title":"Get Order Response","properties":{"name":{"type":"string","description":"Order name"},"data":{"type":"object","description":"Order data","properties":{"email":{"type":"string"},"name":{"type":"string"},"tracking":{"$ref":"#/components/schemas/Tracking"},"country":{"type":"string"},"billingDetails":{"$ref":"#/components/schemas/BillingDetails"},"__spec_version":{"type":"string"},"external_id":{"type":"string"},"source":{"type":"string","enum":["salesforce","limio"]},"orderItems":{"type":"array","items":{"$ref":"#/components/schemas/OrderItem"}},"process_immediately":{"type":"boolean"},"mode":{"type":"string"},"total":{"type":"object","properties":{"currency":{"type":"string"},"amount":{"type":"integer"}}},"payment":{"type":"object","properties":{"type":{"type":"string"},"invoicePref":{"type":"string"}}},"customerDetails":{"type":"object","properties":{"lastName":{"type":"string"},"firstName":{"type":"string"}}},"sourceDetails":{"type":"object","properties":{"instance":{"type":"string"}}},"initiated_source":{"type":"string"},"orderDate":{"type":"string","format":"date-time"}}},"status":{"type":"string"},"record_type":{"type":"string"},"owner":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"},"authority":{"type":"object","properties":{"aut":{"type":"object","properties":{"iss":{"type":"string"},"sub":{"type":"string"}}},"permissions":{"type":"array","items":{"type":"string"}}}}}},"Tracking":{"type":"object","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}},"BillingDetails":{"type":"object","properties":{"country":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"streetName":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"postalCode":{"type":"string"},"buildingNumber":{"type":"number"},"company":{"type":"string"},"state":{"type":"string"}}},"OrderItem":{"type":"object","properties":{"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"price":{"type":"object","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"integer"}}},"name":{"type":"string"},"id":{"type":"string"},"startDate":{"type":"string","format":"date"},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetSubscriptionObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetSubscriptionObjectsResponse":{"type":"object","description":"Response object","title":"Get Subscriptions Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetSubscriptionObjectResponse"}}}},"GetSubscriptionObjectResponse":{"type":"object","description":"Subscription object","title":"Get Subscription Response","properties":{"name":{"type":"string","description":"Subscription name"},"start":{"type":"string","format":"date","description":"Subscription start date"},"data":{"type":"object","description":"Subscription data","properties":{"name":{"type":"string","description":"Subscription data name"},"tracking":{"$ref":"#/components/schemas/Tracking"},"offer":{"type":"object","description":"Offer details","properties":{"mode":{"type":"string"},"path":{"type":"string"},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"name":{"type":"string"},"id":{"type":"string"},"type":{"type":"string"},"updated":{"type":"string","format":"date-time"},"version":{"type":"string"},"record_type":{"type":"string"},"status":{"type":"string"}}},"quantity":{"type":"integer"},"termEndDate":{"type":"string","format":"date"},"price":{"type":"object","description":"Price details","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"number"}}},"termStartDate":{"type":"string","format":"date"},"attributes":{"type":"object","properties":{"gift":{"type":"boolean"},"external":{"type":"boolean"}}},"id":{"type":"string"},"purchaseCountry":{"type":"string"},"startDate":{"type":"string","format":"date"},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}}}},"status":{"type":"string"},"record_type":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"ref":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}},"Tracking":{"type":"object","description":"Tracking data associated with the order, used for attribution and integration with external systems. When the basket resolves an owner, the response includes an `assistedCheckoutLink` for OBO (On-Behalf-Of) checkout flows. An owner is resolved from `accountId` or `zuoraAccountNumber` here, or from a renewal `subscriptionId` on the order itself.","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string","description":"Salesforce Account ID. When provided, Limio resolves or creates an identity owner for the basket and returns an `assistedCheckoutLink` in the response."},"zuoraAccountNumber":{"type":"string","description":"Zuora account number. Like `accountId`, resolves an identity owner for the basket, so the response includes an `assistedCheckoutLink`. `accountId` takes precedence when both are provided."},"contactId":{"type":"string","description":"Salesforce Contact ID associated with this order."},"userId":{"type":"string","description":"Salesforce User ID associated with this order."}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetCustomerObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetCustomerObjectsResponse":{"type":"object","description":"Response object","title":"Get Customers Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetCustomerObjectResponse"}}}},"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"},"email":{"type":"string","format":"email","description":"Email address of the customer"},"firstName":{"type":"string","description":"First name of the customer"},"lastName":{"type":"string","description":"Last name of the customer"},"purchaseCountry":{"type":"string","description":"Country code of the customer's purchase"},"trialist":{"type":"boolean","description":"Indicates if the customer is a trialist"}}},"status":{"type":"string","description":"Status of the customer"},"record_type":{"type":"string","description":"Record type of the object"},"owner":{"type":"string","description":"ID of the owner of the customer"},"id":{"type":"string","description":"Unique identifier of the customer"},"service":{"type":"string","description":"Service associated with the customer"},"created":{"type":"string","format":"date-time","description":"Timestamp of when the customer was created"},"updated":{"type":"string","format":"date-time","description":"Timestamp of when the customer was last updated"},"reference":{"type":"string","description":"Reference code associated with the customer"},"mode":{"type":"string","description":"Mode of the customer object"}}}}}}
```

## The GetIdentityObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetIdentityObjectsResponse":{"type":"object","description":"Response object","title":"Get Identities Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetIdentityObjectResponse"}}}},"GetIdentityObjectResponse":{"type":"object","description":"Identity object","title":"Get Identity Response","properties":{"data":{"type":"object","description":"Identity data","properties":{"email":{"type":"string","format":"email"},"cognito:username":{"type":"string"},"email_verified":{"type":"boolean"},"event_id":{"type":"string"},"isValidated":{"type":"boolean"},"iss":{"type":"string"},"jti":{"type":"string"},"origin_jti":{"type":"string"},"sub":{"type":"string"}}},"status":{"type":"string"},"record_type":{"type":"string"},"record_variant":{"type":"string"},"owner":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"mode":{"type":"string"}}}}}}
```

## The GetCustomerAddressObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetCustomerAddressObjectsResponse":{"type":"object","description":"Response object","title":"Get Customer Addresses Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/CustomerAddress"}}}},"CustomerAddress":{"type":"object","description":"Customer Address object","title":"Get Customer Address Response","properties":{"record_type":{"type":"string"},"id":{"type":"string"},"relationship_id":{"type":"string"},"data":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"country":{"type":"string"},"address2":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"postalCode":{"type":"string"},"company":{"type":"string"},"state":{"type":"string"},"email":{"type":"string","format":"email"}}},"related":{"type":"string"},"service":{"type":"string"},"start":{"type":"string","format":"date-time"},"relationship_type":{"type":"string"},"mode":{"type":"string"},"created":{"type":"string","format":"date-time"},"status":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"}}}}}}
```

## The GetScheduleObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetScheduleObjectsResponse":{"type":"object","description":"Response object","title":"Get Schedules Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetScheduleObjectResponse"}}}},"GetScheduleObjectResponse":{"type":"object","description":"Schedule object","title":"Get Schedule Response","properties":{"data":{"type":"object","description":"Schedule data","properties":{"date":{"type":"string","format":"date-time"},"amountWithoutTax":{"type":"string"},"lineItems":{"type":"array","items":{"type":"object","properties":{"amountWithoutTax":{"type":"string"},"processingType":{"type":"string"},"quantity":{"type":"integer"},"taxAmount":{"type":"string"},"chargeName":{"type":"string"},"productName":{"type":"string"},"chargeDescription":{"type":"string"}}}},"amount":{"type":"string"},"quantity":{"type":"integer"},"description":{"type":"string"},"currency":{"type":"string"},"unit_amount":{"type":"string"},"schedule_date":{"type":"string","format":"date-time"},"type":{"type":"string"},"taxAmount":{"type":"integer"}}},"status":{"type":"string"},"record_type":{"type":"string"},"related":{"type":"string"},"owner":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}}}}}
```

## The GetPaymentMethodObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetPaymentMethodObjectsResponse":{"type":"object","description":"Response object","title":"Get Payment Methods Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetPaymentMethodObjectResponse"}}}},"GetPaymentMethodObjectResponse":{"type":"object","description":"Payment Method object","title":"Get Payment Method Response","properties":{"type":{"type":"string"},"data":{"type":"object","description":"Payment method data","properties":{"type":{"type":"string"},"zuora":{"type":"object","properties":{"result":{"type":"object","properties":{"LastTransactionDateTime":{"type":"string","format":"date-time"},"LastTransactionStatus":{"type":"string"},"NumConsecutiveFailures":{"type":"integer"},"UpdatedDate":{"type":"string","format":"date-time"},"UpdatedById":{"type":"string"},"CreditCardExpirationMonth":{"type":"integer"},"CreditCardExpirationYear":{"type":"integer"},"CreditCardType":{"type":"string"},"CreditCardHolderName":{"type":"string"},"PaymentMethodStatus":{"type":"string"},"Active":{"type":"boolean"},"Type":{"type":"string"},"CreatedById":{"type":"string"},"CreditCardMaskNumber":{"type":"string"},"CreatedDate":{"type":"string","format":"date-time"},"BankIdentificationNumber":{"type":"string"},"IsCompany":{"type":"boolean"},"TotalNumberOfErrorPayments":{"type":"integer"},"Id":{"type":"string"},"TotalNumberOfProcessedPayments":{"type":"integer"},"UseDefaultRetryRule":{"type":"boolean"}}},"signature":{"type":"string"},"success":{"type":"boolean"},"tenantId":{"type":"string"},"responseFrom":{"type":"string"},"refId":{"type":"string"},"paymentGateway":{"type":"string"},"token":{"type":"string"}}},"timing":{"type":"object","properties":{"delta":{"type":"integer"}}},"address":{"type":"object","properties":{"country":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"streetName":{"type":"string"},"address2":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"postalCode":{"type":"string"},"buildingNumber":{"type":"string"},"company":{"type":"string"},"state":{"type":"string"}}}}},"status":{"type":"string"},"record_type":{"type":"string"},"related":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}}}}}
```

## The GetPromoCodeV2ObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetPromoCodeV2ObjectsResponse":{"type":"object","title":"Get Promo Code V2 Objects Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetPromoCodeV2ObjectResponse"}}}},"GetPromoCodeV2ObjectResponse":{"type":"object","description":"Promo Code V2 object","title":"Get Promo Code V2 Response","properties":{"name":{"type":"string","description":"Promo code name"},"data":{"$ref":"#/components/schemas/PromoCodeData"},"status":{"type":"string"},"record_type":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"mode":{"type":"string"}}},"PromoCodeData":{"type":"object","properties":{"promoCode":{"type":"string","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","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","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","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","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","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","description":"The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","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","description":"The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount."},"currency":{"type":"string","description":"The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","enum":["Days","Weeks","Months","Years"],"description":"The duration type (e.g., months)."}}}]}},"required":["promoCode","status","productDetails","discount"]},"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]}}}}
```

## The GetPromoCodeV3ObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetPromoCodeV3ObjectsResponse":{"type":"object","title":"Get Promo Code V3 Objects Response","properties":{"items":{"type":"array","description":"Array of promo code v3 objects","items":{"$ref":"#/components/schemas/GetPromoCodeV3ObjectResponse"}}}},"GetPromoCodeV3ObjectResponse":{"type":"object","description":"Promo Code V3 object","title":"Get Promo Code V3 Response","properties":{"name":{"type":"string","description":"Promo code name"},"data":{"$ref":"#/components/schemas/PromoCodeV3Data"},"status":{"type":"string"},"record_type":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"mode":{"type":"string"}}},"PromoCodeV3Data":{"type":"object","required":["promoCode","status"],"properties":{"promoCode":{"type":"string","description":"The promo code string that customers enter at checkout."},"status":{"type":"boolean","description":"Whether the promo code is active. When `true` the code can be redeemed; when `false` it is disabled."},"description":{"type":"string","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","description":"The date the promo code becomes redeemable (YYYY-MM-DD). If omitted the code is active immediately (when status is true)."},"promoExpiryDate":{"type":"string","format":"date","description":"The date the promo code expires (YYYY-MM-DD). If omitted the code does not expire."},"usage":{"type":"object","properties":{"availableQuantity":{"type":"integer","description":"Maximum number of times this code can be redeemed. If omitted the code has unlimited uses."},"redeemedQuantity":{"type":"integer","description":"Number of times the code has been redeemed so far."}}},"attachedDiscount":{"type":"object","description":"Reference to the discount catalog item that defines the pricing rules applied when this code is redeemed.","required":["id","path","name"],"properties":{"id":{"type":"string","description":"The Elasticsearch document ID of the discount."},"path":{"type":"string","description":"The catalog path of the discount."},"name":{"type":"string","description":"Display name of the discount."}}}}}}}}
```

## The GetSubscriptionOfferObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetSubscriptionOfferObjectsResponse":{"type":"object","description":"Response object","title":"Get Subscription Offers Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetSubscriptionOfferObjectResponse"}}}},"GetSubscriptionOfferObjectResponse":{"type":"object","description":"Subscription Offer object","title":"Get Subscription Offer Response","properties":{"data":{"type":"object","description":"Subscription Offer data","properties":{"name":{"type":"string"},"start":{"type":"string","format":"date-time"},"price":{"type":"object","description":"Price details","properties":{"summary":{"type":"object"},"currency":{"type":"string"},"amount":{"type":"number"}}},"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"details":{"type":"string"},"id":{"type":"string"},"tracking":{"type":"object","properties":{"offers":{"type":"array","items":{"type":"string"}},"lmo_offer":{"type":"string"},"campaign":{"type":"string"},"tag":{"type":"string"}}},"products":{"type":"array","items":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"type":"object","properties":{"$ref":{"type":"string"}}}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"Product Family":{"type":"string"},"product_code__limio":{"type":"string"}}},"record_subtype":{"type":"null"},"record_type":{"type":"string"}}}}}},"status":{"type":"string"},"record_type":{"type":"string"},"related":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"},"mode":{"type":"string"}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}}}}}
```

## The GetUserEntitlementObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetUserEntitlementObjectsResponse":{"type":"object","description":"Response object","title":"Get User Entitlements Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetUserEntitlementObjectResponse"}}}},"GetUserEntitlementObjectResponse":{"type":"object","description":"Entitlement object","title":"Get User Entitlement Response","properties":{"from":{"type":"string"},"code":{"type":"string"},"type":{"type":"string"},"endDate":{"type":"string","format":"date"},"startDate":{"type":"string","format":"date-time"},"effectiveDate":{"type":"string","format":"date-time"}}}}}}
```

## The GetEventObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"message":{"type":"string","description":"Human-readable description of the event"},"source":{"type":"string","description":"Source of the event, either shop or salesforce"},"type":{"type":"string","description":"Type of event"}}},"status":{"type":"string","description":"Current status of the event"},"record_type":{"type":"string","description":"Type of record"},"id":{"type":"string","description":"Unique identifier for the event"},"service":{"type":"string","description":"Name of the service generating the event"},"created":{"type":"string","format":"date-time","description":"ISO timestamp when the event was created"},"mode":{"type":"string","description":"Environment mode in which the event occurred"}}}}}}
```

## The GetEventObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetEventObjectsResponse":{"type":"object","title":"Get Event Objects Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetEventObjectResponse"}}}},"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"},"message":{"type":"string","description":"Human-readable description of the event"},"source":{"type":"string","description":"Source of the event, either shop or salesforce"},"type":{"type":"string","description":"Type of event"}}},"status":{"type":"string","description":"Current status of the event"},"record_type":{"type":"string","description":"Type of record"},"id":{"type":"string","description":"Unique identifier for the event"},"service":{"type":"string","description":"Name of the service generating the event"},"created":{"type":"string","format":"date-time","description":"ISO timestamp when the event was created"},"mode":{"type":"string","description":"Environment mode in which the event occurred"}}}}}}
```

## The GetProcessEventObjectResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"stack":{"type":"string","description":"Full stack trace of the error"},"message":{"type":"string","description":"Error message returned by the plugin"},"critical":{"type":"boolean","description":"Whether the error is considered critical"}}}}}},"status":{"type":"string","description":"Status of the processing event"},"record_type":{"type":"string","description":"Type of record"},"id":{"type":"string","description":"Unique identifier for the event"},"service":{"type":"string","description":"Name of the service generating the event"},"created":{"type":"string","format":"date-time","description":"Timestamp of when the event was created"},"mode":{"type":"string","description":"Deployment mode"}}}}}}
```

## The GetProcessEventObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetProcessEventObjectsResponse":{"type":"object","title":"Get Process Event Objects Response","properties":{"items":{"type":"array","description":"Array of objects","items":{"$ref":"#/components/schemas/GetProcessEventObjectResponse"}}}},"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"},"stack":{"type":"string","description":"Full stack trace of the error"},"message":{"type":"string","description":"Error message returned by the plugin"},"critical":{"type":"boolean","description":"Whether the error is considered critical"}}}}}},"status":{"type":"string","description":"Status of the processing event"},"record_type":{"type":"string","description":"Type of record"},"id":{"type":"string","description":"Unique identifier for the event"},"service":{"type":"string","description":"Name of the service generating the event"},"created":{"type":"string","format":"date-time","description":"Timestamp of when the event was created"},"mode":{"type":"string","description":"Deployment mode"}}}}}}
```

## The RelatedObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"RelatedObjectsResponse":{"type":"object","description":"Related Objects","properties":{"items":{"type":"array","items":{"type":"object","description":"Related Object","properties":{"name":{"type":"string","description":"Related Object name"},"id":{"type":"string","description":"Related Object id"},"relationship_id":{"type":"string","description":"Relationship id"},"type":{"type":"string","description":"Related Object type","enum":["zuora"]},"record_type":{"type":"string","description":"Related Object record type","enum":["customer","order","subscription_offer","address","event","identity","subscription","payment_method"]},"service":{"type":"string","description":"Related Object service","enum":["limio","zuora","salesforce","zephr"]},"mode":{"type":"string","description":"Mode in which the related object was created"},"created":{"type":"string","format":"date-time","description":"ISO date string on which the related object was created"},"data":{"type":"object","description":"Relationship data","properties":{"reference":{"type":"string","description":"Relationship reference"},"id":{"type":"string","description":"Object id"},"related":{"type":"string","description":"The id of the object to which this relationship object is related"},"record_type":{"type":"string","description":"Relationship record type"},"service":{"type":"string","description":"Relationship service"},"mode":{"type":"string","description":"Mode in which the relationship was created"},"created":{"type":"string","description":"ISO date string on which the relationship was created"},"data":{"type":"object","description":"Data of the two objects in the relationship","properties":{"from":{"type":"object","properties":{"name":{"type":"string","description":"Object name"},"id":{"type":"string","description":"Object id"},"record_type":{"type":"string","description":"Object record type"},"service":{"type":"string","description":"Object service"},"data":{"type":"object","description":"Additional object data"}}},"to":{"type":"object","properties":{"name":{"type":"string","description":"Object name"},"id":{"type":"string","description":"Object id"},"record_type":{"type":"string","description":"Object record type"},"service":{"type":"string","description":"Object service"},"data":{"type":"object","description":"Additional object data"}}},"metadata":{"type":"object","description":"Additional relationship data"}}}}}}}},"queryMore":{"type":"string","description":"Base64-encoded pagination token. Pass it back in the queryMore query parameter to fetch the next page. Absent on the last page."}}}}}}
```

## The GetObjectSubTypeResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"id":{"type":"string","description":"Child Object id"},"related":{"type":"string","description":"The id of the object to which this child object is related"},"owner":{"type":"string","description":"The id of the parent object"},"record_type":{"type":"string","description":"Child Object record type"},"service":{"type":"string","description":"Child Object service"},"mode":{"type":"string","description":"Mode in which the child object was created"},"created":{"type":"string","description":"ISO date string on which the child object was created"},"data":{"type":"object","description":"Additional data of the child object"}}}},"queryMore":{"type":"string","description":"Pagination token. Present when more child objects exist beyond the current page; absent on the last page."}}}}}}
```

## The GetObjectEventsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetObjectEventsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"record_type":{"type":"string"},"id":{"type":"string"},"relationship_id":{"type":"string"},"data":{"type":"object","properties":{"message":{"type":"string"},"type":{"type":"string"},"source":{"type":"string"}}},"related":{"type":"string"},"service":{"type":"string"},"mode":{"type":"string"},"created":{"type":"string","format":"date-time"},"status":{"type":"string"}}}},"unpackedItems":{"type":"array","items":{"type":"object","properties":{"mode":{"type":"string"},"status":{"type":"string"},"created":{"type":"string","format":"date-time"},"sort_key":{"type":"string"},"related":{"type":"string"},"reference":{"type":"string"},"service":{"type":"string"},"hash":{"type":"string"},"updated":{"type":"string","format":"date-time"},"header":{"type":"object","properties":{"from":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object","properties":{"message":{"type":"string"},"type":{"type":"string"},"source":{"type":"string"}}},"record_type":{"type":"string"},"service":{"type":"string"},"status":{"type":"string"}}},"metadata":{"type":"object"},"to":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"},"data":{"type":"object"},"record_type":{"type":"string"},"service":{"type":"string"},"status":{"type":"string"}}}}},"tenant_id":{"type":"string"},"processName":{"type":"string"},"id":{"type":"string"},"record_type":{"type":"string"},"body":{"type":"object"}}}},"queryMore":{"type":"string","description":"Pagination token. Present when more events exist beyond the returned page."}}}}}}
```

## The PublishCatalogItemResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PublishCatalogItemResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the publish or unpublish operation succeeded."}}}}}}
```

## The UpdatePromoCodeObjects object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"UpdatePromoCodeObjects":{"type":"object","properties":{"name":{"type":"string","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","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"]},"PromoCodeWholeBasket":{"type":"object","allOf":[{"properties":{"applicationLevel":{"type":"string","enum":["wholeBasket"],"description":"Specifies if the promo code applies to the whole basket."}}},{"$ref":"#/components/schemas/PromoCodeData"}],"required":["applicationLevel"]},"PromoCodeData":{"type":"object","properties":{"promoCode":{"type":"string","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","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","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","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","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","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","description":"The percentage discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountPercentage."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","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","description":"The amount discount. Can be specified to 2 decimal places. This should only be set if the discountType is DiscountFixedAmount."},"currency":{"type":"string","description":"The currency of the discount. Remember to activate the associated currency of the rate plan in the billing system."},"durationLength":{"type":"integer","description":"The duration length of the discount."},"durationType":{"type":"string","enum":["Days","Weeks","Months","Years"],"description":"The duration type (e.g., months)."}}}]}},"required":["promoCode","status","productDetails","discount"]},"PromoCodeProductDetails":{"type":"object","properties":{"product":{"type":"object","properties":{"path":{"type":"string","description":"Path to the Limio Product."}}},"ratePlan":{"type":"object","properties":{"path":{"type":"string","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"]},"PromoCodeSelectedItems":{"type":"object","allOf":[{"properties":{"applicationLevel":{"type":"string","enum":["selectedItems"],"description":"Specifies if the promo code applies to selected items."},"referencedOfferLabel":{"type":"string","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"]}}}}
```

## The UpdateObjectsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"UpdateObjectsResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the object"},"name":{"type":"string","description":"The name of the object"},"status":{"type":"string","description":"The status of the object"},"record_type":{"type":"string","description":"The record type of the object"},"service":{"type":"string","description":"The service of the object"},"data":{"type":"object","description":"The data of the object sent in the request"}}}}}}
```

## The CreatePromoCodeV3Request object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CreatePromoCodeV3Request":{"type":"object","required":["name","id","data"],"properties":{"name":{"type":"string","description":"The promo code name. Used as the code identifier."},"id":{"type":"string","description":"The object ID. This is the record_type and name concatenated, e.g. `promo_code_v3-SPRING2026`."},"data":{"$ref":"#/components/schemas/PromoCodeV3Data"}}},"PromoCodeV3Data":{"type":"object","required":["promoCode","status"],"properties":{"promoCode":{"type":"string","description":"The promo code string that customers enter at checkout."},"status":{"type":"boolean","description":"Whether the promo code is active. When `true` the code can be redeemed; when `false` it is disabled."},"description":{"type":"string","description":"A brief description of the promo code."},"promoStartDate":{"type":"string","format":"date","description":"The date the promo code becomes redeemable (YYYY-MM-DD). If omitted the code is active immediately (when status is true)."},"promoExpiryDate":{"type":"string","format":"date","description":"The date the promo code expires (YYYY-MM-DD). If omitted the code does not expire."},"usage":{"type":"object","properties":{"availableQuantity":{"type":"integer","description":"Maximum number of times this code can be redeemed. If omitted the code has unlimited uses."},"redeemedQuantity":{"type":"integer","description":"Number of times the code has been redeemed so far."}}},"attachedDiscount":{"type":"object","description":"Reference to the discount catalog item that defines the pricing rules applied when this code is redeemed.","required":["id","path","name"],"properties":{"id":{"type":"string","description":"The Elasticsearch document ID of the discount."},"path":{"type":"string","description":"The catalog path of the discount."},"name":{"type":"string","description":"Display name of the discount."}}}}}}}}
```

## The TransferOwnershipRequest object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"TransferOwnershipRequest":{"type":"object","properties":{"sourceId":{"type":"string"},"destinationId":{"type":"string"},"message":{"type":"string"}}}}}}
```

## The TransferOwnershipResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"TransferOwnershipResponse":{"type":"object","properties":{"result":{"type":"object","properties":{"sourceId":{"type":"string"},"destinationId":{"type":"string"},"updatedIds":{"type":"array","items":{"type":"string"}},"failedIds":{"type":"array","items":{"type":"string"}},"eventId":{"type":"string"}}},"success":{"type":"boolean"}}}}}}
```

## The ExternalIdentityRequest object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ExternalIdentityRequest":{"type":"object","properties":{"id_token":{"description":"id_token","type":"object","required":["iss","sub"],"properties":{"iss":{"type":"string","maxLength":255},"sub":{"type":"string","maxLength":255}}}}}}}}
```

## The AddExternalIdentityResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AddExternalIdentityResponse":{"type":"object","properties":{"name":{"type":"string"},"data":{"type":"object","properties":{"iss":{"type":"string"},"sub":{"type":"string"}}},"status":{"type":"string"},"record_type":{"type":"string"},"record_variant":{"type":"string"},"owner":{"type":"string"},"id":{"type":"string"},"service":{"type":"string"},"created":{"type":"string"},"updated":{"type":"string"},"mode":{"type":"string"}}}}}}
```

## The RemoveExternalIdentityResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"RemoveExternalIdentityResponse":{"type":"object","properties":{}}}}}
```

## The ForgetCustomerDataResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ForgetCustomerDataResponse":{"type":"object","properties":{"customerId":{"type":"string"},"eventId":{"type":"string"},"success":{"type":"boolean"}}}}}}
```

## The Price object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Price":{"type":"object","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"number"}}}}}}
```

## The LineItem object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The Schedule object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"}}}}}},"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"}}}}}}
```

## The SubscriptionData object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SubscriptionData":{"type":"object","properties":{"name":{"type":"string"},"tracking":{"type":"object","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string"},"contactId":{"type":"string"},"userId":{"type":"string"}}},"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"termEndDate":{"type":"string","format":"date"},"price":{"$ref":"#/components/schemas/Price"},"termStartDate":{"type":"string","format":"date"},"attributes":{"type":"object","properties":{"gift":{"type":"boolean"},"external":{"type":"boolean"}}},"id":{"type":"string"},"purchaseCountry":{"type":"string"},"startDate":{"type":"string","format":"date"},"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"}}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}},"Price":{"type":"object","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"number"}}},"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"}}}}}},"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"}}},"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"}}}}}}
```

## The Subscription object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Subscription":{"type":"object","description":"A Limio subscription object representing a customer's active or historical subscription.","properties":{"name":{"type":"string","description":"Human-readable subscription reference code."},"start":{"type":"string","format":"date","description":"The date the subscription started or is scheduled to start."},"data":{"$ref":"#/components/schemas/SubscriptionData"},"status":{"type":"string","description":"Current lifecycle status of the subscription.","enum":["active","cancelled","expired","pending"]},"record_type":{"type":"string","description":"Object type identifier. Always `subscription` for this schema."},"owner":{"type":"string","description":"The identity ID that owns this subscription, prefixed with `id-`."},"customer":{"type":"string","description":"The customer ID associated with this subscription, prefixed with `cus-`."},"id":{"type":"string","description":"Unique subscription identifier, prefixed with `sub-`."},"service":{"type":"string","description":"The service this subscription belongs to.","enum":["limio","zuora","salesforce"]},"ref":{"type":"string","description":"Internal reference linking the subscription to its originating order."},"created":{"type":"string","format":"date-time","description":"Timestamp when the subscription was created."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the subscription was last modified."},"reference":{"type":"string","description":"External reference code, typically matches the `name` field."},"mode":{"type":"string","description":"Deployment mode of the subscription.","enum":["production","test"]}}},"SubscriptionData":{"type":"object","properties":{"name":{"type":"string"},"tracking":{"type":"object","properties":{"offers":{"type":"array","items":{"type":"string"}},"purchaseCountryCode":{"type":"string"},"accountId":{"type":"string"},"contactId":{"type":"string"},"userId":{"type":"string"}}},"offer":{"$ref":"#/components/schemas/Offer"},"quantity":{"type":"integer"},"termEndDate":{"type":"string","format":"date"},"price":{"$ref":"#/components/schemas/Price"},"termStartDate":{"type":"string","format":"date"},"attributes":{"type":"object","properties":{"gift":{"type":"boolean"},"external":{"type":"boolean"}}},"id":{"type":"string"},"purchaseCountry":{"type":"string"},"startDate":{"type":"string","format":"date"},"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"}}}},"Offer":{"type":"object","description":"A Limio offer object representing a purchasable subscription offer with pricing, products, and configuration.","properties":{"mode":{"type":"string","description":"Deployment mode of the offer.","enum":["production","test"]},"path":{"type":"string","description":"Catalog path of the offer. V2 offers use `/offers2/...`, legacy offers use `/offers/...`."},"data":{"$ref":"#/components/schemas/OfferData"},"service":{"type":"string","description":"The service this offer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the offer was created."},"name":{"type":"string","description":"Display name of the offer."},"id":{"type":"string","description":"Unique offer identifier (content-addressable hash)."},"type":{"type":"string","description":"Object type within the catalog hierarchy."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the offer was last modified."},"version":{"type":"string","description":"Version hash of the offer. Changes when the offer content is updated. Used with the Published Offers API for versioned offer management."},"record_type":{"type":"string","description":"Object type identifier. Always `offer` for this schema."},"status":{"type":"string","description":"Publication status of the offer.","enum":["active","inactive"]}}},"OfferData":{"type":"object","properties":{"price__limio":{"type":"array","items":{}},"created":{"type":"string","format":"date-time"},"duplicatedFrom":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"},"record_type":{"type":"string"},"productBundles":{"type":"array","items":{"type":"object","properties":{"revenue_split":{"type":"string"},"product_path":{"type":"string"},"rate_plan":{"type":"string"}}}},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetails"}},"baseTemplate":{"type":"string"},"path":{"type":"string"},"priceReference":{"type":"string"},"price":{"type":"array","items":{}},"name":{"type":"string"},"modified":{"type":"string","format":"date-time"},"attributes":{"type":"object","properties":{"checkout_description__limio":{"type":"string"},"price__limio":{"type":"array","items":{"type":"object","properties":{"delay_interval_type":{"type":"string"},"name":{"type":"string"},"delay_interval":{"type":"string"},"repeat_interval":{"type":"integer"},"attributes":{"type":"array","items":{}},"label":{"type":"string"},"trigger":{"type":"string"},"repeat_interval_type":{"type":"string"},"repeat_count":{"type":"integer"},"type":{"type":"string"},"value":{"type":"string"},"currencyCode":{"type":"string"}}}},"default_quantity_options__limio":{},"supportBillingFrequencyChange__zuora":{"type":"boolean"},"allowed_countries__limio":{"type":"array","items":{"type":"string"}},"label__limio":{"type":"array","items":{"type":"string"}},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"display_price__limio":{"type":"string"},"cta_text__limio":{"type":"string"},"payment_types__limio":{"type":"array","items":{"type":"string"}},"sales_channel__limio":{"type":"array","items":{"type":"string"}},"display_name__limio":{"type":"string"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"}}},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"length":{"type":"integer"},"renewal_trigger":{"type":"string"},"type":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean"},"autoRenew__limio":{"type":"boolean"},"offer_type__limio":{"type":"string"}}},"id":{"type":"string"},"user":{"type":"string"}}},"ProductDetails":{"type":"object","properties":{"baseTemplate":{"type":"string"},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/Entitlement"}},"path":{"type":"string"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"},"attributes":{"$ref":"#/components/schemas/ProductAttributes"},"record_type":{"type":"string"},"lastSynced":{"type":"string","format":"date-time"},"synced":{"type":"boolean"},"syncedFrom":{"type":"string"}}},"Entitlement":{"type":"object","properties":{"$ref":{"type":"string"}}},"ProductAttributes":{"type":"object","properties":{"display_name__limio":{"type":"string"},"has_delivery__limio":{"type":"boolean"},"product_code__limio":{"type":"string"}}},"Price":{"type":"object","properties":{"summary":{"type":"object","properties":{"headline":{"type":"string"}}},"currency":{"type":"string"},"amount":{"type":"number"}}},"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"}}}}}},"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"}}},"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"}}}}}}
```

## The Customer object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Customer":{"type":"object","description":"A Limio customer object containing personal details and associated addresses.","properties":{"data":{"type":"object","description":"Core customer data fields.","properties":{"name":{"type":"string","description":"Full name of the customer."},"email":{"type":"string","description":"Customer email address."},"firstName":{"type":"string","description":"Customer first name."},"lastName":{"type":"string","description":"Customer last name."},"purchaseCountry":{"type":"string","description":"ISO country code of the customer's purchase country."},"trialist":{"type":"boolean","description":"Whether the customer is on a trial subscription."},"address":{"type":"array","description":"List of addresses associated with the customer.","items":{"$ref":"#/components/schemas/CustomerAddress"}}}},"status":{"type":"string","description":"Current customer status."},"record_type":{"type":"string","description":"Object type identifier. Always `customer` for this schema."},"owner":{"type":"string","description":"The identity ID that owns this customer record."},"id":{"type":"string","description":"Unique customer identifier, prefixed with `cus-`."},"service":{"type":"string","description":"The service this customer belongs to."},"created":{"type":"string","format":"date-time","description":"Timestamp when the customer record was created."},"updated":{"type":"string","format":"date-time","description":"Timestamp when the customer record was last modified."},"reference":{"type":"string","description":"External reference for the customer."},"mode":{"type":"string","description":"Deployment mode."}}},"CustomerAddress":{"type":"object","description":"Customer Address object","title":"Get Customer Address Response","properties":{"record_type":{"type":"string"},"id":{"type":"string"},"relationship_id":{"type":"string"},"data":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"country":{"type":"string"},"address2":{"type":"string"},"city":{"type":"string"},"address1":{"type":"string"},"postalCode":{"type":"string"},"company":{"type":"string"},"state":{"type":"string"},"email":{"type":"string","format":"email"}}},"related":{"type":"string"},"service":{"type":"string"},"start":{"type":"string","format":"date-time"},"relationship_type":{"type":"string"},"mode":{"type":"string"},"created":{"type":"string","format":"date-time"},"status":{"type":"string"},"owner":{"type":"string"},"customer":{"type":"string"},"updated":{"type":"string","format":"date-time"},"reference":{"type":"string"}}}}}}
```

## The TimelineField object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"TimelineField":{"type":"object","required":["label","type"],"properties":{"label":{"type":"string","description":"Field label to display in the Timeline UI"},"type":{"type":"string","description":"Type of field to render","enum":["string","date","currency","number","boolean","json"]},"value":{"description":"Field value as rendered by the Timeline. Null values hide the row.","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"additionalInfo":{"type":"string","description":"Optional metadata for formatting (e.g. currency code GBP, locale GB)"}}}}}}
```

## The CreateTimelineEvent object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"type":{"type":"string","description":"Domain/type of event"},"source":{"type":"string","description":"Source of the event e.g. system, user, 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.\n","items":{"$ref":"#/components/schemas/TimelineField"}}}},"SubscriptionByName":{"description":"Update subscription by name","properties":{"name":{"type":"string"}}},"SubscriptionById":{"description":"Update subscription by id","properties":{"id":{"type":"string"}}},"TimelineField":{"type":"object","required":["label","type"],"properties":{"label":{"type":"string","description":"Field label to display in the Timeline UI"},"type":{"type":"string","description":"Type of field to render","enum":["string","date","currency","number","boolean","json"]},"value":{"description":"Field value as rendered by the Timeline. Null values hide the row.","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"additionalInfo":{"type":"string","description":"Optional metadata for formatting (e.g. currency code GBP, locale GB)"}}}}}}
```

## The CreateTimelineEventResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CreateTimelineEventResponse":{"type":"object","required":["id","status","reference"],"properties":{"id":{"type":"string","description":"Limio event ID generated for the created event"},"reference":{"type":"string","description":"Limio event reference generated for the created event"},"status":{"type":"string","description":"Processing status of the event"}}}}}}
```

## The GetTimelineResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]}}}}
```

## The ElasticProduct object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ElasticProduct":{"type":"object","properties":{"id":{"type":"string","description":"Product id in the Elastic index"},"name":{"type":"string","description":"Name of product"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Product path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for product"},"baseTemplate":{"type":"string","description":"Template for product attributes"}}}}}}}}
```

## The ElasticOffer object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ElasticOffer":{"properties":{"id":{"type":"string","description":"Offer id in the Elastic index"},"name":{"type":"string","description":"Offer name"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Path to the offer"},"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"},"label":{"type":"string","description":"Label for charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"value":{"type":"string","description":"Value of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_trigger":{"type":"string","description":"Delay to charge trigger"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"}}}},"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"}},"tags":{"type":"array","description":"Tags attached to campaign","items":{"type":"string","description":"tag path"}},"status":{"type":"string","description":"Offer status"},"description":{"type":"string","description":"Offer description"},"validFrom":{"type":"string","description":"Date offer is valid from"},"validTo":{"type":"string","description":"Date offer is valid until"}}}}},"ElasticProduct":{"type":"object","properties":{"id":{"type":"string","description":"Product id in the Elastic index"},"name":{"type":"string","description":"Name of product"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Product path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for product"},"baseTemplate":{"type":"string","description":"Template for product attributes"}}}}}}}}
```

## The ElasticPage object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ElasticPage":{"type":"object","description":"A published page stored in the Limio catalog index.","properties":{"id":{"type":"string","description":"Page identifier within the catalog index."},"parent_path":{"type":"string","description":"Parent path for the page."},"path":{"type":"string","description":"Full path to the page."},"name":{"type":"string","description":"Human readable page name."},"type":{"type":"string","description":"Catalog record type."},"version":{"type":"string","description":"Version identifier for the page definition."},"attributes":{"type":"object","description":"Additional metadata stored with the page."},"data":{"type":"object","description":"Page configuration payload as stored in the catalog."}}}}}}
```

## The GetPagesResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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":"object","description":"Total number of pages that matched the query.","properties":{"value":{"type":"number","description":"The number of records found"},"relation":{"type":"string","description":"How value relates to the true total: eq (exact) or gte (lower bound)"}}},"queryMore":{"type":"object","description":"Cursor information for retrieving the next page of results.","properties":{"from":{"type":"string","description":"Cursor token for the next request."},"alias":{"type":"string","description":"Elastic alias used to continue the query."}}},"commitId":{"type":"string","description":"Commit identifier for the source index."},"buildId":{"type":"string","description":"Build identifier of the index queried."},"indexName":{"type":"string","description":"Name of the Elastic index queried."}}},"ElasticPage":{"type":"object","description":"A published page stored in the Limio catalog index.","properties":{"id":{"type":"string","description":"Page identifier within the catalog index."},"parent_path":{"type":"string","description":"Parent path for the page."},"path":{"type":"string","description":"Full path to the page."},"name":{"type":"string","description":"Human readable page name."},"type":{"type":"string","description":"Catalog record type."},"version":{"type":"string","description":"Version identifier for the page definition."},"attributes":{"type":"object","description":"Additional metadata stored with the page."},"data":{"type":"object","description":"Page configuration payload as stored in the catalog."}}}}}}
```

## The ElasticOfferV2 object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ElasticOfferV2":{"properties":{"id":{"type":"string","description":"Offer id in the Elastic index"},"name":{"type":"string","description":"Offer name"},"path":{"type":"string","description":"Path to the offer"},"created":{"type":"string","description":"Offer creation date"},"modified":{"type":"string","description":"Offer last modification date"},"version":{"type":"string","description":"Offer version"},"version_date":{"type":"string","description":"Offer version date"},"record_type":{"type":"string","description":"Record type"},"duplicatedFrom":{"type":"string","description":"Path of offer duplicated from"},"baseTemplate":{"type":"string","description":"Base template path"},"priceReference":{"type":"string","description":"Reference price path"},"user":{"type":"string","description":"User associated with offer"},"data":{"type":"object","description":"Data attached to offer","properties":{"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"checkout_description__limio":{"type":"string","description":"Checkout description"},"allowed_countries__limio":{"type":"array","description":"Allowed countries"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"},"external_url":{"type":"string"}}},"allow_multibuy__limio":{"type":"boolean","description":"Whether multiple purchases of this offer are allowed"},"label__limio":{"type":"array","description":"Labels"},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean","description":"Push to checkout"},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"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"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"upsell_offers__limio":{"type":"object","description":"Upsell offers to higher SaaS tiers","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"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"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"upsell_display_name__limio":{"type":"string","description":"Upsell display name"},"upsell_display_description__limio":{"type":"string","description":"Upsell display description"},"cross_sell_display_description__limio":{"type":"string","description":"Cross-sell display description"},"cross_sell_display_name__limio":{"type":"string","description":"Cross-sell display name"}}},"price":{"type":"array","description":"Prices of offer","items":{"type":"object","description":"Price item","properties":{"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"value":{"type":"string","description":"Value of charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"},"attributes":{"type":"array","items":{}},"subscription_start_day":{"type":"string","description":"When the subscription starts"}}}},"productBundles":{"type":"array","description":"Product bundles attached to offer","items":{"type":"object","properties":{"product_path":{"type":"string","description":"Path to product"},"revenue_split":{"type":"string","description":"Revenue split percentage"},"rate_plan":{"type":"string","description":"Rate plan"}}}},"products":{"type":"array","description":"Products attached to offer","items":{"type":"object","properties":{"baseTemplate":{"type":"string","description":"Base template path"},"path":{"type":"string","description":"Path to product"},"lastSynced":{"type":"string","description":"Last synced timestamp"},"synced":{"type":"boolean"},"created":{"type":"string","description":"Product creation date"},"syncedFrom":{"type":"string","description":"Synced from id"},"modified":{"type":"string","description":"Product last modification date"},"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"has_delivery__limio":{"type":"boolean","description":"Has delivery"},"product_code__limio":{"type":"string","description":"Product code"}}},"record_type":{"type":"string"}}}}}}}}}}}
```

## The GetOffersV2Response object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetOffersV2Response":{"type":"object","properties":{"hits":{"type":"object","description":"Amount of records found on the catalog in response to the query","properties":{"value":{"type":"number","description":"The number of records found"},"relation":{"type":"string","description":"How value relates to the true total: eq (exact) or gte (lower bound)"}}},"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"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"ElasticOfferV2":{"properties":{"id":{"type":"string","description":"Offer id in the Elastic index"},"name":{"type":"string","description":"Offer name"},"path":{"type":"string","description":"Path to the offer"},"created":{"type":"string","description":"Offer creation date"},"modified":{"type":"string","description":"Offer last modification date"},"version":{"type":"string","description":"Offer version"},"version_date":{"type":"string","description":"Offer version date"},"record_type":{"type":"string","description":"Record type"},"duplicatedFrom":{"type":"string","description":"Path of offer duplicated from"},"baseTemplate":{"type":"string","description":"Base template path"},"priceReference":{"type":"string","description":"Reference price path"},"user":{"type":"string","description":"User associated with offer"},"data":{"type":"object","description":"Data attached to offer","properties":{"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"checkout_description__limio":{"type":"string","description":"Checkout description"},"allowed_countries__limio":{"type":"array","description":"Allowed countries"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"},"external_url":{"type":"string"}}},"allow_multibuy__limio":{"type":"boolean","description":"Whether multiple purchases of this offer are allowed"},"label__limio":{"type":"array","description":"Labels"},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean","description":"Push to checkout"},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"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"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"upsell_offers__limio":{"type":"object","description":"Upsell offers to higher SaaS tiers","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"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"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"upsell_display_name__limio":{"type":"string","description":"Upsell display name"},"upsell_display_description__limio":{"type":"string","description":"Upsell display description"},"cross_sell_display_description__limio":{"type":"string","description":"Cross-sell display description"},"cross_sell_display_name__limio":{"type":"string","description":"Cross-sell display name"}}},"price":{"type":"array","description":"Prices of offer","items":{"type":"object","description":"Price item","properties":{"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"value":{"type":"string","description":"Value of charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"},"attributes":{"type":"array","items":{}},"subscription_start_day":{"type":"string","description":"When the subscription starts"}}}},"productBundles":{"type":"array","description":"Product bundles attached to offer","items":{"type":"object","properties":{"product_path":{"type":"string","description":"Path to product"},"revenue_split":{"type":"string","description":"Revenue split percentage"},"rate_plan":{"type":"string","description":"Rate plan"}}}},"products":{"type":"array","description":"Products attached to offer","items":{"type":"object","properties":{"baseTemplate":{"type":"string","description":"Base template path"},"path":{"type":"string","description":"Path to product"},"lastSynced":{"type":"string","description":"Last synced timestamp"},"synced":{"type":"boolean"},"created":{"type":"string","description":"Product creation date"},"syncedFrom":{"type":"string","description":"Synced from id"},"modified":{"type":"string","description":"Product last modification date"},"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"has_delivery__limio":{"type":"boolean","description":"Has delivery"},"product_code__limio":{"type":"string","description":"Product code"}}},"record_type":{"type":"string"}}}}}}}}}}}
```

## The ElasticAddOn object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ElasticAddOn":{"properties":{"id":{"type":"string","description":"Add On id in the Elastic index"},"name":{"type":"string","description":"Add On name"},"path":{"type":"string","description":"Path to the Add On"},"created":{"type":"string","description":"Add On creation date"},"modified":{"type":"string","description":"Add On last modification date"},"version":{"type":"string","description":"Add On version"},"version_date":{"type":"string","description":"Add On version date"},"record_type":{"type":"string","description":"Record type"},"duplicatedFrom":{"type":"string","description":"Path of Add On duplicated from"},"baseTemplate":{"type":"string","description":"Base template path"},"user":{"type":"string","description":"User associated with Add On"},"data":{"type":"object","description":"Data attached to Add On","properties":{"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"label__limio":{"type":"array","description":"Labels"}}},"price":{"type":"array","description":"Prices of Add On","items":{"type":"object","description":"Price item","properties":{"attributes":{"type":"object"},"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"value":{"type":"string","description":"Value of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"}}}},"productBundles":{"type":"array","description":"Product bundles attached to Add On","items":{"type":"object","properties":{"product_path":{"type":"string","description":"Path to product"},"revenue_split":{"type":"string","description":"Revenue split percentage"},"rate_plan":{"type":"string","description":"Rate plan"}}}},"products":{"type":"array","description":"Products attached to Add On","items":{"type":"object","properties":{"baseTemplate":{"type":"string","description":"Base template path"},"path":{"type":"string","description":"Path to product"},"lastSynced":{"type":"string","description":"Last synced timestamp"},"synced":{"type":"boolean"},"created":{"type":"string","description":"Product creation date"},"syncedFrom":{"type":"string","description":"Synced from id"},"modified":{"type":"string","description":"Product last modification date"},"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"has_delivery__limio":{"type":"boolean","description":"Has delivery"},"product_code__limio":{"type":"string","description":"Product code"}}},"record_type":{"type":"string"}}}}}}}}}}}
```

## The GetProductsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetProductsResponse":{"type":"object","properties":{"hits":{"type":"object","description":"Amount of records found on the catalog responding the query","properties":{"value":{"type":"number","description":"The number of records found"},"relation":{"type":"string","description":"How value relates to the true total: eq (exact) or gte (lower bound)"}}},"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"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"ElasticProduct":{"type":"object","properties":{"id":{"type":"string","description":"Product id in the Elastic index"},"name":{"type":"string","description":"Name of product"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Product path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for product"},"baseTemplate":{"type":"string","description":"Template for product attributes"}}}}}}}}
```

## The ElasticSegment object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ElasticSegment":{"type":"object","properties":{"id":{"type":"string","description":"Segment id in the Elastic index"},"name":{"type":"string","description":"Name of segment"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Segment path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for segment"},"baseTemplate":{"type":"string","description":"Template for segment attributes"}}}}}}}}
```

## The GetSegmentsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"GetSegmentsResponse":{"type":"object","properties":{"hits":{"type":"object","description":"Amount of records found on the catalog responding the query","properties":{"value":{"type":"number","description":"The number of records found"},"relation":{"type":"string","description":"How value relates to the true total: eq (exact) or gte (lower bound)"}}},"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"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"ElasticSegment":{"type":"object","properties":{"id":{"type":"string","description":"Segment id in the Elastic index"},"name":{"type":"string","description":"Name of segment"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Segment path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for segment"},"baseTemplate":{"type":"string","description":"Template for segment attributes"}}}}}}}}
```

## The BulkUpdateCatalogItemResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"BulkUpdateCatalogItemResponse":{"type":"object","properties":{"success":{"type":"boolean"},"failed":{"type":"array","items":{"type":"string"}}}}}}}
```

## The OfferPrice object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"OfferPrice":{"type":"object","description":"One charge of an offer. `price__limio` holds an array of charges, and a subscription to the offer pays every charge in the array. The family types `price__limio` only as `price`, and the platform does not check the shape inside it. A wrong shape is stored as sent.\n\n`type` selects the charge. `recurring` bills `value` on each interval. `onetime` bills `value` one time. `recurringVolume` bills by quantity, from `tiers`. `usagePerUnit` bills `value` for each unit that the customer uses.\n\nA trial is two charges. The first charge bills the trial price with `repeat_count` set to the trial length. The second charge bills the full price, with `delay_interval` and `delay_interval_type` set to the same length, so that it starts when the trial ends.","properties":{"name":{"type":"string","description":"The identifier of the charge, unique in the array. The admin app writes `charge_1`, `charge_2` and so on."},"label":{"type":"string"},"type":{"type":"string","enum":["recurring","onetime","recurringVolume","usagePerUnit"]},"currencyCode":{"type":"string","description":"The ISO 4217 code of the currency."},"value":{"type":"string","description":"The amount, as a string. Every type has it except `recurringVolume`, which uses `tiers`."},"trigger":{"type":"string","description":"When the charge starts. `subscription_start` is the start date of the subscription. `order_date` is the date of the order. `delay` starts the charge after `delay_interval`.","enum":["subscription_start","order_date","delay"]},"delay_interval":{"type":"integer","description":"The length of the delay before the first bill of this charge."},"delay_interval_type":{"type":"string","enum":["days","weeks","months","years"]},"repeat_interval":{"type":"integer","description":"The billing period of a recurring charge, or the term length of a termed `onetime` charge."},"repeat_interval_type":{"type":"string","enum":["days","weeks","months","years"]},"repeat_count":{"type":"integer","description":"The number of periods that the charge bills. Leave it out, or send 0, to bill until the subscription ends."},"term_setting":{"type":"string","description":"Only for `onetime`. `termed` gives access for `repeat_count` terms of `repeat_interval`. `evergreen` has no end date. `line_item` is a purchase that gives no access period.","enum":["termed","evergreen","line_item"]},"tiers":{"type":"array","description":"Only for `recurringVolume`. The tiers must cover the units from 1 without a gap. Leave out `ending_unit` on the last tier.","items":{"type":"object","properties":{"starting_unit":{"type":"integer"},"ending_unit":{"type":"integer"},"price":{"type":"string"},"price_format":{"type":"string","description":"`PerUnit` bills `price` for each unit. `FlatFee` bills `price` one time for the tier.","enum":["PerUnit","FlatFee"]}},"required":["starting_unit","price","price_format"]}},"use_external_price":{"type":"boolean","description":"When true, the billing system prices the charge, and `value` is shown only."}},"required":["name","type","currencyCode"]}}}}
```

## The CatalogItemInput object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CatalogItemInput":{"type":"object","description":"The content of the item. The platform stores it as you send it, after it validates the attributes.\n\n`id` and `version` are not settable. The platform derives both on every read, and it ignores values that you send under those names.","properties":{"name":{"type":"string","description":"The display name. Make it the same as the last segment of the path."},"record_type":{"type":"string","description":"The record type of the item.","enum":["add_on","discount","family","offer","page","product","segment","template"]},"baseTemplate":{"type":"string","description":"The path of the template that the item is built from. It is required when the body has `attributes`."},"attributes":{"type":"object","additionalProperties":true,"description":"The attribute values, keyed by the full attribute name including the `__limio` suffix. The platform checks each one against the type that the family gives it: a picklist against its options, and a string, number, boolean, array or object against that type. It does not check the shape inside an object, so a wrong shape there is stored as sent. It fills in the attributes that the family gives a default and you leave out.\n\nRead the template family first to learn which attributes exist and which values they accept. `GET /limio/catalogs/1/items/config/templates/offers` returns the offers family; the families are `offers`, `products`, `add_ons`, `pages`, `segments` and `discounts`.","properties":{"price__limio":{"type":"array","description":"The charges of an offer. The family does not give the shape of a charge, so read `OfferPrice` for it.","items":{"$ref":"#/components/schemas/OfferPrice"}}}},"products":{"type":"array","description":"The catalog paths of the products that an offer sells, for example `/products/Digital`. Send paths only: a read answers with each product expanded, but a write takes the path. An offer with no product sells nothing.","items":{"type":"string"}},"productBundles":{"type":"array","description":"The rate plan of each product in `products`, and its share of the price. Send one entry per product.","items":{"type":"object","properties":{"product_path":{"type":"string"},"rate_plan":{"type":"string"},"revenue_split":{"type":"string","description":"The share of the price, in percent."}}}}},"required":["record_type"]},"OfferPrice":{"type":"object","description":"One charge of an offer. `price__limio` holds an array of charges, and a subscription to the offer pays every charge in the array. The family types `price__limio` only as `price`, and the platform does not check the shape inside it. A wrong shape is stored as sent.\n\n`type` selects the charge. `recurring` bills `value` on each interval. `onetime` bills `value` one time. `recurringVolume` bills by quantity, from `tiers`. `usagePerUnit` bills `value` for each unit that the customer uses.\n\nA trial is two charges. The first charge bills the trial price with `repeat_count` set to the trial length. The second charge bills the full price, with `delay_interval` and `delay_interval_type` set to the same length, so that it starts when the trial ends.","properties":{"name":{"type":"string","description":"The identifier of the charge, unique in the array. The admin app writes `charge_1`, `charge_2` and so on."},"label":{"type":"string"},"type":{"type":"string","enum":["recurring","onetime","recurringVolume","usagePerUnit"]},"currencyCode":{"type":"string","description":"The ISO 4217 code of the currency."},"value":{"type":"string","description":"The amount, as a string. Every type has it except `recurringVolume`, which uses `tiers`."},"trigger":{"type":"string","description":"When the charge starts. `subscription_start` is the start date of the subscription. `order_date` is the date of the order. `delay` starts the charge after `delay_interval`.","enum":["subscription_start","order_date","delay"]},"delay_interval":{"type":"integer","description":"The length of the delay before the first bill of this charge."},"delay_interval_type":{"type":"string","enum":["days","weeks","months","years"]},"repeat_interval":{"type":"integer","description":"The billing period of a recurring charge, or the term length of a termed `onetime` charge."},"repeat_interval_type":{"type":"string","enum":["days","weeks","months","years"]},"repeat_count":{"type":"integer","description":"The number of periods that the charge bills. Leave it out, or send 0, to bill until the subscription ends."},"term_setting":{"type":"string","description":"Only for `onetime`. `termed` gives access for `repeat_count` terms of `repeat_interval`. `evergreen` has no end date. `line_item` is a purchase that gives no access period.","enum":["termed","evergreen","line_item"]},"tiers":{"type":"array","description":"Only for `recurringVolume`. The tiers must cover the units from 1 without a gap. Leave out `ending_unit` on the last tier.","items":{"type":"object","properties":{"starting_unit":{"type":"integer"},"ending_unit":{"type":"integer"},"price":{"type":"string"},"price_format":{"type":"string","description":"`PerUnit` bills `price` for each unit. `FlatFee` bills `price` one time for the tier.","enum":["PerUnit","FlatFee"]}},"required":["starting_unit","price","price_format"]}},"use_external_price":{"type":"boolean","description":"When true, the billing system prices the charge, and `value` is shown only."}},"required":["name","type","currencyCode"]}}}}
```

## The CatalogItem object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CatalogItem":{"type":"object","description":"An item, in the shape that a read returns.","properties":{"path":{"type":"string","description":"The full catalog path of the item, with a leading slash."},"name":{"type":"string"},"type":{"type":"string","description":"`item` for an item, `dir` for a tree node that holds other items.","enum":["item","dir"]},"id":{"type":"string","description":"A hash of the content of the item. The platform computes it on every read, so it changes when the item changes. It is not settable."},"version":{"type":"string","description":"The content version. The platform derives it. It is not settable."},"data":{"$ref":"#/components/schemas/CatalogItemInput"},"tree":{"type":"array","description":"The items below this path. It is empty when the item has no children.","items":{"type":"object"}}}},"CatalogItemInput":{"type":"object","description":"The content of the item. The platform stores it as you send it, after it validates the attributes.\n\n`id` and `version` are not settable. The platform derives both on every read, and it ignores values that you send under those names.","properties":{"name":{"type":"string","description":"The display name. Make it the same as the last segment of the path."},"record_type":{"type":"string","description":"The record type of the item.","enum":["add_on","discount","family","offer","page","product","segment","template"]},"baseTemplate":{"type":"string","description":"The path of the template that the item is built from. It is required when the body has `attributes`."},"attributes":{"type":"object","additionalProperties":true,"description":"The attribute values, keyed by the full attribute name including the `__limio` suffix. The platform checks each one against the type that the family gives it: a picklist against its options, and a string, number, boolean, array or object against that type. It does not check the shape inside an object, so a wrong shape there is stored as sent. It fills in the attributes that the family gives a default and you leave out.\n\nRead the template family first to learn which attributes exist and which values they accept. `GET /limio/catalogs/1/items/config/templates/offers` returns the offers family; the families are `offers`, `products`, `add_ons`, `pages`, `segments` and `discounts`.","properties":{"price__limio":{"type":"array","description":"The charges of an offer. The family does not give the shape of a charge, so read `OfferPrice` for it.","items":{"$ref":"#/components/schemas/OfferPrice"}}}},"products":{"type":"array","description":"The catalog paths of the products that an offer sells, for example `/products/Digital`. Send paths only: a read answers with each product expanded, but a write takes the path. An offer with no product sells nothing.","items":{"type":"string"}},"productBundles":{"type":"array","description":"The rate plan of each product in `products`, and its share of the price. Send one entry per product.","items":{"type":"object","properties":{"product_path":{"type":"string"},"rate_plan":{"type":"string"},"revenue_split":{"type":"string","description":"The share of the price, in percent."}}}}},"required":["record_type"]},"OfferPrice":{"type":"object","description":"One charge of an offer. `price__limio` holds an array of charges, and a subscription to the offer pays every charge in the array. The family types `price__limio` only as `price`, and the platform does not check the shape inside it. A wrong shape is stored as sent.\n\n`type` selects the charge. `recurring` bills `value` on each interval. `onetime` bills `value` one time. `recurringVolume` bills by quantity, from `tiers`. `usagePerUnit` bills `value` for each unit that the customer uses.\n\nA trial is two charges. The first charge bills the trial price with `repeat_count` set to the trial length. The second charge bills the full price, with `delay_interval` and `delay_interval_type` set to the same length, so that it starts when the trial ends.","properties":{"name":{"type":"string","description":"The identifier of the charge, unique in the array. The admin app writes `charge_1`, `charge_2` and so on."},"label":{"type":"string"},"type":{"type":"string","enum":["recurring","onetime","recurringVolume","usagePerUnit"]},"currencyCode":{"type":"string","description":"The ISO 4217 code of the currency."},"value":{"type":"string","description":"The amount, as a string. Every type has it except `recurringVolume`, which uses `tiers`."},"trigger":{"type":"string","description":"When the charge starts. `subscription_start` is the start date of the subscription. `order_date` is the date of the order. `delay` starts the charge after `delay_interval`.","enum":["subscription_start","order_date","delay"]},"delay_interval":{"type":"integer","description":"The length of the delay before the first bill of this charge."},"delay_interval_type":{"type":"string","enum":["days","weeks","months","years"]},"repeat_interval":{"type":"integer","description":"The billing period of a recurring charge, or the term length of a termed `onetime` charge."},"repeat_interval_type":{"type":"string","enum":["days","weeks","months","years"]},"repeat_count":{"type":"integer","description":"The number of periods that the charge bills. Leave it out, or send 0, to bill until the subscription ends."},"term_setting":{"type":"string","description":"Only for `onetime`. `termed` gives access for `repeat_count` terms of `repeat_interval`. `evergreen` has no end date. `line_item` is a purchase that gives no access period.","enum":["termed","evergreen","line_item"]},"tiers":{"type":"array","description":"Only for `recurringVolume`. The tiers must cover the units from 1 without a gap. Leave out `ending_unit` on the last tier.","items":{"type":"object","properties":{"starting_unit":{"type":"integer"},"ending_unit":{"type":"integer"},"price":{"type":"string"},"price_format":{"type":"string","description":"`PerUnit` bills `price` for each unit. `FlatFee` bills `price` one time for the tier.","enum":["PerUnit","FlatFee"]}},"required":["starting_unit","price","price_format"]}},"use_external_price":{"type":"boolean","description":"When true, the billing system prices the charge, and `value` is shown only."}},"required":["name","type","currencyCode"]}}}}
```

## The CatalogError object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CatalogError":{"type":"object","description":"The error contract of the catalog management endpoints. `error.code` names the reason, so automation can branch on it without reading the message.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"`NO_TEMPLATE` — the body has attributes but no `baseTemplate`, or the `baseTemplate` path does not exist. `INVALID_ATTRIBUTE_SCHEMA` — an attribute value does not agree with its definition in the template family. The message names the attribute and the rule that failed. `NO_RECORD_TYPE` — the path and the body together do not settle a record type. Send `record_type`. `EXISTING` — an item is already at this path. `NOTFOUND` — there is no item at this path."},"message":{"type":"string","description":"The reason in plain text."}}}}}}}}
```

## The CatalogChangeVector object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CatalogChangeVector":{"type":"object","description":"One change to apply to the item. The endpoint reads the item, applies every change vector in order, then writes the result. A field that no change vector names keeps its value.","properties":{"path":{"type":"array","description":"Where to apply the change, as a list of steps from the root of the item. The content of the item is under `data`, so an attribute change starts with `\"data\"`.\n\nA string step reads a field. A number step reads an array index. An object step selects one element of an array by its `name` field, for example `{ \"name\": \"monthly\" }`. No other key matches. Use an object step only as the last step. After it, a further step reads the first element of the array, not the selected one.","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"value":{"description":"The new value at `path`. It replaces what is there, so send the complete object when `path` names an object. To change one attribute, read the item first and send the merged attributes."}},"required":["path","value"]}}}}
```

## The CatalogJob object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"CatalogJob":{"type":"object","description":"A job, in the shape that a read returns.","properties":{"id":{"type":"string","description":"The id that the queue answered with."},"name":{"type":"string","description":"The job type, as it was queued."},"state":{"type":"string","description":"Where the job is. `waiting` and `delayed` mean it has not started, `active` means it is running, and `completed` and `failed` are final. `unknown` means the record does not settle a state.","enum":["waiting","delayed","active","paused","stuck","completed","failed","unknown"]},"progress":{"type":"number","description":"How far the job has run, as a percentage, when the job type reports it. Reads of a single job carry it; the list does not."},"message":{"type":"object","description":"A sentence for a person, written when the job finishes.","properties":{"notificationType":{"type":"string"},"message":{"type":"string"}}},"returnValue":{"type":"object","additionalProperties":true,"description":"What the job produced. An export puts the name of its file here, which is the name to ask for at `GET /limio/jobs/{id}/file/{filename}`."},"failedReason":{"type":"string","description":"Why the job failed. Only a read of a single job carries it: the reason can be long, so the list leaves it out."},"username":{"type":"string","description":"Who queued the job."},"data":{"type":"object","additionalProperties":true,"description":"The body that queued the job."},"processedOn":{"type":"number","description":"When the job started, in milliseconds since the epoch."},"timestamp":{"type":"number","description":"When the job was queued, in milliseconds since the epoch."}}}}}}
```

## The getJourneysV2Response object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"getJourneysV2Response":{"type":"object","properties":{"items":{"type":"array","description":"The published journey group objects","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the journey record"},"record_type":{"type":"string","description":"The type of record"},"status":{"type":"string","description":"The status of the journey record"},"data":{"type":"object","description":"The journey group data","properties":{"starting_point":{"type":"string","description":"The starting point of the journey"},"fallback_tag":{"type":"string","description":"The fallback tag for the journey"},"version_date":{"type":"string","description":"Timestamp of the journey group version"},"journeys":{"type":"array","description":"The list of journeys","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the journey"},"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"},"type":{"type":"string","description":"The type of the condition","enum":["country","region","city","authentication","segment","subscriptionStatus","subscriptionOfferLabel","cloudfrontDevice","queryString","jwt","cookie"]},"value":{"type":"string","description":"The value of the condition"}}}},"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"},"type":{"type":"string","description":"The type of the action"},"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"},"tag":{"type":"string","description":"The tag associated with the value"},"split":{"type":"string","description":"The split percentage for the value"}}}}}}}}}}}}}}},"queryMore":{"type":["string","null"],"description":"Pagination token. Pass it as the `queryMore` query parameter to fetch the next page. Null or absent when there are no more pages."}}}}}}
```

## The getJourneyByNameV2Response object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"getJourneyByNameV2Response":{"type":"object","properties":{"data":{"type":"object","properties":{"version_date":{"type":"string","format":"date-time","description":"The version timestamp of the journey"},"journeys":{"type":"array","description":"A list of journeys","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the journey"},"conditions":{"type":"array","description":"The list of conditions for the journey","items":{"type":"object"}},"actions":{"type":"array","description":"The list of actions for the journey","items":{"type":"object"}}}}},"starting_point":{"type":"string","description":"The starting point of the journey"}}},"status":{"type":"string","description":"The status of the journey record"},"record_type":{"type":"string","description":"The type of record"},"id":{"type":"string","description":"The unique ID of the journey record"},"service":{"type":"string","description":"The service the journey belongs to"},"created":{"type":"string","format":"date-time","description":"Timestamp when the record was created"},"updated":{"type":"string","format":"date-time","description":"Timestamp when the record was last updated"},"mode":{"type":"string","description":"The environment or mode the journey is in"},"process_hash":{"type":"string","description":"The hash used for processing the journey"},"version":{"type":"string","description":"The version hash of the journey"}}}}}}
```

## The PutJourneysV2Request object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PutJourneysV2Request":{"type":"object","required":["name","data"],"properties":{"name":{"type":"string","description":"Name of the journey."},"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."},"conditions":{"type":"array","description":"List of conditions to be evaluated for the journey.","items":{"type":"object","properties":{"id":{"type":"string","description":"Condition identifier."},"type":{"type":"string","description":"Condition type, such as \"country\"."},"value":{"type":"array","description":"Condition values.","items":{"type":"string"}}}}},"actions":{"type":"array","description":"List of actions to be executed for the journey.","items":{"type":"object","properties":{"id":{"type":"string","description":"Action identifier."},"type":{"type":"string","description":"Action type, such as \"destination\"."},"values":{"type":"array","description":"List of action values.","items":{"type":"object","properties":{"id":{"type":"string","description":"Action value identifier."},"tag":{"type":"string","description":"Action value tag, such as \"/\"."},"split":{"type":"string","description":"Action value split."}}}}}}}}}},"starting_point":{"type":"string","description":"Optional starting point of the journey."},"fallback_tag":{"type":"string","description":"Optional fallback tag."},"domains":{"type":"array","description":"Optional list of domains related to the journey.","items":{"type":"string"}}}}}}}}}
```

## The PutJourneysV2Response object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PutJourneysV2Response":{"type":"object","description":"The newly created version of the journey record. The API stores every update as a new version and returns the full versioned record, not an echo of the request body.","properties":{"id":{"type":"string","description":"The unique ID of the journey record, derived from the journey name."},"record_type":{"type":"string","description":"The type of record."},"service":{"type":"string","description":"The service the journey belongs to."},"status":{"type":"string","description":"The status of the journey record."},"name":{"type":"string","description":"The starting point submitted in the request body, not the journey name from the path."},"data":{"type":"object","description":"The journey data that was stored for this version.","properties":{"id":{"type":"string","description":"The unique ID of the journey record."},"journeys":{"type":"array","description":"The list of journeys that was submitted.","items":{"type":"object"}},"starting_point":{"type":"string","description":"The starting point of the journey."},"fallback_tag":{"type":"string","description":"The fallback tag of the journey."},"domains":{"type":"array","description":"The list of domains related to the journey.","items":{"type":"string"}}}},"mode":{"type":"string","description":"The environment or mode the journey is in."},"created":{"type":"string","format":"date-time","description":"Timestamp when this version was created."},"updated":{"type":"string","format":"date-time","description":"Timestamp when this version was last updated."},"version":{"type":"string","description":"The identifier of this version of the journey."}}}}}}
```

## The BuildShopResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"BuildShopResponse":{"type":"object","properties":{"buildPaths":{"type":"array","description":"The list of campaigns and pages built"},"id":{"type":"string","description":"The unique identifier of the build"},"success":{"type":"boolean","description":"Indicates if the build has been completed"}}}}}}
```

## The RepositoryComponentBuildsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"RepositoryComponentBuildsResponse":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the build","items":{"type":"string"}},"buildNumber":{"type":"string","description":"The build number of the build"},"commitId":{"type":"string","description":"The commit id which triggered the build"},"startTime":{"type":"string","description":"Indicates the time the build started"},"endTime":{"type":"string","description":"Indicates the time the build ended"},"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"},"logErrors":{"type":"array","description":"Any error messages that occurred during the build, which may prevent the shop from building successfully"},"components":{"type":"array","description":"The result of each component in the build, from the build's test report. The error field carries the component's build or install failure message. Reports expire 30 days after the build, so older builds do not include this field.","items":{"type":"object","properties":{"name":{"type":"string","description":"The component's directory name in the component repository"},"status":{"type":"string","description":"The result of this component's build","enum":["SUCCEEDED","FAILED"]},"durationMs":{"type":"number","description":"The component's build time in milliseconds"},"error":{"type":"string","description":"The build or install failure message. Only present when the component failed."}}}}}}}}}
```

## The PublishCampaignResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"PublishCampaignResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the operation was successful"},"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"},"isDefault":{"type":"boolean","description":"Indicates whether the page is the default page"},"pathPrefix":{"type":"string","description":"The path prefix of the published page"},"type":{"type":"string","description":"The type of the published item"},"codebuildId":{"type":"string","description":"The codebuild ID associated with the published page"},"buildDate":{"type":"string","format":"date-time","description":"The build date of the published page"},"name":{"type":"string","description":"The name of the published page"},"publishedDate":{"type":"string","format":"date-time","description":"The date and time when the page was published"},"userName":{"type":"string","description":"The username of the user who published the page"}}}}}}},"ommitedWithError":{"type":"object","description":"Contains information about omitted items with errors","properties":{"pages":{"type":"object","description":"Contains information about omitted pages with errors"}}}}}}}}
```

## The UserSessionEntitlementsResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"]},"from":{"type":"string","description":"The name of the subscription that granted the entitlement"}}}}}}}}}
```

## The SyncZuoraDataResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"SyncZuoraDataResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates if the sync has been completed"},"id":{"description":"The id of the subscription created in Limio","type":"string"},"owner":{"description":"The id of the owner identity of the subscription created in Limio","type":"string"}}}}}}
```

## The PartnerOrganisation object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"zuoraInvoiceOwner":{"type":"string","enum":["partner","end_customer"],"description":"Which party owns Zuora invoices for this organisation"},"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"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"}}}}}}
```

## The PartnerUser object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"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"},"created":{"type":"string","format":"date-time"},"modified":{"type":"string","format":"date-time"}}}}}}
```

## The AgentTheme object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentTheme":{"type":"object","description":"The brand colours of the chat widget. Each colour is a 6-digit hex value. A colour that you do not set comes from the design system.","additionalProperties":false,"properties":{"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"userBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"agentBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"headerColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"launcherColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"backgroundColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"textColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"borderColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"bubbleStyle":{"type":"string","enum":["rounded","tailed","flat","outlined","shadowed","bordered","minimal","gradient"]}}}}}}
```

## The AgentPresentation object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentPresentation":{"type":"object","description":"How the agent shows itself in the chat widget.","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":256,"description":"The header title."},"placeholder":{"type":"string","maxLength":256,"description":"The placeholder text of the message box."},"greeting":{"type":"string","description":"The first message of a new conversation."},"pointers":{"type":"array","maxItems":4,"description":"Suggested first questions that the widget shows.","items":{"type":"string","maxLength":512}},"footer":{"type":"string","maxLength":1024,"description":"Markdown text under the message box."},"launcherIcon":{"type":"string","maxLength":2048,"pattern":"^/public/\\S+$","description":"An uploaded asset path that starts with `/public/`. The API rejects an external URL and a path that goes out of `/public/`."},"launcherLabel":{"type":"string","maxLength":40},"greetingPopup":{"type":"boolean","description":"Show the greeting next to the closed launcher after a delay."},"greetingPopupDelay":{"type":"number","exclusiveMinimum":0,"maximum":3600,"description":"The delay, in seconds."},"greetingPopupMessage":{"type":"string","maxLength":512,"description":"A message for the popup that replaces the greeting."},"theme":{"$ref":"#/components/schemas/AgentTheme"}}},"AgentTheme":{"type":"object","description":"The brand colours of the chat widget. Each colour is a 6-digit hex value. A colour that you do not set comes from the design system.","additionalProperties":false,"properties":{"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"userBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"agentBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"headerColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"launcherColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"backgroundColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"textColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"borderColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"bubbleStyle":{"type":"string","enum":["rounded","tailed","flat","outlined","shadowed","bordered","minimal","gradient"]}}}}}}
```

## The AgentToolsetEntry object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentToolsetEntry":{"type":"object","description":"A capability that the agent can use. The value of `name` is a toolset or a single tool.\n\nToolsets that need no setup: `offers` (fetch offers and create a checkout; set `config.label` to an offer label), `orders` (read what the shopper bought), `page_studio` (the page builder assistant), `documents` (ask the shopper to upload documents) and `outcomes`.\n\nToolsets that need `toolsetId`: `knowledge`, `mcp`, `integration` and `managed_agent`. Get the ID from `GET /chat/v1/admin/toolsets`. For knowledge, use the ID of a toolset of type `knowledge`.\n\nSingle tools: `fetch_offers`, `create_checkout`, `build_checkout_link` (only for offers with an external checkout URL) and `get_order_items`. Add a single tool as an entry named after the tool.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64,"enum":["offers","orders","page_studio","documents","outcomes","knowledge","mcp","integration","managed_agent","fetch_offers","create_checkout","build_checkout_link","get_order_items"]},"toolsetId":{"type":"string","maxLength":128,"description":"The ID of a toolset from the toolsets list."},"config":{"type":"object","description":"Settings for this entry. Each toolset or tool reads its own keys.","additionalProperties":true}}}}}}
```

## The AgentToolEntry object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentToolEntry":{"type":"object","description":"A single tool. Prefer an entry in `toolsets` named after the tool. This list is kept for older agents.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64},"config":{"type":"object","additionalProperties":true}}}}}}
```

## The AgentToolInput object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The AgentOutcomeTool object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentOutcomeTool":{"type":"object","description":"A tool that runs when the agent reaches the outcome. Set `id` to the same value as `tool`: the API rejects an instance that has a different id. Use each tool once on an outcome.","additionalProperties":false,"required":["id","tool"],"properties":{"id":{"type":"string","maxLength":64,"description":"Must be the same as `tool`."},"tool":{"type":"string","maxLength":64,"enum":["fetch_offers","create_checkout","build_checkout_link","get_order_items","data_capture"],"description":"The tool to run. `fetch_offers` takes `config.label` (an offer label). `create_checkout` takes `config.checkoutPath`, a path on the site such as `/checkout`; blank uses the page set on the offer. `data_capture` takes `config.inputs`, the fields to capture. `build_checkout_link` and `get_order_items` take no settings."},"displayName":{"type":"string","maxLength":128},"config":{"type":"object","description":"The settings of the tool. Each tool reads its own keys. `inputs` has a fixed shape for every tool.","additionalProperties":true,"properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolInput"}}}}}},"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The AgentOutcome object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentOutcome":{"type":"object","description":"A result that the agent works towards, such as a lead captured or a checkout started. The model selects the outcome when the conversation meets `criteria`. Selecting an outcome does not end the conversation.","additionalProperties":false,"required":["id","label","criteria"],"properties":{"id":{"type":"string","maxLength":64},"label":{"type":"string","maxLength":128},"description":{"type":"string","maxLength":256},"tag":{"type":"string","maxLength":64},"style":{"type":"object","additionalProperties":false,"properties":{"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"criteria":{"type":"string","maxLength":2000,"description":"When the conversation has reached this outcome, in words for the model."},"whatToDo":{"type":"string","maxLength":5000,"description":"What the model must do when it reaches this outcome."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcomeTool"}}}},"AgentOutcomeTool":{"type":"object","description":"A tool that runs when the agent reaches the outcome. Set `id` to the same value as `tool`: the API rejects an instance that has a different id. Use each tool once on an outcome.","additionalProperties":false,"required":["id","tool"],"properties":{"id":{"type":"string","maxLength":64,"description":"Must be the same as `tool`."},"tool":{"type":"string","maxLength":64,"enum":["fetch_offers","create_checkout","build_checkout_link","get_order_items","data_capture"],"description":"The tool to run. `fetch_offers` takes `config.label` (an offer label). `create_checkout` takes `config.checkoutPath`, a path on the site such as `/checkout`; blank uses the page set on the offer. `data_capture` takes `config.inputs`, the fields to capture. `build_checkout_link` and `get_order_items` take no settings."},"displayName":{"type":"string","maxLength":128},"config":{"type":"object","description":"The settings of the tool. Each tool reads its own keys. `inputs` has a fixed shape for every tool.","additionalProperties":true,"properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolInput"}}}}}},"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The AgentData object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentData":{"type":"object","description":"The configuration of an agent. The API rejects a key that this schema does not list, including old keys such as `model`.","additionalProperties":false,"required":["systemPrompt"],"properties":{"description":{"type":"string"},"systemPrompt":{"type":"string","description":"The instructions of the agent. The platform adds its own rules around this text."},"presentation":{"$ref":"#/components/schemas/AgentPresentation"},"enabled":{"type":"boolean"},"toolsets":{"type":"array","description":"The capabilities of the agent. When this list is present, it is the full set: an empty list turns all tools off.","items":{"$ref":"#/components/schemas/AgentToolsetEntry"}},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolEntry"}},"outcomes":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcome"}},"maxOutputTokens":{"type":"integer","minimum":1,"maximum":64000,"description":"The most tokens in one reply. The default is 4096."},"maxSteps":{"type":"integer","minimum":1,"maximum":20,"description":"The most model and tool steps in one reply. The default is 8."},"streaming":{"type":"boolean","description":"Send the reply to the shopper as it is written."},"narrate":{"type":"boolean"}}},"AgentPresentation":{"type":"object","description":"How the agent shows itself in the chat widget.","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":256,"description":"The header title."},"placeholder":{"type":"string","maxLength":256,"description":"The placeholder text of the message box."},"greeting":{"type":"string","description":"The first message of a new conversation."},"pointers":{"type":"array","maxItems":4,"description":"Suggested first questions that the widget shows.","items":{"type":"string","maxLength":512}},"footer":{"type":"string","maxLength":1024,"description":"Markdown text under the message box."},"launcherIcon":{"type":"string","maxLength":2048,"pattern":"^/public/\\S+$","description":"An uploaded asset path that starts with `/public/`. The API rejects an external URL and a path that goes out of `/public/`."},"launcherLabel":{"type":"string","maxLength":40},"greetingPopup":{"type":"boolean","description":"Show the greeting next to the closed launcher after a delay."},"greetingPopupDelay":{"type":"number","exclusiveMinimum":0,"maximum":3600,"description":"The delay, in seconds."},"greetingPopupMessage":{"type":"string","maxLength":512,"description":"A message for the popup that replaces the greeting."},"theme":{"$ref":"#/components/schemas/AgentTheme"}}},"AgentTheme":{"type":"object","description":"The brand colours of the chat widget. Each colour is a 6-digit hex value. A colour that you do not set comes from the design system.","additionalProperties":false,"properties":{"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"userBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"agentBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"headerColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"launcherColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"backgroundColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"textColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"borderColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"bubbleStyle":{"type":"string","enum":["rounded","tailed","flat","outlined","shadowed","bordered","minimal","gradient"]}}},"AgentToolsetEntry":{"type":"object","description":"A capability that the agent can use. The value of `name` is a toolset or a single tool.\n\nToolsets that need no setup: `offers` (fetch offers and create a checkout; set `config.label` to an offer label), `orders` (read what the shopper bought), `page_studio` (the page builder assistant), `documents` (ask the shopper to upload documents) and `outcomes`.\n\nToolsets that need `toolsetId`: `knowledge`, `mcp`, `integration` and `managed_agent`. Get the ID from `GET /chat/v1/admin/toolsets`. For knowledge, use the ID of a toolset of type `knowledge`.\n\nSingle tools: `fetch_offers`, `create_checkout`, `build_checkout_link` (only for offers with an external checkout URL) and `get_order_items`. Add a single tool as an entry named after the tool.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64,"enum":["offers","orders","page_studio","documents","outcomes","knowledge","mcp","integration","managed_agent","fetch_offers","create_checkout","build_checkout_link","get_order_items"]},"toolsetId":{"type":"string","maxLength":128,"description":"The ID of a toolset from the toolsets list."},"config":{"type":"object","description":"Settings for this entry. Each toolset or tool reads its own keys.","additionalProperties":true}}},"AgentToolEntry":{"type":"object","description":"A single tool. Prefer an entry in `toolsets` named after the tool. This list is kept for older agents.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64},"config":{"type":"object","additionalProperties":true}}},"AgentOutcome":{"type":"object","description":"A result that the agent works towards, such as a lead captured or a checkout started. The model selects the outcome when the conversation meets `criteria`. Selecting an outcome does not end the conversation.","additionalProperties":false,"required":["id","label","criteria"],"properties":{"id":{"type":"string","maxLength":64},"label":{"type":"string","maxLength":128},"description":{"type":"string","maxLength":256},"tag":{"type":"string","maxLength":64},"style":{"type":"object","additionalProperties":false,"properties":{"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"criteria":{"type":"string","maxLength":2000,"description":"When the conversation has reached this outcome, in words for the model."},"whatToDo":{"type":"string","maxLength":5000,"description":"What the model must do when it reaches this outcome."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcomeTool"}}}},"AgentOutcomeTool":{"type":"object","description":"A tool that runs when the agent reaches the outcome. Set `id` to the same value as `tool`: the API rejects an instance that has a different id. Use each tool once on an outcome.","additionalProperties":false,"required":["id","tool"],"properties":{"id":{"type":"string","maxLength":64,"description":"Must be the same as `tool`."},"tool":{"type":"string","maxLength":64,"enum":["fetch_offers","create_checkout","build_checkout_link","get_order_items","data_capture"],"description":"The tool to run. `fetch_offers` takes `config.label` (an offer label). `create_checkout` takes `config.checkoutPath`, a path on the site such as `/checkout`; blank uses the page set on the offer. `data_capture` takes `config.inputs`, the fields to capture. `build_checkout_link` and `get_order_items` take no settings."},"displayName":{"type":"string","maxLength":128},"config":{"type":"object","description":"The settings of the tool. Each tool reads its own keys. `inputs` has a fixed shape for every tool.","additionalProperties":true,"properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolInput"}}}}}},"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The Agent object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Agent":{"type":"object","description":"An agent version. The `id` stays the same for all versions of the agent. Use it as it is in each path.","properties":{"id":{"type":"string"},"name":{"type":"string"},"record_type":{"type":"string"},"version":{"type":"string","description":"The ID of this version. Send it to publish this version."},"created":{"type":"string","format":"date-time"},"data":{"$ref":"#/components/schemas/AgentData"}}},"AgentData":{"type":"object","description":"The configuration of an agent. The API rejects a key that this schema does not list, including old keys such as `model`.","additionalProperties":false,"required":["systemPrompt"],"properties":{"description":{"type":"string"},"systemPrompt":{"type":"string","description":"The instructions of the agent. The platform adds its own rules around this text."},"presentation":{"$ref":"#/components/schemas/AgentPresentation"},"enabled":{"type":"boolean"},"toolsets":{"type":"array","description":"The capabilities of the agent. When this list is present, it is the full set: an empty list turns all tools off.","items":{"$ref":"#/components/schemas/AgentToolsetEntry"}},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolEntry"}},"outcomes":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcome"}},"maxOutputTokens":{"type":"integer","minimum":1,"maximum":64000,"description":"The most tokens in one reply. The default is 4096."},"maxSteps":{"type":"integer","minimum":1,"maximum":20,"description":"The most model and tool steps in one reply. The default is 8."},"streaming":{"type":"boolean","description":"Send the reply to the shopper as it is written."},"narrate":{"type":"boolean"}}},"AgentPresentation":{"type":"object","description":"How the agent shows itself in the chat widget.","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":256,"description":"The header title."},"placeholder":{"type":"string","maxLength":256,"description":"The placeholder text of the message box."},"greeting":{"type":"string","description":"The first message of a new conversation."},"pointers":{"type":"array","maxItems":4,"description":"Suggested first questions that the widget shows.","items":{"type":"string","maxLength":512}},"footer":{"type":"string","maxLength":1024,"description":"Markdown text under the message box."},"launcherIcon":{"type":"string","maxLength":2048,"pattern":"^/public/\\S+$","description":"An uploaded asset path that starts with `/public/`. The API rejects an external URL and a path that goes out of `/public/`."},"launcherLabel":{"type":"string","maxLength":40},"greetingPopup":{"type":"boolean","description":"Show the greeting next to the closed launcher after a delay."},"greetingPopupDelay":{"type":"number","exclusiveMinimum":0,"maximum":3600,"description":"The delay, in seconds."},"greetingPopupMessage":{"type":"string","maxLength":512,"description":"A message for the popup that replaces the greeting."},"theme":{"$ref":"#/components/schemas/AgentTheme"}}},"AgentTheme":{"type":"object","description":"The brand colours of the chat widget. Each colour is a 6-digit hex value. A colour that you do not set comes from the design system.","additionalProperties":false,"properties":{"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"userBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"agentBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"headerColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"launcherColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"backgroundColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"textColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"borderColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"bubbleStyle":{"type":"string","enum":["rounded","tailed","flat","outlined","shadowed","bordered","minimal","gradient"]}}},"AgentToolsetEntry":{"type":"object","description":"A capability that the agent can use. The value of `name` is a toolset or a single tool.\n\nToolsets that need no setup: `offers` (fetch offers and create a checkout; set `config.label` to an offer label), `orders` (read what the shopper bought), `page_studio` (the page builder assistant), `documents` (ask the shopper to upload documents) and `outcomes`.\n\nToolsets that need `toolsetId`: `knowledge`, `mcp`, `integration` and `managed_agent`. Get the ID from `GET /chat/v1/admin/toolsets`. For knowledge, use the ID of a toolset of type `knowledge`.\n\nSingle tools: `fetch_offers`, `create_checkout`, `build_checkout_link` (only for offers with an external checkout URL) and `get_order_items`. Add a single tool as an entry named after the tool.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64,"enum":["offers","orders","page_studio","documents","outcomes","knowledge","mcp","integration","managed_agent","fetch_offers","create_checkout","build_checkout_link","get_order_items"]},"toolsetId":{"type":"string","maxLength":128,"description":"The ID of a toolset from the toolsets list."},"config":{"type":"object","description":"Settings for this entry. Each toolset or tool reads its own keys.","additionalProperties":true}}},"AgentToolEntry":{"type":"object","description":"A single tool. Prefer an entry in `toolsets` named after the tool. This list is kept for older agents.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64},"config":{"type":"object","additionalProperties":true}}},"AgentOutcome":{"type":"object","description":"A result that the agent works towards, such as a lead captured or a checkout started. The model selects the outcome when the conversation meets `criteria`. Selecting an outcome does not end the conversation.","additionalProperties":false,"required":["id","label","criteria"],"properties":{"id":{"type":"string","maxLength":64},"label":{"type":"string","maxLength":128},"description":{"type":"string","maxLength":256},"tag":{"type":"string","maxLength":64},"style":{"type":"object","additionalProperties":false,"properties":{"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"criteria":{"type":"string","maxLength":2000,"description":"When the conversation has reached this outcome, in words for the model."},"whatToDo":{"type":"string","maxLength":5000,"description":"What the model must do when it reaches this outcome."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcomeTool"}}}},"AgentOutcomeTool":{"type":"object","description":"A tool that runs when the agent reaches the outcome. Set `id` to the same value as `tool`: the API rejects an instance that has a different id. Use each tool once on an outcome.","additionalProperties":false,"required":["id","tool"],"properties":{"id":{"type":"string","maxLength":64,"description":"Must be the same as `tool`."},"tool":{"type":"string","maxLength":64,"enum":["fetch_offers","create_checkout","build_checkout_link","get_order_items","data_capture"],"description":"The tool to run. `fetch_offers` takes `config.label` (an offer label). `create_checkout` takes `config.checkoutPath`, a path on the site such as `/checkout`; blank uses the page set on the offer. `data_capture` takes `config.inputs`, the fields to capture. `build_checkout_link` and `get_order_items` take no settings."},"displayName":{"type":"string","maxLength":128},"config":{"type":"object","description":"The settings of the tool. Each tool reads its own keys. `inputs` has a fixed shape for every tool.","additionalProperties":true,"properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolInput"}}}}}},"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The AgentList object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentList":{"type":"object","properties":{"items":{"type":"array","description":"The latest version of each agent. The order is not fixed.","items":{"$ref":"#/components/schemas/Agent"}},"count":{"type":"integer"}}},"Agent":{"type":"object","description":"An agent version. The `id` stays the same for all versions of the agent. Use it as it is in each path.","properties":{"id":{"type":"string"},"name":{"type":"string"},"record_type":{"type":"string"},"version":{"type":"string","description":"The ID of this version. Send it to publish this version."},"created":{"type":"string","format":"date-time"},"data":{"$ref":"#/components/schemas/AgentData"}}},"AgentData":{"type":"object","description":"The configuration of an agent. The API rejects a key that this schema does not list, including old keys such as `model`.","additionalProperties":false,"required":["systemPrompt"],"properties":{"description":{"type":"string"},"systemPrompt":{"type":"string","description":"The instructions of the agent. The platform adds its own rules around this text."},"presentation":{"$ref":"#/components/schemas/AgentPresentation"},"enabled":{"type":"boolean"},"toolsets":{"type":"array","description":"The capabilities of the agent. When this list is present, it is the full set: an empty list turns all tools off.","items":{"$ref":"#/components/schemas/AgentToolsetEntry"}},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolEntry"}},"outcomes":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcome"}},"maxOutputTokens":{"type":"integer","minimum":1,"maximum":64000,"description":"The most tokens in one reply. The default is 4096."},"maxSteps":{"type":"integer","minimum":1,"maximum":20,"description":"The most model and tool steps in one reply. The default is 8."},"streaming":{"type":"boolean","description":"Send the reply to the shopper as it is written."},"narrate":{"type":"boolean"}}},"AgentPresentation":{"type":"object","description":"How the agent shows itself in the chat widget.","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":256,"description":"The header title."},"placeholder":{"type":"string","maxLength":256,"description":"The placeholder text of the message box."},"greeting":{"type":"string","description":"The first message of a new conversation."},"pointers":{"type":"array","maxItems":4,"description":"Suggested first questions that the widget shows.","items":{"type":"string","maxLength":512}},"footer":{"type":"string","maxLength":1024,"description":"Markdown text under the message box."},"launcherIcon":{"type":"string","maxLength":2048,"pattern":"^/public/\\S+$","description":"An uploaded asset path that starts with `/public/`. The API rejects an external URL and a path that goes out of `/public/`."},"launcherLabel":{"type":"string","maxLength":40},"greetingPopup":{"type":"boolean","description":"Show the greeting next to the closed launcher after a delay."},"greetingPopupDelay":{"type":"number","exclusiveMinimum":0,"maximum":3600,"description":"The delay, in seconds."},"greetingPopupMessage":{"type":"string","maxLength":512,"description":"A message for the popup that replaces the greeting."},"theme":{"$ref":"#/components/schemas/AgentTheme"}}},"AgentTheme":{"type":"object","description":"The brand colours of the chat widget. Each colour is a 6-digit hex value. A colour that you do not set comes from the design system.","additionalProperties":false,"properties":{"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"userBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"agentBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"headerColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"launcherColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"backgroundColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"textColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"borderColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"bubbleStyle":{"type":"string","enum":["rounded","tailed","flat","outlined","shadowed","bordered","minimal","gradient"]}}},"AgentToolsetEntry":{"type":"object","description":"A capability that the agent can use. The value of `name` is a toolset or a single tool.\n\nToolsets that need no setup: `offers` (fetch offers and create a checkout; set `config.label` to an offer label), `orders` (read what the shopper bought), `page_studio` (the page builder assistant), `documents` (ask the shopper to upload documents) and `outcomes`.\n\nToolsets that need `toolsetId`: `knowledge`, `mcp`, `integration` and `managed_agent`. Get the ID from `GET /chat/v1/admin/toolsets`. For knowledge, use the ID of a toolset of type `knowledge`.\n\nSingle tools: `fetch_offers`, `create_checkout`, `build_checkout_link` (only for offers with an external checkout URL) and `get_order_items`. Add a single tool as an entry named after the tool.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64,"enum":["offers","orders","page_studio","documents","outcomes","knowledge","mcp","integration","managed_agent","fetch_offers","create_checkout","build_checkout_link","get_order_items"]},"toolsetId":{"type":"string","maxLength":128,"description":"The ID of a toolset from the toolsets list."},"config":{"type":"object","description":"Settings for this entry. Each toolset or tool reads its own keys.","additionalProperties":true}}},"AgentToolEntry":{"type":"object","description":"A single tool. Prefer an entry in `toolsets` named after the tool. This list is kept for older agents.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64},"config":{"type":"object","additionalProperties":true}}},"AgentOutcome":{"type":"object","description":"A result that the agent works towards, such as a lead captured or a checkout started. The model selects the outcome when the conversation meets `criteria`. Selecting an outcome does not end the conversation.","additionalProperties":false,"required":["id","label","criteria"],"properties":{"id":{"type":"string","maxLength":64},"label":{"type":"string","maxLength":128},"description":{"type":"string","maxLength":256},"tag":{"type":"string","maxLength":64},"style":{"type":"object","additionalProperties":false,"properties":{"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"criteria":{"type":"string","maxLength":2000,"description":"When the conversation has reached this outcome, in words for the model."},"whatToDo":{"type":"string","maxLength":5000,"description":"What the model must do when it reaches this outcome."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcomeTool"}}}},"AgentOutcomeTool":{"type":"object","description":"A tool that runs when the agent reaches the outcome. Set `id` to the same value as `tool`: the API rejects an instance that has a different id. Use each tool once on an outcome.","additionalProperties":false,"required":["id","tool"],"properties":{"id":{"type":"string","maxLength":64,"description":"Must be the same as `tool`."},"tool":{"type":"string","maxLength":64,"enum":["fetch_offers","create_checkout","build_checkout_link","get_order_items","data_capture"],"description":"The tool to run. `fetch_offers` takes `config.label` (an offer label). `create_checkout` takes `config.checkoutPath`, a path on the site such as `/checkout`; blank uses the page set on the offer. `data_capture` takes `config.inputs`, the fields to capture. `build_checkout_link` and `get_order_items` take no settings."},"displayName":{"type":"string","maxLength":128},"config":{"type":"object","description":"The settings of the tool. Each tool reads its own keys. `inputs` has a fixed shape for every tool.","additionalProperties":true,"properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolInput"}}}}}},"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The ChatError object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ChatError":{"type":"object","description":"The error body of the chat API. The fields are at the top level, not under an `error` key.","properties":{"requestId":{"type":"string","description":"The ID of the request that failed."},"code":{"type":"string","description":"A stable error code, for example `validation_error` or `unknown_toolset_type`."},"message":{"type":"string","description":"What went wrong, in words."},"fields":{"type":"object","description":"For a `validation_error`, the paths of the fields that failed and why. Correct these fields and send the request again.","additionalProperties":true}}}}}}
```

## The AgentPreviewRequest object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentPreviewRequest":{"type":"object","additionalProperties":false,"required":["data","messages"],"properties":{"data":{"$ref":"#/components/schemas/AgentData"},"messages":{"type":"array","minItems":1,"maxItems":50,"description":"The conversation so far. The last message is usually from the user.","items":{"type":"object","additionalProperties":false,"required":["role","content"],"properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string","maxLength":4000}}}}}},"AgentData":{"type":"object","description":"The configuration of an agent. The API rejects a key that this schema does not list, including old keys such as `model`.","additionalProperties":false,"required":["systemPrompt"],"properties":{"description":{"type":"string"},"systemPrompt":{"type":"string","description":"The instructions of the agent. The platform adds its own rules around this text."},"presentation":{"$ref":"#/components/schemas/AgentPresentation"},"enabled":{"type":"boolean"},"toolsets":{"type":"array","description":"The capabilities of the agent. When this list is present, it is the full set: an empty list turns all tools off.","items":{"$ref":"#/components/schemas/AgentToolsetEntry"}},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolEntry"}},"outcomes":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcome"}},"maxOutputTokens":{"type":"integer","minimum":1,"maximum":64000,"description":"The most tokens in one reply. The default is 4096."},"maxSteps":{"type":"integer","minimum":1,"maximum":20,"description":"The most model and tool steps in one reply. The default is 8."},"streaming":{"type":"boolean","description":"Send the reply to the shopper as it is written."},"narrate":{"type":"boolean"}}},"AgentPresentation":{"type":"object","description":"How the agent shows itself in the chat widget.","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":256,"description":"The header title."},"placeholder":{"type":"string","maxLength":256,"description":"The placeholder text of the message box."},"greeting":{"type":"string","description":"The first message of a new conversation."},"pointers":{"type":"array","maxItems":4,"description":"Suggested first questions that the widget shows.","items":{"type":"string","maxLength":512}},"footer":{"type":"string","maxLength":1024,"description":"Markdown text under the message box."},"launcherIcon":{"type":"string","maxLength":2048,"pattern":"^/public/\\S+$","description":"An uploaded asset path that starts with `/public/`. The API rejects an external URL and a path that goes out of `/public/`."},"launcherLabel":{"type":"string","maxLength":40},"greetingPopup":{"type":"boolean","description":"Show the greeting next to the closed launcher after a delay."},"greetingPopupDelay":{"type":"number","exclusiveMinimum":0,"maximum":3600,"description":"The delay, in seconds."},"greetingPopupMessage":{"type":"string","maxLength":512,"description":"A message for the popup that replaces the greeting."},"theme":{"$ref":"#/components/schemas/AgentTheme"}}},"AgentTheme":{"type":"object","description":"The brand colours of the chat widget. Each colour is a 6-digit hex value. A colour that you do not set comes from the design system.","additionalProperties":false,"properties":{"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"userBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"agentBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"headerColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"launcherColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"backgroundColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"textColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"borderColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"bubbleStyle":{"type":"string","enum":["rounded","tailed","flat","outlined","shadowed","bordered","minimal","gradient"]}}},"AgentToolsetEntry":{"type":"object","description":"A capability that the agent can use. The value of `name` is a toolset or a single tool.\n\nToolsets that need no setup: `offers` (fetch offers and create a checkout; set `config.label` to an offer label), `orders` (read what the shopper bought), `page_studio` (the page builder assistant), `documents` (ask the shopper to upload documents) and `outcomes`.\n\nToolsets that need `toolsetId`: `knowledge`, `mcp`, `integration` and `managed_agent`. Get the ID from `GET /chat/v1/admin/toolsets`. For knowledge, use the ID of a toolset of type `knowledge`.\n\nSingle tools: `fetch_offers`, `create_checkout`, `build_checkout_link` (only for offers with an external checkout URL) and `get_order_items`. Add a single tool as an entry named after the tool.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64,"enum":["offers","orders","page_studio","documents","outcomes","knowledge","mcp","integration","managed_agent","fetch_offers","create_checkout","build_checkout_link","get_order_items"]},"toolsetId":{"type":"string","maxLength":128,"description":"The ID of a toolset from the toolsets list."},"config":{"type":"object","description":"Settings for this entry. Each toolset or tool reads its own keys.","additionalProperties":true}}},"AgentToolEntry":{"type":"object","description":"A single tool. Prefer an entry in `toolsets` named after the tool. This list is kept for older agents.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64},"config":{"type":"object","additionalProperties":true}}},"AgentOutcome":{"type":"object","description":"A result that the agent works towards, such as a lead captured or a checkout started. The model selects the outcome when the conversation meets `criteria`. Selecting an outcome does not end the conversation.","additionalProperties":false,"required":["id","label","criteria"],"properties":{"id":{"type":"string","maxLength":64},"label":{"type":"string","maxLength":128},"description":{"type":"string","maxLength":256},"tag":{"type":"string","maxLength":64},"style":{"type":"object","additionalProperties":false,"properties":{"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"criteria":{"type":"string","maxLength":2000,"description":"When the conversation has reached this outcome, in words for the model."},"whatToDo":{"type":"string","maxLength":5000,"description":"What the model must do when it reaches this outcome."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcomeTool"}}}},"AgentOutcomeTool":{"type":"object","description":"A tool that runs when the agent reaches the outcome. Set `id` to the same value as `tool`: the API rejects an instance that has a different id. Use each tool once on an outcome.","additionalProperties":false,"required":["id","tool"],"properties":{"id":{"type":"string","maxLength":64,"description":"Must be the same as `tool`."},"tool":{"type":"string","maxLength":64,"enum":["fetch_offers","create_checkout","build_checkout_link","get_order_items","data_capture"],"description":"The tool to run. `fetch_offers` takes `config.label` (an offer label). `create_checkout` takes `config.checkoutPath`, a path on the site such as `/checkout`; blank uses the page set on the offer. `data_capture` takes `config.inputs`, the fields to capture. `build_checkout_link` and `get_order_items` take no settings."},"displayName":{"type":"string","maxLength":128},"config":{"type":"object","description":"The settings of the tool. Each tool reads its own keys. `inputs` has a fixed shape for every tool.","additionalProperties":true,"properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolInput"}}}}}},"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The AgentPreviewResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentPreviewResponse":{"type":"object","properties":{"text":{"type":"string","description":"The reply of the agent, in markdown."},"narration":{"type":"array","items":{"type":"string"}},"model":{"type":"string","description":"The model that wrote the reply."},"artifacts":{"type":"array","description":"Structured results from tools, such as offers or a checkout link.","items":{"type":"object","additionalProperties":true}},"toolsUsed":{"type":"array","description":"The names of the tools that the agent called.","items":{"type":"string"}}}}}}}
```

## The ChatSuccessResponse object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ChatSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"}}}}}}
```

## The AgentVersions object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"AgentVersions":{"type":"object","properties":{"items":{"type":"array","description":"The versions of the agent, newest first.","items":{"$ref":"#/components/schemas/Agent"}},"count":{"type":"integer"},"publishedVersionId":{"type":["string","null"],"description":"The version that customers see now, or null when no version is published."},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","description":"Send this as `before` to get the next page."}}},"Agent":{"type":"object","description":"An agent version. The `id` stays the same for all versions of the agent. Use it as it is in each path.","properties":{"id":{"type":"string"},"name":{"type":"string"},"record_type":{"type":"string"},"version":{"type":"string","description":"The ID of this version. Send it to publish this version."},"created":{"type":"string","format":"date-time"},"data":{"$ref":"#/components/schemas/AgentData"}}},"AgentData":{"type":"object","description":"The configuration of an agent. The API rejects a key that this schema does not list, including old keys such as `model`.","additionalProperties":false,"required":["systemPrompt"],"properties":{"description":{"type":"string"},"systemPrompt":{"type":"string","description":"The instructions of the agent. The platform adds its own rules around this text."},"presentation":{"$ref":"#/components/schemas/AgentPresentation"},"enabled":{"type":"boolean"},"toolsets":{"type":"array","description":"The capabilities of the agent. When this list is present, it is the full set: an empty list turns all tools off.","items":{"$ref":"#/components/schemas/AgentToolsetEntry"}},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolEntry"}},"outcomes":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcome"}},"maxOutputTokens":{"type":"integer","minimum":1,"maximum":64000,"description":"The most tokens in one reply. The default is 4096."},"maxSteps":{"type":"integer","minimum":1,"maximum":20,"description":"The most model and tool steps in one reply. The default is 8."},"streaming":{"type":"boolean","description":"Send the reply to the shopper as it is written."},"narrate":{"type":"boolean"}}},"AgentPresentation":{"type":"object","description":"How the agent shows itself in the chat widget.","additionalProperties":false,"properties":{"title":{"type":"string","maxLength":256,"description":"The header title."},"placeholder":{"type":"string","maxLength":256,"description":"The placeholder text of the message box."},"greeting":{"type":"string","description":"The first message of a new conversation."},"pointers":{"type":"array","maxItems":4,"description":"Suggested first questions that the widget shows.","items":{"type":"string","maxLength":512}},"footer":{"type":"string","maxLength":1024,"description":"Markdown text under the message box."},"launcherIcon":{"type":"string","maxLength":2048,"pattern":"^/public/\\S+$","description":"An uploaded asset path that starts with `/public/`. The API rejects an external URL and a path that goes out of `/public/`."},"launcherLabel":{"type":"string","maxLength":40},"greetingPopup":{"type":"boolean","description":"Show the greeting next to the closed launcher after a delay."},"greetingPopupDelay":{"type":"number","exclusiveMinimum":0,"maximum":3600,"description":"The delay, in seconds."},"greetingPopupMessage":{"type":"string","maxLength":512,"description":"A message for the popup that replaces the greeting."},"theme":{"$ref":"#/components/schemas/AgentTheme"}}},"AgentTheme":{"type":"object","description":"The brand colours of the chat widget. Each colour is a 6-digit hex value. A colour that you do not set comes from the design system.","additionalProperties":false,"properties":{"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"userBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"agentBubbleColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"headerColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"launcherColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"backgroundColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"textColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"borderColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"bubbleStyle":{"type":"string","enum":["rounded","tailed","flat","outlined","shadowed","bordered","minimal","gradient"]}}},"AgentToolsetEntry":{"type":"object","description":"A capability that the agent can use. The value of `name` is a toolset or a single tool.\n\nToolsets that need no setup: `offers` (fetch offers and create a checkout; set `config.label` to an offer label), `orders` (read what the shopper bought), `page_studio` (the page builder assistant), `documents` (ask the shopper to upload documents) and `outcomes`.\n\nToolsets that need `toolsetId`: `knowledge`, `mcp`, `integration` and `managed_agent`. Get the ID from `GET /chat/v1/admin/toolsets`. For knowledge, use the ID of a toolset of type `knowledge`.\n\nSingle tools: `fetch_offers`, `create_checkout`, `build_checkout_link` (only for offers with an external checkout URL) and `get_order_items`. Add a single tool as an entry named after the tool.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64,"enum":["offers","orders","page_studio","documents","outcomes","knowledge","mcp","integration","managed_agent","fetch_offers","create_checkout","build_checkout_link","get_order_items"]},"toolsetId":{"type":"string","maxLength":128,"description":"The ID of a toolset from the toolsets list."},"config":{"type":"object","description":"Settings for this entry. Each toolset or tool reads its own keys.","additionalProperties":true}}},"AgentToolEntry":{"type":"object","description":"A single tool. Prefer an entry in `toolsets` named after the tool. This list is kept for older agents.","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":64},"config":{"type":"object","additionalProperties":true}}},"AgentOutcome":{"type":"object","description":"A result that the agent works towards, such as a lead captured or a checkout started. The model selects the outcome when the conversation meets `criteria`. Selecting an outcome does not end the conversation.","additionalProperties":false,"required":["id","label","criteria"],"properties":{"id":{"type":"string","maxLength":64},"label":{"type":"string","maxLength":128},"description":{"type":"string","maxLength":256},"tag":{"type":"string","maxLength":64},"style":{"type":"object","additionalProperties":false,"properties":{"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"criteria":{"type":"string","maxLength":2000,"description":"When the conversation has reached this outcome, in words for the model."},"whatToDo":{"type":"string","maxLength":5000,"description":"What the model must do when it reaches this outcome."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AgentOutcomeTool"}}}},"AgentOutcomeTool":{"type":"object","description":"A tool that runs when the agent reaches the outcome. Set `id` to the same value as `tool`: the API rejects an instance that has a different id. Use each tool once on an outcome.","additionalProperties":false,"required":["id","tool"],"properties":{"id":{"type":"string","maxLength":64,"description":"Must be the same as `tool`."},"tool":{"type":"string","maxLength":64,"enum":["fetch_offers","create_checkout","build_checkout_link","get_order_items","data_capture"],"description":"The tool to run. `fetch_offers` takes `config.label` (an offer label). `create_checkout` takes `config.checkoutPath`, a path on the site such as `/checkout`; blank uses the page set on the offer. `data_capture` takes `config.inputs`, the fields to capture. `build_checkout_link` and `get_order_items` take no settings."},"displayName":{"type":"string","maxLength":128},"config":{"type":"object","description":"The settings of the tool. Each tool reads its own keys. `inputs` has a fixed shape for every tool.","additionalProperties":true,"properties":{"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AgentToolInput"}}}}}},"AgentToolInput":{"type":"object","description":"A field that a tool captures from the shopper. The `id` is also the order field name that the tool writes.","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","maxLength":64,"description":"The capture key. Unique in each outcome, across all its tools."},"type":{"type":"string","enum":["string","email","number"]},"description":{"type":"string","maxLength":512,"description":"Tells the model what to ask for."},"required":{"type":"boolean","description":"Whether the tool needs this field to submit. The default is `true`."},"allowed":{"type":"array","description":"The values the field can have.","items":{"type":"string","maxLength":256}}}}}}}
```

## The ToolsetData object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ToolsetData":{"type":"object","description":"The configuration of a toolset. A toolset is set up once for the tenant, and an agent uses it through `toolsetId`. Only the types `knowledge`, `mcp`, `integration` and `managed_agent` can be created. To give an agent knowledge, create a toolset of type `knowledge`, then add documents to it.","additionalProperties":false,"required":["type"],"properties":{"type":{"type":"string","maxLength":64,"enum":["knowledge","mcp","integration","managed_agent"]},"description":{"type":"string","maxLength":256,"description":"What the toolset holds."},"config":{"type":"object","additionalProperties":false,"description":"Type-specific settings. A `knowledge` toolset needs no config. The Connect flow in the admin writes the `mcp` fields (`url`, `tools`, `allowedTools`, `connection`, `clientId`, `supportsDcr`). Do not set them through this API.","properties":{"sources":{"type":"array","maxItems":50,"description":"For `knowledge`, the places that the content comes from.","items":{"type":"object","additionalProperties":false,"required":["type","location"],"properties":{"type":{"type":"string","enum":["web","notion","confluence"]},"location":{"type":"string","maxLength":2048}}}},"url":{"type":"string","format":"uri","maxLength":2048,"description":"For `mcp`, the address of the MCP server."},"tools":{"type":"array","maxItems":200,"description":"For `mcp`, the tool list from the server. The Connect flow writes it.","items":{"type":"object","additionalProperties":false,"required":["name","inputSchema"],"properties":{"name":{"type":"string","maxLength":256},"description":{"type":"string","maxLength":32768},"inputSchema":{"type":"string","maxLength":131072,"description":"The JSON Schema of the tool, as a string."}}}},"allowedTools":{"type":"array","maxItems":200,"description":"For `mcp`, the tools that agents can use.","items":{"type":"string","maxLength":256}},"connection":{"type":"object","additionalProperties":false,"required":["status"],"description":"For `mcp`, the connection state. The Connect flow writes it.","properties":{"status":{"type":"string","enum":["disconnected","connected","needs_reauth"]},"connectedAs":{"type":"string","maxLength":256},"connectedAt":{"type":"string","maxLength":64}}},"clientId":{"type":"string","maxLength":512},"supportsDcr":{"type":"boolean"},"provider":{"type":"string","maxLength":64,"description":"For `integration`, the provider, for example `hubspot`."},"agentId":{"type":"string","maxLength":256,"description":"For `managed_agent`, the external agent to delegate to."},"environmentId":{"type":"string","maxLength":256},"vaultIds":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":256}}}},"connection":{"type":"string","maxLength":256,"description":"Reserved. A reference to a stored connection, never a secret."},"enabled":{"type":"boolean"}}}}}}
```

## The Toolset object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"Toolset":{"type":"object","properties":{"id":{"type":"string","description":"Use this value as `toolsetId` on an agent, and in each toolset path."},"name":{"type":"string"},"record_type":{"type":"string"},"data":{"$ref":"#/components/schemas/ToolsetData"},"docCount":{"type":"integer","description":"In the list only. The number of documents on a `knowledge` toolset, else 0."},"hasClientSecret":{"type":"boolean","description":"For `mcp` only. Whether a client secret is stored. The secret is never returned."}}},"ToolsetData":{"type":"object","description":"The configuration of a toolset. A toolset is set up once for the tenant, and an agent uses it through `toolsetId`. Only the types `knowledge`, `mcp`, `integration` and `managed_agent` can be created. To give an agent knowledge, create a toolset of type `knowledge`, then add documents to it.","additionalProperties":false,"required":["type"],"properties":{"type":{"type":"string","maxLength":64,"enum":["knowledge","mcp","integration","managed_agent"]},"description":{"type":"string","maxLength":256,"description":"What the toolset holds."},"config":{"type":"object","additionalProperties":false,"description":"Type-specific settings. A `knowledge` toolset needs no config. The Connect flow in the admin writes the `mcp` fields (`url`, `tools`, `allowedTools`, `connection`, `clientId`, `supportsDcr`). Do not set them through this API.","properties":{"sources":{"type":"array","maxItems":50,"description":"For `knowledge`, the places that the content comes from.","items":{"type":"object","additionalProperties":false,"required":["type","location"],"properties":{"type":{"type":"string","enum":["web","notion","confluence"]},"location":{"type":"string","maxLength":2048}}}},"url":{"type":"string","format":"uri","maxLength":2048,"description":"For `mcp`, the address of the MCP server."},"tools":{"type":"array","maxItems":200,"description":"For `mcp`, the tool list from the server. The Connect flow writes it.","items":{"type":"object","additionalProperties":false,"required":["name","inputSchema"],"properties":{"name":{"type":"string","maxLength":256},"description":{"type":"string","maxLength":32768},"inputSchema":{"type":"string","maxLength":131072,"description":"The JSON Schema of the tool, as a string."}}}},"allowedTools":{"type":"array","maxItems":200,"description":"For `mcp`, the tools that agents can use.","items":{"type":"string","maxLength":256}},"connection":{"type":"object","additionalProperties":false,"required":["status"],"description":"For `mcp`, the connection state. The Connect flow writes it.","properties":{"status":{"type":"string","enum":["disconnected","connected","needs_reauth"]},"connectedAs":{"type":"string","maxLength":256},"connectedAt":{"type":"string","maxLength":64}}},"clientId":{"type":"string","maxLength":512},"supportsDcr":{"type":"boolean"},"provider":{"type":"string","maxLength":64,"description":"For `integration`, the provider, for example `hubspot`."},"agentId":{"type":"string","maxLength":256,"description":"For `managed_agent`, the external agent to delegate to."},"environmentId":{"type":"string","maxLength":256},"vaultIds":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":256}}}},"connection":{"type":"string","maxLength":256,"description":"Reserved. A reference to a stored connection, never a secret."},"enabled":{"type":"boolean"}}}}}}
```

## The ToolsetList object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"ToolsetList":{"type":"object","properties":{"items":{"type":"array","description":"Up to 100 toolsets.","items":{"$ref":"#/components/schemas/Toolset"}},"count":{"type":"integer"}}},"Toolset":{"type":"object","properties":{"id":{"type":"string","description":"Use this value as `toolsetId` on an agent, and in each toolset path."},"name":{"type":"string"},"record_type":{"type":"string"},"data":{"$ref":"#/components/schemas/ToolsetData"},"docCount":{"type":"integer","description":"In the list only. The number of documents on a `knowledge` toolset, else 0."},"hasClientSecret":{"type":"boolean","description":"For `mcp` only. Whether a client secret is stored. The secret is never returned."}}},"ToolsetData":{"type":"object","description":"The configuration of a toolset. A toolset is set up once for the tenant, and an agent uses it through `toolsetId`. Only the types `knowledge`, `mcp`, `integration` and `managed_agent` can be created. To give an agent knowledge, create a toolset of type `knowledge`, then add documents to it.","additionalProperties":false,"required":["type"],"properties":{"type":{"type":"string","maxLength":64,"enum":["knowledge","mcp","integration","managed_agent"]},"description":{"type":"string","maxLength":256,"description":"What the toolset holds."},"config":{"type":"object","additionalProperties":false,"description":"Type-specific settings. A `knowledge` toolset needs no config. The Connect flow in the admin writes the `mcp` fields (`url`, `tools`, `allowedTools`, `connection`, `clientId`, `supportsDcr`). Do not set them through this API.","properties":{"sources":{"type":"array","maxItems":50,"description":"For `knowledge`, the places that the content comes from.","items":{"type":"object","additionalProperties":false,"required":["type","location"],"properties":{"type":{"type":"string","enum":["web","notion","confluence"]},"location":{"type":"string","maxLength":2048}}}},"url":{"type":"string","format":"uri","maxLength":2048,"description":"For `mcp`, the address of the MCP server."},"tools":{"type":"array","maxItems":200,"description":"For `mcp`, the tool list from the server. The Connect flow writes it.","items":{"type":"object","additionalProperties":false,"required":["name","inputSchema"],"properties":{"name":{"type":"string","maxLength":256},"description":{"type":"string","maxLength":32768},"inputSchema":{"type":"string","maxLength":131072,"description":"The JSON Schema of the tool, as a string."}}}},"allowedTools":{"type":"array","maxItems":200,"description":"For `mcp`, the tools that agents can use.","items":{"type":"string","maxLength":256}},"connection":{"type":"object","additionalProperties":false,"required":["status"],"description":"For `mcp`, the connection state. The Connect flow writes it.","properties":{"status":{"type":"string","enum":["disconnected","connected","needs_reauth"]},"connectedAs":{"type":"string","maxLength":256},"connectedAt":{"type":"string","maxLength":64}}},"clientId":{"type":"string","maxLength":512},"supportsDcr":{"type":"boolean"},"provider":{"type":"string","maxLength":64,"description":"For `integration`, the provider, for example `hubspot`."},"agentId":{"type":"string","maxLength":256,"description":"For `managed_agent`, the external agent to delegate to."},"environmentId":{"type":"string","maxLength":256},"vaultIds":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":256}}}},"connection":{"type":"string","maxLength":256,"description":"Reserved. A reference to a stored connection, never a secret."},"enabled":{"type":"boolean"}}}}}}
```

## The KnowledgeDoc object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"KnowledgeDoc":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"record_type":{"type":"string"},"data":{"type":"object","properties":{"toolsetId":{"type":"string","description":"The knowledge toolset that holds the document."},"title":{"type":"string"},"description":{"type":"string"},"content":{"type":"string"},"status":{"type":"string","enum":["ready"],"description":"The document is ready to use as soon as it is saved."}}}}}}}}
```

## The KnowledgeDocList object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"KnowledgeDocList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeDoc"}},"count":{"type":"integer"}}},"KnowledgeDoc":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"record_type":{"type":"string"},"data":{"type":"object","properties":{"toolsetId":{"type":"string","description":"The knowledge toolset that holds the document."},"title":{"type":"string"},"description":{"type":"string"},"content":{"type":"string"},"status":{"type":"string","enum":["ready"],"description":"The document is ready to use as soon as it is saved."}}}}}}}}
```

## The KnowledgeDocInput object

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"components":{"schemas":{"KnowledgeDocInput":{"type":"object","description":"A knowledge document. An update replaces the title, the description and the content, so send all three.","additionalProperties":false,"required":["title","description","content"],"properties":{"title":{"type":"string","maxLength":200},"description":{"type":"string","maxLength":1024,"description":"What questions the document answers. The agent reads this to decide when to open the document, so make it specific."},"content":{"type":"string","description":"The document, in markdown. The maximum size is 300,000 bytes in UTF-8."}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.limio.com/api/models.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
