Skip to main content
Glama
admin.json3.84 MB
{ "openapi": "3.0.0", "info": { "version": "2.0.0", "title": "Medusa Admin API", "license": { "name": "MIT", "url": "https://github.com/medusajs/medusa/blob/develop/LICENSE" } }, "servers": [ { "url": "http://localhost:9000" }, { "url": "https://api.medusajs.com" } ], "tags": [ { "name": "Auth", "description": "Auth API routes allow you to manage an admin user's authentication.\n" }, { "name": "Api Keys", "description": "API keys can be used for authentication or resource-scoping.\n\nA secret API key can be used to authenticate admin users. A publishable API key can be used to scope client requests to one or more sales channels.\n\nThese API routes allow admin users to manage both publishable and secret API keys.\n", "externalDocs": { "description": "Learn more about the API Key Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/api-key" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminApiKey" } }, { "name": "Campaigns", "description": "A campaign is a group of promotions that have the same conditions, such as start and end dates.\n\nThese API routes allow admin users to manage campaigns, their conditions, and promotions that belong to them.\n", "externalDocs": { "description": "Learn more about campaigns.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/promotion/campaign" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminCampaign" } }, { "name": "Claims", "description": "An admin creates a claim for an order when a customer reports that an item is defective or incorrect.\n\nUsing these API routes, admin users manage order claims, their items, and more.\n", "x-associatedSchema": { "$ref": "#/components/schemas/AdminClaim" }, "externalDocs": { "description": "Learn more about order claims.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/claim" } }, { "name": "Collections", "description": "A product collection organizes products into a collection for marketing purposes. For example, a summer collection.\n\nThese API routes allow admin users to manage collections and the products in them.\n", "x-associatedSchema": { "$ref": "#/components/schemas/AdminCollection" } }, { "name": "Currencies", "description": "A store can use unlimited currencies, and each region must be associated with at least one currency.\n\nCurrencies are defined by the Currency Module. Currency API Routes allow admins to list and update currencies.\n", "externalDocs": { "description": "Learn more about the Currency Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/currency" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminCurrency" } }, { "name": "Customer Groups", "description": "Customers can be organized into groups. These groups are useful for segregation and marketing purposes.\n\nFor example, you can provide different prices for specific customers by creating a price list conditioned to their group.\n\nThese API routes allow admin users to manage groups and the customers in them.\n", "externalDocs": { "description": "Learn more about the Customer Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/customer" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminCustomerGroup" } }, { "name": "Customers", "description": "Customers can either be created when they register through the Store APIs, or created by the admin using the Admin APIs.\n\nThese API routes allow admin users to manage customers in their store.\n", "externalDocs": { "description": "Learn more about the Customer Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/customer" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminCustomer" } }, { "name": "Draft Orders", "description": "A draft order is an order created by the admin user. This is useful for orders created offline or from clients other than a storefront, such as a third-party integration.\n\nThese API routes allow admin users to create and manage draft orders.\n", "externalDocs": { "description": "Learn more about the Order Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminDraftOrder" } }, { "name": "Exchanges", "description": "An exchange is the replacement of an item that the customer ordered with another.\n\nThese API routes allow admin users t create and manage exchanges.\n", "externalDocs": { "description": "Learn more about the order exchanges.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/exchange" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminExchange" } }, { "name": "Fulfillment Providers", "description": "A fulfillment provider is a third-party integration or custom logic used to fulfill an order's items.\n\nFulfillment providers are installed as module providers.\n", "externalDocs": { "description": "Learn more about the fulfillment providers and how to create them.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/fulfillment-provider" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminFulfillmentProvider" } }, { "name": "Fulfillment Sets", "description": "A fulfillment set is a general form or way of fulfillment, such as \"shipping\" or \"pick up\".\n\nAll fulfillment-related configurations in a store are related to a fulfillment set.\n\nThese API routes allow admin users to manage fulfillment sets.\n", "externalDocs": { "description": "Learn more about fulfillment sets.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/concepts" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminFulfillmentSet" } }, { "name": "Fulfillments", "description": "A fulfillment is created for items in an order, return, exchanges, or claims to deliver items to/from the customer.\n\nThese API routes allow admin users to manage fulfillments.\n", "externalDocs": { "description": "Learn more about fulfillments.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/item-fulfillment" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminFulfillment" } }, { "name": "Inventory Items", "description": "An inventory item is a stock-kept product whose inventory is managed.\n\nThese API routes allow admin users to manage inventory items.\n", "externalDocs": { "description": "Learn more about inventory items.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/inventory/concepts" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminInventoryItem" } }, { "name": "Invites", "description": "An admin can invite new users to manage their team. This allows new users to authenticate as admins and perform admin functionalities.\n\nThese API routes allow admin users to manage invites.\n", "externalDocs": { "description": "Learn more about the User Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/user" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminInvite" } }, { "name": "Notifications", "description": "A notification informs an admin user of store changes or status changes of background tasks.\n\nThese API routes allow admin users to view and manage notifications.\n", "x-associatedSchema": { "$ref": "#/components/schemas/AdminNotification" } }, { "name": "Order Edits", "description": "An order edit is a change to an order's details, such as items, shipping methods, and more.\n\nChanges made by an order edit are only applied on the order once they're confirmed.\n\nThe order's previous version is retained due to versioning.\n\nThese API routes allow admin users to make edits to an order and manage those edits.\n", "externalDocs": { "description": "Learn more about the Order Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order" } }, { "name": "Orders", "description": "An order is a purchase made by a customer through a storefront.\n\nOrders can also originally be created as draft orders.\n\nThese API routes allow admin users to view and manage orders.\n", "externalDocs": { "description": "Learn more about the orders", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminOrder" } }, { "name": "Payment Collections", "description": "A payment collection is one or more payments of an order. They're also used for outstanding payments due to order exchanges or claims.\n\nEvery purchase or request for payment starts with a payment collection.\n\nA payment collection holds the payment sessions used to authorize the payment amount, and the payments to be captured / refunded.\n\nThese API routes allow admin users to manage payment collections.\n", "externalDocs": { "description": "Learn more about payment collections.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment-collection" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminPaymentCollection" } }, { "name": "Payments", "description": "A payment is created when a payment amount is authorized. The payment can then be captured or refunded.\n\nA payment is created from the payment session that was authorized, and it belongs to the payment session's collection.\n\nThese API routes allow admin users to manage payments.\n", "externalDocs": { "description": "Learn more about payments.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminPayment" } }, { "name": "Price Lists", "description": "A price list is a group of prices applied if the specified conditions and rules are satisfied.\n\nPrice lists are useful for sales or special prices for special conditions, such as applying prices for a set of customers.\n\nThese API routes allow admin users to manage price lists.\n", "externalDocs": { "description": "Learn more about price lists.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/pricing/concepts#price-list" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminPriceList" } }, { "name": "Price Preferences", "description": "A price preference is used to specify whether tax-inclusiveness is enabled for a context, such as a region or currency code.\n\nThese API routes allow admin users to manage whether a region or currency is tax inclusive.\n", "externalDocs": { "description": "Learn more about tax-inclusiveness and the role of a price preference.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/pricing/tax-inclusive-pricing" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminPricePreference" } }, { "name": "Product Categories", "description": "Products can be categorized into categories.\n\nCategories are nested and their heirarchy can be managed, giving admin users flexibility in how they categorize their products.\n\nThese API routes allow admin users to manage categories and the products in them.\n", "externalDocs": { "description": "Learn more about the Product Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/product" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminProductCategory" } }, { "name": "Product Tags", "description": "A tag is another way of organizing a product. Each tag has a name and a value.\n\nProducts are organized into the same tag if they have the same value.\n\nThese API routes allow admin users to manage product tags.\n", "externalDocs": { "description": "Learn more about the Product Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/product" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminProductTag" } }, { "name": "Product Types", "description": "Products can be organized into types. Each type has a name and a value.\n\nProducts are organized into the same type if they have the same value.\n\nThese API routes allow admin users to manage product types.\n", "externalDocs": { "description": "Learn more about the Product Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/product" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminProductType" } }, { "name": "Product Variants", "description": "A product variant is a saleable form of the product.\n\nEach variant has different option values. For example, a \"Shirt\" product may have a \"Blue\" variant and a \"Green\" variant. Customers choose from these variants when they buy the product.\n\nThese API routes allow admin users to manage product variants.\n", "externalDocs": { "description": "Learn more about the Product Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/product" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminProductVariant" } }, { "name": "Products", "description": "A product is a set of variants that the customer chooses from when making a purchase.\n\nA product can be organized into categories or collections.\n\nA product can have many options, and variants for each of these options' values.\n\nThese API routes allow admin users to manage products.\n", "externalDocs": { "description": "Learn more about the Product Module", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/product" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminProduct" } }, { "name": "Promotions", "description": "A promotion discounts an amount or percentage off a cart's items, shipping methods, or the entire order.\n\nPromotions have different types, such as a `standard` promotion that just discounts an amount, or a `buyget` promotion to enforce a \"buy X get Y\" promotion.\n\nA promotion has rules to restrict how and when they're applied.\n\nPromotions belong to a campaign, which sets conditions on the promotion such as when it starts and ends.\n\nThese API routes allow admin users to manage promotions.\n", "externalDocs": { "description": "Learn more about promotions.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/promotion/concepts" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminPromotion" } }, { "name": "Refund Reasons", "description": "A refund reason is a possible reason used when issuing a refund to the customer, such as when returning an item and refunding the customer.\n\nThese API routes allow admin users to manage refund reasons.\n", "x-associatedSchema": { "$ref": "#/components/schemas/AdminRefundReason" } }, { "name": "Regions", "description": "Regions are different countries or geographical regions that the commerce store serves customers in.\n\nThese API routes allow admin users to manage regions, their providers, and more.\n", "externalDocs": { "description": "Learn more about the Region Module.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/region" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminRegion" } }, { "name": "Reservations", "description": "A reservation is unavailable quantity of an inventory item in a location.\n\nA reservation is created automatically for variants in an order whose `manage_inventory` is enabled. Admin users can also create reservations manually.\n\nThese API routes allow admin users to manage reservations.\n", "externalDocs": { "description": "Learn more about reservations and other inventory concepts.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/inventory/concepts" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminReservation" } }, { "name": "Return Reasons", "description": "A return reason is a possible reason that an item is returned from the customer, such as when returning an item.\n\nThese API routes allow admin users to manage return reasons.\n", "x-associatedSchema": { "$ref": "#/components/schemas/AdminReturnReason" } }, { "name": "Returns", "description": "Admin users create a return when a customer returns an item to them.\n\nReturns can also be created by customers through the storefront, and admins will be able to manage them and make refunds, if necessary. Refunds are made through the [Payment API Routes](#payment)\n\nThese API routes allow admin users to manage returns.\n", "externalDocs": { "description": "Learn more about order returns.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/return" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminReturn" } }, { "name": "Sales Channels", "description": "A sales channel indicates a channel where products can be sold in. For example, a webshop or a mobile app.\n\nThese API routes allow admins to manage sales channels and the products available in them.\n", "externalDocs": { "description": "Learn more about the Sales Channel Module.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/sales-channel" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminSalesChannel" } }, { "name": "Shipping Options", "description": "A shipping option is a way of shipping an item to or from the customer.\n\nShipping options are associated with the fulfillment provider used to handle their fulfillment.\n\nShipping options can be restricted geographically by service zones, and by custom rules, such as an item's weight or the customer's group.\n\nThese API routes allow admins to manage shipping options.\n", "externalDocs": { "description": "Learn more about shipping options.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminShippingOption" } }, { "name": "Shipping Profiles", "description": "A shipping profile defines a type of items that are shipping in a similar manner. For example, digital products may have a `digital` shipping profile.\n\nThese API routes allow admin users to manage shipping profiles.\n", "externalDocs": { "description": "Learn more about shipping profiles and other fulfillment concepts.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/concepts#shipping-profile" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminShippingProfile" } }, { "name": "Stock Locations", "description": "A stock location is where stock-kept items (products) are kept.\n\nStock locations are linked to fulfillment providers used to fulfill items from this location.\n\nA stock location is also link to a fulfillment set, indicating where an item is fulfilled from when an order is placed.\n\nThese API routes allow admin users to manage stock locations and their linked data.\n", "externalDocs": { "description": "Learn more about stock locations.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/stock-location/concepts" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminStockLocation" } }, { "name": "Stores", "description": "A store holds the main configuration and information of your commerce store, such as supported currencies or default sales channel.\n\nBy default, the Medusa application has one default store. There are no API routes to create more stores. Instead, you'd have to handle that customization manually.\n\nThese API routes allow admin users to manage their store.\n", "externalDocs": { "description": "Learn more about the Store Module.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/store" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminStore" } }, { "name": "Tax Rates", "description": "A tax rate is a percentage amount used to calculate the tax amount of each taxable item's price, such as line items or shipping methods.\n\nEach tax region has a default tax rate. You can create tax rates that override the default using tax rules.\n\nThese API routes allow admin users to manage tax rates and their rules.\n", "externalDocs": { "description": "Learn more about tax rates and rules.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminTaxRate" } }, { "name": "Tax Regions", "description": "A tax region is a region's tax settings. It has tax rates and rules. So, after you create a region, you must create a tax region for it.\n\nA tax region can extend settings from a parent tax region.\n\nThese API routes allow admin users to manage tax regions. \n", "externalDocs": { "description": "Learn more about tax regions.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-region" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminTaxRegion" } }, { "name": "Uploads", "description": "Use these API routes to upload files to your Medusa application using the installed file module provider.\n\nYou can upload public files, such as product images, or private files, such as CSV files used to import products.\n", "externalDocs": { "description": "Check out available file module providers.", "url": "https://docs.medusajs.com/v2/resources/architectural-modules/file" } }, { "name": "Users", "description": "A user is an admin user that can authenticate and perform functionalities as an admin user.\n\nAn admin user can invite other users to join their team. Once they accept the invite, they'll become admin users as well.\n\nThese API routes allow admin users to manage their team.\n", "externalDocs": { "description": "Learn more about the User Module.", "url": "https://docs.medusajs.com/v2/resources/commerce-modules/user" }, "x-associatedSchema": { "$ref": "#/components/schemas/AdminUser" } }, { "name": "Workflows Executions", "description": "These API routes allow you to track workflow executions in your Medusa application.\n\nDepending on the workflow engine you use, executions may only be retained for a short while, or only until the Medusa application is restarted.\n", "externalDocs": { "description": "Check out available Workflow Engine Modules", "url": "https://docs.medusajs.com/v2/resources/architectural-modules/workflow-engine" } } ], "paths": { "/admin/api-keys": { "get": { "operationId": "GetApiKeys", "summary": "List API Keys", "description": "Retrieve a list of API keys. The API keys can be filtered by fields such as `id`. The API keys can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "externalDocs": { "url": "#pagination" } } }, { "name": "q", "in": "query", "description": "A search term to search the API keys' searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "The search term." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by an API key's ID." }, { "type": "array", "description": "Filter by API key IDs.", "items": { "type": "string", "title": "id", "description": "The API key ID." } } ] } }, { "name": "title", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "title", "description": "Filter by an API key's title." }, { "type": "array", "description": "Filter by API key titles.", "items": { "type": "string", "title": "title", "description": "The API key title." } } ] } }, { "name": "token", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "token", "description": "Filter by an API key's token." }, { "type": "array", "description": "Filter by API key tokens.", "items": { "type": "string", "title": "token", "description": "The API key token." } } ] } }, { "name": "type", "in": "query", "description": "Filter by the API key's type.", "required": false, "schema": { "type": "string", "enum": [ "secret", "publishable" ] } }, { "name": "created_at", "in": "query", "description": "Filter by the API key's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the API key's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the API key's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the API key's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the API key's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the API key's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "revoked_at", "in": "query", "description": "Filter by the API key's revoke date.", "required": false, "schema": { "type": "object", "description": "Filter by the API key's revoke date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/api-keys' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Api Keys" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned in the list." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total count of items." } } }, { "type": "object", "required": [ "api_keys" ], "properties": { "api_keys": { "type": "array", "description": "The list of API keys.", "items": { "$ref": "#/components/schemas/ApiKeyResponse" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostApiKeys", "summary": "Create Api Key", "description": "Create a secret or publishable API key.\nA secret API key is used for admin authentication.\n\nA publishable API key is used by client applications to set the scope of the request.\n", "x-authenticated": true, "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateApiKey" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/api-keys' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"{value}\",\n \"type\": \"{value}\"\n}'" } ], "tags": [ "Api Keys" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createApiKeysWorkflow" } }, "/admin/api-keys/{id}": { "get": { "operationId": "GetApiKeysId", "summary": "Get API Key", "description": "Retrieve an API key by its ID. You can expand the API key's relations or select the fields that should be returned using the query parameters.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The API key's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/api-keys/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Api Keys" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostApiKeysId", "summary": "Update an API Key", "description": "Update an API key's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The API key's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateApiKey" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/api-keys/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"{value}\"\n}'" } ], "tags": [ "Api Keys" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateApiKeysWorkflow" }, "delete": { "operationId": "DeleteApiKeysId", "summary": "Delete an Api Key", "description": "Delete a publishable or secret API key.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The API key's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/api-keys/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Api Keys" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The API key's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the object that was deleted.", "default": "api_key" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the API key was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteApiKeysWorkflow" } }, "/admin/api-keys/{id}/revoke": { "post": { "operationId": "PostApiKeysIdRevoke", "summary": "Revoke API Key", "description": "Revokes an API key. If the API key is a secret, it can't be used for authentication anymore. If it's publishable, it can't be used by client applications.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The API key's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRevokeApiKey" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/api-keys/{id}/revoke' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Api Keys" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "revokeApiKeysWorkflow" } }, "/admin/api-keys/{id}/sales-channels": { "post": { "operationId": "PostApiKeysIdSalesChannels", "summary": "Manage Sales Channels of a Publishable API Key", "x-sidebar-summary": "Manage Sales Channels", "description": "Manage the sales channels of a publishable API key, either to associate them or remove them from the API key.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The API key's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The sales channels to add or remove from the publishable API key.", "properties": { "add": { "type": "array", "description": "The sales channels to add to the publishable API key.", "items": { "type": "string", "title": "add", "description": "A sales channel's ID." } }, "remove": { "type": "array", "description": "The sales channels to remove from the publishable API key.", "items": { "type": "string", "title": "remove", "description": "A sales channel's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/api-keys/{id}/sales-channels' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Api Keys" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminApiKeyResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "linkSalesChannelsToApiKeyWorkflow" } }, "/admin/campaigns": { "get": { "operationId": "GetCampaigns", "summary": "List Campaigns", "description": "Retrieve a list of campaigns. The campaigns can be filtered by fields such as `id`. The campaigns can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/campaigns' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Campaigns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of campaigns.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items retrieved." }, "offset": { "type": "number", "title": "offset", "description": "The number of its skipped before the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The list of campaigns", "required": [ "campaigns" ], "properties": { "campaigns": { "type": "array", "description": "The list of campaigns.", "items": { "$ref": "#/components/schemas/CampaignResponse" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCampaigns", "summary": "Create Campaign", "description": "Create a campaign.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The campaign's details.", "required": [ "name", "campaign_identifier", "description", "budget", "starts_at", "ends_at" ], "properties": { "name": { "type": "string", "title": "name", "description": "The campaign's name." }, "campaign_identifier": { "type": "string", "title": "campaign_identifier", "description": "The campaign's identifier." }, "description": { "type": "string", "title": "description", "description": "The campaign's description." }, "budget": { "type": "object", "description": "The campaign's budget which, when crossed, ends the campaign.", "required": [ "type", "limit", "currency_code" ], "properties": { "type": { "type": "string", "title": "type", "description": "The budget's type. This can't be edited later. Use `spend` to set a limit on the total amount discounted by the campaign's promotions. Use `usage` to set a limit on the total number of times the campaign's promotions can be used.\n", "enum": [ "spend", "usage" ] }, "limit": { "type": "number", "title": "limit", "description": "The campaign budget's limit." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The campaign budget's currency code. This can't be edited later." } } }, "starts_at": { "type": "string", "title": "starts_at", "description": "The campaign's start date.", "format": "date-time" }, "ends_at": { "type": "string", "title": "ends_at", "description": "The campaign's end date.", "format": "date-time" }, "promotions": { "type": "array", "description": "The campaign's promotions.", "items": { "type": "object", "description": "The promotions to add to the campaign.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "A promotion's ID." } } } } } }, { "type": "object", "description": "The campaign's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The campaign's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/campaigns' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Gunner\",\n \"campaign_identifier\": \"{value}\",\n \"description\": \"{value}\",\n \"starts_at\": \"2024-08-24T00:19:14.144Z\",\n \"ends_at\": \"2024-10-01T06:47:50.133Z\"\n}'" } ], "tags": [ "Campaigns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCampaignResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createCampaignsWorkflow" } }, "/admin/campaigns/{id}": { "get": { "operationId": "GetCampaignsId", "summary": "Get a Campaign", "description": "Retrieve a campaign by its ID. You can expand the campaign's relations or select the fields that should be returned using the query parameters.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The campaign's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/campaigns/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Campaigns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCampaignResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCampaignsId", "summary": "Update a Campaign", "description": "Update a campaign's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The campaign's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The campaign's details.", "required": [ "description", "starts_at", "ends_at" ], "properties": { "name": { "type": "string", "title": "name", "description": "The campaign's name." }, "campaign_identifier": { "type": "string", "title": "campaign_identifier", "description": "The campaign's identifier." }, "description": { "type": "string", "title": "description", "description": "The campaign's description." }, "budget": { "type": "object", "description": "The campaign's budget.", "required": [ "limit" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The campaign budget's limit." } } }, "starts_at": { "type": "string", "title": "starts_at", "description": "The campaign's start date.", "format": "date-time" }, "ends_at": { "type": "string", "title": "ends_at", "description": "The campaign's end date.", "format": "date-time" }, "promotions": { "type": "array", "description": "The campaign's promotions.", "items": { "type": "object", "description": "The promotions to add to the campaign.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "A promotion's ID." } } } } } }, { "type": "object", "description": "The campaign's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The campaign's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/campaigns/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"description\": \"{value}\",\n \"starts_at\": \"2024-08-10T14:44:10.530Z\",\n \"ends_at\": \"2024-07-13T17:45:37.462Z\"\n}'" } ], "tags": [ "Campaigns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCampaignResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateCampaignsWorkflow" }, "delete": { "operationId": "DeleteCampaignsId", "summary": "Delete a Campaign", "description": "Delete a campaign by its ID. This doesn't delete promotions that belong to this campaign.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The campaign's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/campaigns/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Campaigns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The campaign's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the object that was deleted.", "default": "campaign" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the campaign was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteCampaignsWorkflow" } }, "/admin/campaigns/{id}/promotions": { "post": { "operationId": "PostCampaignsIdPromotions", "summary": "Manage the Promotions of a Campaign", "x-sidebar-summary": "Manage Promotions", "description": "Manage the promotions of a campaign, either by adding them or removing them from the campaign.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The campaign's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The promotions to add or remove from the campaign.", "properties": { "add": { "type": "array", "description": "The promotions to add to the campaign.", "items": { "type": "string", "title": "add", "description": "A promotion's ID." } }, "remove": { "type": "array", "description": "The promotions to remove from the campaign.", "items": { "type": "string", "title": "remove", "description": "A promotion's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/campaigns/{id}/promotions' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Campaigns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCampaignResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "addOrRemoveCampaignPromotionsWorkflow" } }, "/admin/claims": { "get": { "operationId": "GetClaims", "summary": "List Claims", "description": "Retrieve a list of claims. The claims can be filtered by fields such as `id`. The claims can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "deleted_at", "in": "query", "description": "The claim's deleted at.", "required": false, "schema": { "type": "object", "description": "The claim's deleted at.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "q", "in": "query", "description": "The claim's q.", "required": false, "schema": { "type": "string", "title": "q", "description": "The claim's q." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "The claim's ID." }, { "type": "array", "description": "The claim's ID.", "items": { "type": "string", "title": "id", "description": "The id's ID." } } ] } }, { "name": "order_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "order_id", "description": "The claim's order id." }, { "type": "array", "description": "The claim's order id.", "items": { "type": "string", "title": "order_id", "description": "The order id's details." } } ] } }, { "name": "status", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "status", "description": "The claim's status." }, { "type": "array", "description": "The claim's status.", "items": { "type": "string", "title": "status", "description": "The status's details." } } ] } }, { "name": "created_at", "in": "query", "description": "The claim's created at.", "required": false, "schema": { "type": "object", "description": "The claim's created at.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "The claim's updated at.", "required": false, "schema": { "type": "object", "description": "The claim's updated at.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/claims' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostClaims", "summary": "Create a Claim", "description": "Create a claim. The claim is still in the request state, and the changes are only applied on the order once the claim is confirmed.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderClaimsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"type\": \"{value}\",\n \"order_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "beginClaimOrderWorkflow" } }, "/admin/claims/{id}": { "get": { "operationId": "GetClaimsId", "summary": "Get a Claim", "description": "Retrieve a claim by its ID. You can expand the claim's relations or select the fields that should be returned using the query parameters.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/claims/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/claims/{id}/cancel": { "post": { "operationId": "PostClaimsIdCancel", "summary": "Cancel a Claim", "description": "Cancel a claim and its associated return.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostCancelClaimReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/cancel' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelOrderClaimWorkflow" } }, "/admin/claims/{id}/claim-items": { "post": { "operationId": "PostClaimsIdClaimItems", "summary": "Add Claim Items to a Claim", "x-sidebar-summary": "Add Claim Items", "description": "Add order items to a claim as claim items. These claim items will have the action `WRITE_OFF_ITEM`.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostClaimItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/claim-items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "orderClaimItemWorkflow" } }, "/admin/claims/{id}/claim-items/{action_id}": { "post": { "operationId": "PostClaimsIdClaimItemsAction_id", "summary": "Update a Claim Item", "description": "Update an order item in a claim by the ID of the item's `WRITE_OFF_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the order item's `WRITE_OFF_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostClaimsItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/claim-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateClaimItemWorkflow" }, "delete": { "operationId": "DeleteClaimsIdClaimItemsAction_id", "summary": "Remove a Claim Item from a Claim", "x-sidebar-summary": "Remove Claim Item", "description": "Remove an order item from a claim by the ID of the item's `WRITE_OFF_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the order item's `WRITE_OFF_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/claim-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemClaimActionWorkflow" } }, "/admin/claims/{id}/inbound/items": { "post": { "operationId": "PostClaimsIdInboundItems", "summary": "Add Inbound Items to a Claim", "x-sidebar-summary": "Add Inbound Items", "description": "Add inbound (or return) items to a claim. These inbound items will have a `RETURN_ITEM` action.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsRequestItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "orderClaimRequestItemReturnWorkflow" } }, "/admin/claims/{id}/inbound/items/{action_id}": { "post": { "operationId": "PostClaimsIdInboundItemsAction_id", "summary": "Update Inbound Items of a Claim", "x-sidebar-summary": "Update Inbound Items", "description": "Update an inbound (or return) item of a claim using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the return item's `RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsRequestItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateRequestItemReturnWorkflow" }, "delete": { "operationId": "DeleteClaimsIdInboundItemsAction_id", "summary": "Remove an Inbound Item from Claim", "x-sidebar-summary": "Remove Inbound Item", "description": "Remove an inbound (or return) item from a claim using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the return item's `RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/inbound/items/{action_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemReturnActionWorkflow" } }, "/admin/claims/{id}/inbound/shipping-method": { "post": { "operationId": "PostClaimsIdInboundShippingMethod", "summary": "Add an Inbound Shipping Method to a Claim", "x-sidebar-summary": "Add Inbound Shipping", "description": "Add an inbound (or return) shipping method to a claim. The inbound shipping method will have a `SHIPPING_ADD` action.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsShippingReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/shipping-method' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"shipping_option_id\": \"{value}\"\n}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createClaimShippingMethodWorkflow" } }, "/admin/claims/{id}/inbound/shipping-method/{action_id}": { "post": { "operationId": "PostClaimsIdInboundShippingMethodAction_id", "summary": "Update Inbound Shipping Method of a Claim", "x-sidebar-summary": "Update Inbound Shipping", "description": "Update the shipping method for returning items in the claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostClaimsShippingActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReturnShippingMethodWorkflow" }, "delete": { "operationId": "DeleteClaimsIdInboundShippingMethodAction_id", "summary": "Remove Inbound Shipping Method from Claim", "x-sidebar-summary": "Remove Inbound Shipping Method", "description": "Remove the shipping method for returning items in the claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/inbound/shipping-method/{action_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeClaimShippingMethodWorkflow" } }, "/admin/claims/{id}/outbound/items": { "post": { "operationId": "PostClaimsIdOutboundItems", "summary": "Add Outbound Items to a Claim", "x-sidebar-summary": "Add Outbound Items", "description": "Add outbound (or new) items to a claim. These outbound items will have an `ITEM_ADD` action.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostClaimsAddItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "orderClaimAddNewItemWorkflow" } }, "/admin/claims/{id}/outbound/items/{action_id}": { "post": { "operationId": "PostClaimsIdOutboundItemsAction_id", "summary": "Update Outbound Item of a Claim", "x-sidebar-summary": "Update Outbound Item", "description": "Update an outbound (or new) item of a claim using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the new claim item's `ITEM_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostClaimsItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateClaimAddItemWorkflow" }, "delete": { "operationId": "DeleteClaimsIdOutboundItemsAction_id", "summary": "Remove an Outbound Item from Claim", "x-sidebar-summary": "Remove Outbound Item", "description": "Remove an outbound (or new) item from a claim using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the new claim item's `ITEM_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/outbound/items/{action_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeAddItemClaimActionWorkflow" } }, "/admin/claims/{id}/outbound/shipping-method": { "post": { "operationId": "PostClaimsIdOutboundShippingMethod", "summary": "Add Outbound Shipping Methods to a Claim", "x-sidebar-summary": "Add Outbound Shipping", "description": "Add an outbound shipping method to a claim. The outbound shipping method will have a `SHIPPING_ADD` action.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostClaimsShippingReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/shipping-method' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"shipping_option_id\": \"{value}\"\n}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createClaimShippingMethodWorkflow" } }, "/admin/claims/{id}/outbound/shipping-method/{action_id}": { "post": { "operationId": "PostClaimsIdOutboundShippingMethodAction_id", "summary": "Update Outbound Shipping Method of a Claim", "x-sidebar-summary": "Update Outbound Shipping", "description": "Update the shipping method for delivering outbound items in a claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostClaimsShippingActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateClaimShippingMethodWorkflow" }, "delete": { "operationId": "DeleteClaimsIdOutboundShippingMethodAction_id", "summary": "Remove Outbound Shipping Method from Claim", "x-sidebar-summary": "Remove Outbound Shipping Method", "description": "Remove the shipping method for delivering outbound items in the claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/outbound/shipping-method/{action_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeClaimShippingMethodWorkflow" } }, "/admin/claims/{id}/request": { "post": { "operationId": "PostClaimsIdRequest", "summary": "Confirm a Claim Request", "x-sidebar-summary": "Confirm Claim", "description": "Confirm a claim request, applying its changes on the associated order.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/claims/{id}/request' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimRequestResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "confirmClaimRequestWorkflow" }, "delete": { "operationId": "DeleteClaimsIdRequest", "summary": "Cancel Claim Request", "description": "Cancel a requested claim.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The claim's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/request' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Claims" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClaimDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelBeginOrderClaimWorkflow" } }, "/admin/collections": { "get": { "operationId": "GetCollections", "summary": "List Collections", "description": "Retrieve a list of collections. The collections can be filtered by fields such as `id`. The collections can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "deleted_at", "in": "query", "description": "Filter by the collection's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the collection's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "q", "in": "query", "description": "Search term to filter the collection's searchable properties by.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the collection's searchable properties by." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a collection's ID." }, { "type": "array", "description": "Filter by collection IDs.", "items": { "type": "string", "title": "id", "description": "The collection's ID." } } ] } }, { "name": "handle", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "handle", "description": "Filter by a collection's handle." }, { "type": "array", "description": "Filter by collection handles.", "items": { "type": "string", "title": "handle", "description": "The collection's handle." } } ] } }, { "name": "title", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "title", "description": "Filter by a collection's title." }, { "type": "array", "description": "Filter by collection titles.", "items": { "type": "string", "title": "title", "description": "The collection's title." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by the collection's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the collection's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the collection's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the collection's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/collections' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCollectionListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCollections", "summary": "Create Collection", "description": "Create a collection.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateCollection" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/collections' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCollectionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createCollectionsWorkflow" } }, "/admin/collections/{id}": { "get": { "operationId": "GetCollectionsId", "summary": "Get a Collection", "description": "Retrieve a collection by its ID. You can expand the collection's relations or select the fields that should be returned using the query parameters.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The collection's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/collections/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCollectionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCollectionsId", "summary": "Update a Collection", "description": "Update a collection's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The collection's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateCollection" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/collections/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {}\n}'" } ], "tags": [ "Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCollectionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateCollectionsWorkflow" }, "delete": { "operationId": "DeleteCollectionsId", "summary": "Delete a Collection", "description": "Delete a product collection.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The collection's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/collections/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCollectionDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteCollectionsWorkflow" } }, "/admin/collections/{id}/products": { "post": { "operationId": "PostCollectionsIdProducts", "summary": "Manage Products of a Collection", "x-sidebar-summary": "Manage Products", "description": "Manage the products of a collection by adding or removing them from the collection.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The collection's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The products to add or remove.", "properties": { "add": { "type": "array", "description": "The products to add to the collection.", "items": { "type": "string", "title": "add", "description": "A product's ID." } }, "remove": { "type": "array", "description": "The products to remove from the collection.", "items": { "type": "string", "title": "remove", "description": "A product's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/collections/{id}/products' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCollectionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchLinkProductsToCollectionWorkflow" } }, "/admin/currencies": { "get": { "operationId": "GetCurrencies", "summary": "List Currencies", "description": "Retrieve a list of currencies. The currencies can be filtered by fields such as `id`. The currencies can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "The search term to filter the currency's searchable properties by.", "required": false, "schema": { "type": "string", "title": "q", "description": "The search term to filter the currency's searchable properties by." } }, { "name": "code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "code", "description": "Filter by a currency code." }, { "type": "array", "description": "Filter by currency codes.", "items": { "type": "string", "title": "code", "description": "A currency code." } } ] } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/currencies' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Currencies" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCurrencyListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/currencies/{code}": { "get": { "operationId": "GetCurrenciesCode", "summary": "Get a Currency", "description": "Retrieve a currency by its code. You can expand the currency's relations or select the fields that should be returned using the query parameters.", "x-authenticated": true, "parameters": [ { "name": "code", "in": "path", "description": "The currency's code.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/currencies/{code}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Currencies" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCurrencyResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/customer-groups": { "get": { "operationId": "GetCustomerGroups", "summary": "List Customer Groups", "description": "Retrieve a list of customer groups. The customer groups can be filtered by fields such as `id`. The customer groups can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the customer group's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the customer group's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a customer group's IDs." }, { "type": "array", "description": "Filter by customer group IDs.", "items": { "type": "string", "title": "id", "description": "A customer group's ID." } } ] } }, { "name": "name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "name", "description": "Filter by a customer group's name." }, { "type": "array", "description": "Filter by customer group names.", "items": { "type": "string", "title": "name", "description": "A customer group's name." } } ] } }, { "name": "customers", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "customers", "description": "Filter by the ID of a customer to retrieve its groups." }, { "type": "array", "description": "Filter by customer IDs to retrieve their groups.", "items": { "type": "string", "title": "customers", "description": "A customer's ID." } }, { "$ref": "#/components/schemas/AdminCustomerInGroupFilters" } ] } }, { "name": "created_by", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "created_by", "description": "Filter by an ID of a user to retrieve the customer groups they created." }, { "type": "array", "description": "Filter by the IDs of users to retrieve the customer groups they created.", "items": { "type": "string", "title": "created_by", "description": "The user's ID." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter the customer group by its creation date.", "required": false, "schema": { "type": "object", "description": "Filter the customer group by its creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter the customer groups by their update date.", "required": false, "schema": { "type": "object", "description": "Filter the customer groups by their update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter the customer groups by their deletion date.", "required": false, "schema": { "type": "object", "description": "Filter the customer groups by their deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/customer-groups' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customer Groups" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of customer groups.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items retrieved." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items" } } }, { "type": "object", "description": "The paginated list of customer groups.", "required": [ "customer_groups" ], "properties": { "customer_groups": { "type": "array", "description": "The list of customer groups.", "items": { "$ref": "#/components/schemas/AdminCustomerGroup" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCustomerGroups", "summary": "Create Customer Group", "description": "Create a customer group.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateCustomerGroup" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customer-groups' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Solon\",\n \"metadata\": {}\n}'" } ], "tags": [ "Customer Groups" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerGroupResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createCustomerGroupsWorkflow" } }, "/admin/customer-groups/{id}": { "get": { "operationId": "GetCustomerGroupsId", "summary": "Get a Customer Group", "description": "Retrieve a customer group by its ID. You can expand the customer group's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer group's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/customer-groups/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customer Groups" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerGroupResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCustomerGroupsId", "summary": "Update a Customer Group", "description": "Update a customer group's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer group's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateCustomerGroup" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customer-groups/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Corbin\",\n \"metadata\": {}\n}'" } ], "tags": [ "Customer Groups" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerGroupResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateCustomerGroupsWorkflow" }, "delete": { "operationId": "DeleteCustomerGroupsId", "summary": "Delete a Customer Group", "description": "Delete a customer group. Customers in the group aren't deleted.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer group's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/customer-groups/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customer Groups" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The customer group's ID." }, "object": { "type": "string", "title": "object", "description": "The customer group's object." }, "deleted": { "type": "boolean", "title": "deleted", "description": "The customer group's deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteCustomerGroupsWorkflow" } }, "/admin/customer-groups/{id}/customers": { "post": { "operationId": "PostCustomerGroupsIdCustomers", "summary": "Manage Customers of a Customer Group", "x-sidebar-summary": "Manage Customers", "description": "Manage the customers of a group to add or remove them from the group.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer group's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The customers to add or remove from the group.", "properties": { "add": { "type": "array", "description": "The customers to add to the group.", "items": { "type": "string", "title": "add", "description": "A customer's ID." } }, "remove": { "type": "array", "description": "The customers to remove from the group.", "items": { "type": "string", "title": "remove", "description": "A customer's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customer-groups/{id}/customers' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customer Groups" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerGroupResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "linkCustomersToCustomerGroupWorkflow" } }, "/admin/customers": { "get": { "operationId": "GetCustomers", "summary": "List Customers", "description": "Retrieve a list of customers. The customers can be filtered by fields such as `id`. The customers can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "groups", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "groups", "description": "Filter by a customer group's ID to retrieve customers that belong to it." }, { "$ref": "#/components/schemas/CustomerGroupInCustomerFilters" }, { "type": "array", "description": "Filter by customer group IDs to retrieve customers that belong to them.", "items": { "type": "string", "title": "groups", "description": "The customer group's ID." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter the customer's searchable properties by.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the customer's searchable properties by." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a customer's ID." }, { "type": "array", "description": "Filter by customer IDs.", "items": { "type": "string", "title": "id", "description": "A customer's ID." } }, { "type": "object", "description": "Filters to apply on the customer ID.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "email", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "email", "description": "Filter by a customer email.", "format": "email" }, { "type": "array", "description": "Filter by customer emails.", "items": { "type": "string", "title": "email", "description": "A customer's email.", "format": "email" } }, { "type": "object", "description": "Filter by conditions on the customer email.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "company_name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "company_name", "description": "Filter by a customer's company name." }, { "type": "array", "description": "Filter by customer company names.", "items": { "type": "string", "title": "company_name", "description": "The customer's company name." } }, { "type": "object", "description": "Filter by conditions on the customer's company name.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "first_name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "first_name", "description": "Filter by a customer's first name." }, { "type": "array", "description": "Filter by customer first names.", "items": { "type": "string", "title": "first_name", "description": "A customer's first name." } }, { "type": "object", "description": "Filter by conditions on the first name.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "last_name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "last_name", "description": "Filter by a customer's last name." }, { "type": "array", "description": "Filter by customer last names.", "items": { "type": "string", "title": "last_name", "description": "A customer's last name." } }, { "type": "object", "description": "Filter by conditions on a customer's last name.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "created_by", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "created_by", "description": "Filter by a user ID to retrieve the customers they created." }, { "type": "array", "description": "Filter by user IDs to retrieve customers they created.", "items": { "type": "string", "title": "created_by", "description": "A user's ID." } }, { "type": "object", "description": "Filter by conditions on the user ID that created the customer.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by the customer's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the customer's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a customer's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a customer's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter a customer by their deletion date.", "required": false, "schema": { "type": "object", "description": "Filter a customer by their deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "has_account", "in": "query", "description": "Filter by whether the customer is registered.", "required": false, "schema": { "type": "boolean", "title": "has_account", "description": "Filter by whether the customer is registered." } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/customers' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of customers.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned in the list." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of customers.", "required": [ "customers" ], "properties": { "customers": { "$ref": "#/components/schemas/AdminCustomer" } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCustomers", "summary": "Create Customer", "description": "Create a customer.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The customer's details.", "required": [ "email", "company_name", "first_name", "last_name", "phone", "metadata" ], "properties": { "email": { "type": "string", "title": "email", "description": "The customer's email.", "format": "email" }, "company_name": { "type": "string", "title": "company_name", "description": "The customer's company name." }, "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "phone": { "type": "string", "title": "phone", "description": "The customer's phone." }, "metadata": { "type": "object", "description": "The customer's metadata." } } }, { "type": "object", "description": "The customer's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The customer's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customers' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"email\": \"Tomas.Toy16@yahoo.com\",\n \"company_name\": \"{value}\",\n \"first_name\": \"{value}\",\n \"last_name\": \"{value}\",\n \"phone\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createCustomersWorkflow" } }, "/admin/customers/{id}": { "get": { "operationId": "GetCustomersId", "summary": "Get a Customer", "description": "Retrieve a customer by its ID. You can expand the customer's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/customers/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCustomersId", "summary": "Update a Customer", "description": "Update a customer's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The customer's details.", "required": [ "email", "company_name", "first_name", "last_name", "phone", "metadata" ], "properties": { "email": { "type": "string", "title": "email", "description": "The customer's email.", "format": "email" }, "company_name": { "type": "string", "title": "company_name", "description": "The customer's company name." }, "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "phone": { "type": "string", "title": "phone", "description": "The customer's phone." }, "metadata": { "type": "object", "description": "The customer's metadata." } } }, { "type": "object", "description": "The customer's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The customer's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customers/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"email\": \"Daren_Rodriguez-Rutherford93@gmail.com\",\n \"company_name\": \"{value}\",\n \"first_name\": \"{value}\",\n \"last_name\": \"{value}\",\n \"phone\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateCustomersWorkflow" }, "delete": { "operationId": "DeleteCustomersId", "summary": "Delete a Customer", "description": "Delete a customer.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/customers/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The customer's ID." }, "object": { "type": "string", "title": "object", "description": "The customer's object." }, "deleted": { "type": "boolean", "title": "deleted", "description": "The customer's deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeCustomerAccountWorkflow" } }, "/admin/customers/{id}/addresses": { "get": { "operationId": "GetCustomersIdAddresses", "summary": "List Addresses", "description": "Retrieve a list of addresses in a customer. The addresses can be filtered by fields like `query`. The addresses can also be paginated.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to apply on the address's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to apply on the address's searchable properties." } }, { "name": "company", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "company", "description": "Filter by a company." }, { "type": "array", "description": "Filter by companies.", "items": { "type": "string", "title": "company", "description": "A company's name." } } ] } }, { "name": "city", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "city", "description": "Filter by a city." }, { "type": "array", "description": "Filter by cities.", "items": { "type": "string", "title": "city", "description": "A city's name." } } ] } }, { "name": "country_code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "country_code", "description": "Filter by a currency code." }, { "type": "array", "description": "Filter by currency codes.", "items": { "type": "string", "title": "country_code", "description": "A currency code." } } ] } }, { "name": "province", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "province", "description": "Filter by a province." }, { "type": "array", "description": "Filter by provinces.", "items": { "type": "string", "title": "province", "description": "A province code." } } ] } }, { "name": "postal_code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "postal_code", "description": "Filter by a postal code." }, { "type": "array", "description": "Filter by postal codes.", "items": { "type": "string", "title": "postal_code", "description": "A postal code." } } ] } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/customers/{id}/addresses' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of customer addresses.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of customer addresses", "required": [ "addresses" ], "properties": { "addresses": { "type": "array", "description": "The customer addresses.", "items": { "$ref": "#/components/schemas/AdminCustomerAddress" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCustomersIdAddresses", "summary": "Add a Customer Address", "x-sidebar-summary": "Add Address", "description": "Add an address to a customer.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The address's details.", "required": [ "address_name", "company", "first_name", "last_name", "address_1", "address_2", "city", "country_code", "province", "postal_code", "phone", "metadata" ], "properties": { "address_name": { "type": "string", "title": "address_name", "description": "The name of the address." }, "is_default_shipping": { "type": "boolean", "title": "is_default_shipping", "description": "Whether this address is used by default for shipping when placing an order." }, "is_default_billing": { "type": "boolean", "title": "is_default_billing", "description": "Whether this address is used by default for billing when placing an order." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code." }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "metadata": { "type": "object", "description": "The address's metadata." } } }, { "type": "object", "description": "The address's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The address's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customers/{id}/addresses' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"address_name\": \"{value}\",\n \"company\": \"{value}\",\n \"first_name\": \"{value}\",\n \"last_name\": \"{value}\",\n \"address_1\": \"{value}\",\n \"address_2\": \"{value}\",\n \"city\": \"{value}\",\n \"country_code\": \"{value}\",\n \"province\": \"{value}\",\n \"postal_code\": \"{value}\",\n \"phone\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createCustomerAddressesWorkflow" } }, "/admin/customers/{id}/addresses/{address_id}": { "get": { "operationId": "GetCustomersIdAddressesAddress_id", "summary": "List Addresses", "description": "Retrieve a list of a customer's addresses. The addresses can be filtered by fields like `company`. The addresses can also be paginated.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "address_id", "in": "path", "description": "The customer's address id.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/customers/{id}/addresses/{address_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerAddressResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostCustomersIdAddressesAddress_id", "summary": "Update a Customer's Address", "x-sidebar-summary": "Update Address", "description": "Update a customer address's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "address_id", "in": "path", "description": "The customer's address id.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The address's details.", "required": [ "address_name", "company", "first_name", "last_name", "address_1", "address_2", "city", "country_code", "province", "postal_code", "phone", "metadata" ], "properties": { "address_name": { "type": "string", "title": "address_name", "description": "The name of the address." }, "is_default_shipping": { "type": "boolean", "title": "is_default_shipping", "description": "Whether this address is used by default for shipping when placing an order." }, "is_default_billing": { "type": "boolean", "title": "is_default_billing", "description": "Whether this address is used by default for billing when placing an order." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line" }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line" }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code." }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "metadata": { "type": "object", "description": "The address's metadata." } } }, { "type": "object", "description": "The address's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The address's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customers/{id}/addresses/{address_id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"address_name\": \"{value}\",\n \"company\": \"{value}\",\n \"first_name\": \"{value}\",\n \"last_name\": \"{value}\",\n \"address_1\": \"{value}\",\n \"address_2\": \"{value}\",\n \"city\": \"{value}\",\n \"country_code\": \"{value}\",\n \"province\": \"{value}\",\n \"postal_code\": \"{value}\",\n \"phone\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateCustomerAddressesWorkflow" }, "delete": { "operationId": "DeleteCustomersIdAddressesAddress_id", "summary": "Remove an Address from Customer", "description": "Remove a customer's address.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "address_id", "in": "path", "description": "The customer address's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/customers/{id}/addresses/{address_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The customer's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object." }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the Customer was deleted." } } }, { "type": "object", "description": "The deletion's details.", "properties": { "parent": { "$ref": "#/components/schemas/AdminCustomer" } } } ], "description": "The deletion's details." } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteCustomerAddressesWorkflow" } }, "/admin/customers/{id}/customer-groups": { "post": { "operationId": "PostCustomersIdCustomerGroups", "x-sidebar-summary": "Manage Customer Groups", "summary": "Manage Customer Groups of Customer", "description": "Manage the customer groups of a customer, adding or removing the customer from those groups.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The customer's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "\"Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.\"", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "SUMMARY", "properties": { "add": { "type": "array", "description": "The customer groups to add the customer to.", "items": { "type": "string", "title": "add", "description": "The ID of the group to add the customer to." } }, "remove": { "type": "array", "description": "The customer groups to remove the customer from.", "items": { "type": "string", "title": "remove", "description": "The ID of the group to remove the customer from." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/customers/{id}/customer-groups' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Customers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCustomerResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "linkCustomerGroupsToCustomerWorkflow" } }, "/admin/draft-orders": { "get": { "operationId": "GetDraftOrders", "summary": "List Draft Orders", "description": "Retrieve a list of draft orders. The draft orders can be filtered by fields such as `id`. The draft orders can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a draft order's ID." }, { "type": "array", "description": "Filter by draft order IDs.", "items": { "type": "string", "title": "id", "description": "A draft order's ID." } }, { "type": "object", "description": "Filter by conditions on the draft order's ID.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "status", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "status", "description": "Filter by a draft order's status." }, { "type": "array", "description": "Filter by draft order statuses.", "items": { "type": "string", "title": "status", "description": "The draft order status." } }, { "type": "object", "description": "Filter by conditions on the status.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } }, { "type": "array", "description": "Filter by exact matches.", "items": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] } } ] }, "$ne": { "oneOf": [ { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." } } ] }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "oneOf": [ { "type": "string", "title": "$in", "description": "Filter by matching value." }, { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter matching values." } } ] } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "oneOf": [ { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } } ] } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by exact matches." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not matching this parameter." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } } ] }, "$gt": { "oneOf": [ { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." } } ] }, "$gte": { "oneOf": [ { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$lt": { "oneOf": [ { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." } } ] }, "$lte": { "oneOf": [ { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, { "type": "array", "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.", "items": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } ] }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "sales_channel_id", "in": "query", "description": "Filter by the associated sales channels to retrieve its draft orders.", "required": false, "schema": { "type": "array", "description": "Filter by the associated sales channels to retrieve its draft orders.", "items": { "type": "string", "title": "sales_channel_id", "description": "A sales channel's ID." } } }, { "name": "region_id", "in": "query", "description": "Filter by region IDs to retrieve their associated draft orders.", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "region_id", "description": "The draft order's region id." }, { "type": "array", "description": "The draft order's region id.", "items": { "type": "string", "title": "region_id", "description": "The region id's details." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter the order's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the order's searchable properties." } }, { "name": "created_at", "in": "query", "description": "Filter by the draft order's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the draft order's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the draft order's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the draft order's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "customer_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "customer_id", "description": "The draft order's customer id." }, { "type": "array", "description": "The draft order's customer id.", "items": { "type": "string", "title": "customer_id", "description": "The customer id's details." } } ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/draft-orders' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Draft Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminDraftOrderListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "getOrdersListWorkflow" }, "post": { "operationId": "PostDraftOrders", "summary": "Create Draft Order", "description": "Create a draft order. This creates an order with the `is_draft_order` property enabled.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The draft order's details.", "required": [ "sales_channel_id", "email", "customer_id", "region_id", "currency_code", "shipping_methods", "metadata" ], "properties": { "status": { "type": "string", "title": "status", "description": "The draft order's status.", "enum": [ "completed" ] }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the associated sales channel." }, "email": { "type": "string", "title": "email", "description": "The email of the draft order's customer.", "format": "email" }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the draft order's customer." }, "billing_address": { "type": "object", "description": "The billing address's details.", "required": [ "first_name", "last_name", "phone", "company", "address_1", "address_2", "city", "country_code", "province", "postal_code", "metadata" ], "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The billing address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The billing address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The billing address's phone." }, "company": { "type": "string", "title": "company", "description": "The billing address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The billing address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The billing address's second line." }, "city": { "type": "string", "title": "city", "description": "The billing address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The billing address's country code." }, "province": { "type": "string", "title": "province", "description": "The billing address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The billing address's postal code." }, "metadata": { "type": "object", "description": "The billing address's metadata." } } }, "shipping_address": { "type": "object", "description": "The draft order's shipping address.", "required": [ "first_name", "last_name", "phone", "company", "address_1", "address_2", "city", "country_code", "province", "postal_code", "metadata" ], "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The shipping address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The shipping address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The shipping address's phone." }, "company": { "type": "string", "title": "company", "description": "The shipping address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The shipping address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The shipping address's second line." }, "city": { "type": "string", "title": "city", "description": "The shipping address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The shipping address's country code." }, "province": { "type": "string", "title": "province", "description": "The shipping address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The shipping address's postal code." }, "metadata": { "type": "object", "description": "The shipping address's metadata." } } }, "items": { "type": "array", "description": "The draft order's items.", "items": { "type": "object", "description": "The item's details.", "required": [ "title", "sku", "barcode", "variant_id", "unit_price", "quantity", "metadata" ], "properties": { "title": { "type": "string", "title": "title", "description": "The item's title." }, "sku": { "type": "string", "title": "sku", "description": "The item's SKU." }, "barcode": { "type": "string", "title": "barcode", "description": "The item's barcode." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated product variant." }, "unit_price": { "oneOf": [ { "type": "string", "title": "unit_price", "description": "The item's unit price." }, { "type": "number", "title": "unit_price", "description": "The item's unit price." }, { "type": "object", "description": "The item's unit price.", "required": [ "value", "precision" ], "properties": { "value": { "type": "string", "title": "value", "description": "The unit price's value." }, "precision": { "type": "number", "title": "precision", "description": "The unit price's rounding precision." } } } ] }, "quantity": { "type": "number", "title": "quantity", "description": "The item's ordered quantity." }, "metadata": { "type": "object", "description": "The item's metadata." } } } }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the associated region." }, "promo_codes": { "type": "array", "description": "The promotion codes applied on the draft order.", "items": { "type": "string", "title": "promo_codes", "description": "A promotion code." } }, "currency_code": { "type": "string", "title": "currency_code", "description": "The draft order's currency code." }, "no_notification_order": { "type": "boolean", "title": "no_notification_order", "description": "Whether to send the customer notifications on order changes." }, "shipping_methods": { "type": "array", "description": "The draft order's shipping methods.", "items": { "type": "object", "description": "The shipping method's details.", "required": [ "name", "option_id", "amount" ], "properties": { "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of an existing shipping method." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "option_id": { "type": "string", "title": "option_id", "description": "The ID of the shipping option this method is created from." }, "data": { "type": "object", "description": "The shipping method's data, useful for fulfillment providers.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts#data-property" } }, "amount": { "oneOf": [ { "type": "string", "title": "amount", "description": "The shipping method's amount." }, { "type": "number", "title": "amount", "description": "The shipping method's amount." }, { "type": "object", "description": "The shipping method's amount.", "required": [ "value", "precision" ], "properties": { "value": { "type": "string", "title": "value", "description": "The amount's value." }, "precision": { "type": "number", "title": "precision", "description": "The amount's rounding precision." } } } ] } } } }, "metadata": { "type": "object", "description": "The draft order's metadata." } } }, { "type": "object", "description": "The draft order's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The draft order's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/draft-orders' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"sales_channel_id\": \"{value}\",\n \"email\": \"Bartholome.Goodwin90@yahoo.com\",\n \"customer_id\": \"{value}\",\n \"region_id\": \"{value}\",\n \"currency_code\": \"{value}\",\n \"shipping_methods\": [\n {\n \"shipping_method_id\": \"{value}\",\n \"order_id\": \"{value}\",\n \"name\": \"Cheyanne\",\n \"option_id\": \"{value}\"\n }\n ],\n \"metadata\": {}\n}'" } ], "tags": [ "Draft Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminDraftOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createOrderWorkflow" } }, "/admin/draft-orders/{id}": { "get": { "operationId": "GetDraftOrdersId", "summary": "Get a Draft Order", "description": "Retrieve a draft order by its ID. You can expand the draft order's relations or select the fields that should be returned using the query parameters.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The draft order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/draft-orders/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Draft Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminDraftOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "getOrderDetailWorkflow" }, "post": { "operationId": "PostDraftOrdersId", "summary": "Update a Draft Order", "description": "Update a draft order's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The draft order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateDraftOrder" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Draft Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminDraftOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateOrderWorkflow" } }, "/admin/exchanges": { "get": { "operationId": "GetExchanges", "summary": "List Exchanges", "description": "Retrieve a list of exchanges. The exchanges can be filtered by fields such as `id`. The exchanges can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "deleted_at", "in": "query", "description": "Filter by an exchange's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by an exchange's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by an exchange ID." }, { "type": "array", "description": "Filter by exchange IDs.", "items": { "type": "string", "title": "id", "description": "An exchange ID." } } ] } }, { "name": "order_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "order_id", "description": "Filter by an exchange's order ID." }, { "type": "array", "description": "Filter by order IDs that the exchanges belong to.", "items": { "type": "string", "title": "order_id", "description": "An order's ID." } } ] } }, { "name": "status", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "status", "description": "Filter by an exchange's status." }, { "type": "array", "description": "Filter by exchange statuses.", "items": { "type": "string", "title": "status", "description": "An exchange status." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by the exchange's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the exchange's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the exchange's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the exchange's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/exchanges' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of exchanges.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of exchanges.", "required": [ "exchanges" ], "properties": { "exchanges": { "type": "array", "description": "The exchange's exchanges.", "items": { "$ref": "#/components/schemas/AdminExchange" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostExchanges", "summary": "Create Exchange", "description": "Create an exchange request. Its changes aren't applied on the order until the exchange is confirmed.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderExchangesReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"order_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "beginExchangeOrderWorkflow" } }, "/admin/exchanges/{id}": { "get": { "operationId": "GetExchangesId", "summary": "Get an Exchange", "description": "Retrieve an exchange by its ID. You can expand the exchange's relations or select the fields that should be returned using query parameters.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/exchanges/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/exchanges/{id}/cancel": { "post": { "operationId": "PostExchangesIdCancel", "summary": "Cancel an Exchange", "description": "Cancel an exchange and its associated return.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostCancelExchangeReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/cancel' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelOrderExchangeWorkflow" } }, "/admin/exchanges/{id}/inbound/items": { "post": { "operationId": "PostExchangesIdInboundItems", "summary": "Add Inbound Items to an Exchange", "x-sidebary-summary": "Add Inbound Items", "description": "Add inbound (or return) items to an exchange. These inbound items will have the action `RETURN_ITEM`.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostExchangesReturnRequestItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "orderExchangeRequestItemReturnWorkflow" } }, "/admin/exchanges/{id}/inbound/items/{action_id}": { "post": { "operationId": "PostExchangesIdInboundItemsAction_id", "summary": "Update an Inbount Item of an Exchange", "x-sidebar-summary": "Update Inbound Item", "description": "Update an inbound (or return) item from an exchange using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the return item's `RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostExchangesRequestItemsReturnActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateRequestItemReturnWorkflow" }, "delete": { "operationId": "DeleteExchangesIdInboundItemsAction_id", "summary": "Remove Inbound Item from Exchange", "x-sidebar-summary": "Remove Inbound Item", "description": "Remove an inbound (or return) item from an exchange using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the return item's `RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/inbound/items/{action_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemReturnActionWorkflow" } }, "/admin/exchanges/{id}/inbound/shipping-method": { "post": { "operationId": "PostExchangesIdInboundShippingMethod", "summary": "Add an Inbound Shipping Method to an Exchange", "x-sidebar-summary": "Add Inbound Shipping", "description": "Add an inbound (or return) shipping method to an exchange. The inbound shipping method will have a `SHIPPING_ADD` action.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsShippingReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/shipping-method' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"shipping_option_id\": \"{value}\"\n}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createExchangeShippingMethodWorkflow" } }, "/admin/exchanges/{id}/inbound/shipping-method/{action_id}": { "post": { "operationId": "PostExchangesIdInboundShippingMethodAction_id", "summary": "Update Inbound Shipping Method of an Exchange", "x-sidebar-summary": "Update Inbound Shipping", "description": "Update the shipping method for returning items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostExchangesShippingActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangePreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReturnShippingMethodWorkflow" }, "delete": { "operationId": "DeleteExchangesIdInboundShippingMethodAction_id", "summary": "Remove Inbound Shipping Method from Exchange", "x-sidebar-summary": "Remove Inbound Shipping Method", "description": "Remove the shipping method for returning items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/inbound/shipping-method/{action_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeReturnShippingMethodWorkflow" } }, "/admin/exchanges/{id}/outbound/items": { "post": { "operationId": "PostExchangesIdOutboundItems", "summary": "Add Outbound Items to Exchange", "description": "Add outbound (or new) items to an exchange. These outbound items will have the action `ITEM_ADD`.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostExchangesAddItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangePreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "orderExchangeAddNewItemWorkflow" } }, "/admin/exchanges/{id}/outbound/items/{action_id}": { "post": { "operationId": "PostExchangesIdOutboundItemsAction_id", "summary": "Update Outbound Item of an Exchange", "x-sidebar-summary": "Update Outbound Item", "description": "Update an outbound (or new) item from an exchange using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the new exchange item's `ITEM_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostExchangesItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangePreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateExchangeAddItemWorkflow" }, "delete": { "operationId": "DeleteExchangesIdOutboundItemsAction_id", "summary": "Remove Outbound Item from Exchange", "x-sidebar-summary": "Remove Outbound Item", "description": "Remove an outbound (or new) item from an exchange using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the new exchange item's `ITEM_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/outbound/items/{action_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangePreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemExchangeActionWorkflow" } }, "/admin/exchanges/{id}/outbound/shipping-method": { "post": { "operationId": "PostExchangesIdOutboundShippingMethod", "summary": "Add Outbound Shipping Method to Exchange", "x-sidebar-summary": "Add Outbound Shipping", "description": "Add an outbound shipping method to an exchange. The outbound shipping method will have a `SHIPPING_ADD` action.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostExchangesShippingReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/shipping-method' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"shipping_option_id\": \"{value}\"\n}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangePreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createExchangeShippingMethodWorkflow" } }, "/admin/exchanges/{id}/outbound/shipping-method/{action_id}": { "post": { "operationId": "PostExchangesIdOutboundShippingMethodAction_id", "summary": "Update Outbound Shipping Method of Exchange", "x-sidebar-summary": "Update Outbound Shipping", "description": "Update the shipping method for delivering outbound items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostExchangesShippingActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangePreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateExchangeShippingMethodWorkflow" }, "delete": { "operationId": "DeleteExchangesIdOutboundShippingMethodAction_id", "summary": "Remove Outbound Shipping Method from Exchange", "x-sidebar-summary": "Remove Outbound Shipping Method", "description": "Remove the shipping method for delivering outbound items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/outbound/shipping-method/{action_id}'\\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangePreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeExchangeShippingMethodWorkflow" } }, "/admin/exchanges/{id}/request": { "post": { "operationId": "PostExchangesIdRequest", "summary": "Confirm an Exchange", "description": "Confirm an exchange request, applying its changes on the associated order.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/request' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeRequestResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "confirmExchangeRequestWorkflow" }, "delete": { "operationId": "DeleteExchangesIdRequest", "summary": "Cancel Exchange Request", "description": "Cancel a requested exchange.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The exchange's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/request' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Exchanges" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExchangeDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelBeginOrderExchangeWorkflow" } }, "/admin/fulfillment-providers": { "get": { "operationId": "GetFulfillmentProviders", "summary": "List Fulfillment Providers", "description": "Retrieve a list of fulfillment providers. The fulfillment providers can be filtered by fields such as `id`. The fulfillment providers can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a fulfillment provider's ID." }, { "type": "array", "description": "Filter by fulfillment provider IDs.", "items": { "type": "string", "title": "id", "description": "A fulfillment provider ID." } } ] } }, { "name": "is_enabled", "in": "query", "description": "Filter by whether the fulfillment provider is enabled.", "required": false, "schema": { "type": "boolean", "title": "is_enabled", "description": "Filter by whether the fulfillment provider is enabled." } }, { "name": "q", "in": "query", "description": "Search term to filter a fulfillment provider's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter a fulfillment provider's searchable properties." } }, { "name": "stock_location_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "stock_location_id", "description": "Filter by associated stock location's ID." }, { "type": "array", "description": "Filter by associated stock location IDs.", "items": { "type": "string", "title": "stock_location_id", "description": "A stock location's ID." } } ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/fulfillment-providers' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Fulfillment Providers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentProviderListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/fulfillment-providers/{id}/options": { "get": { "operationId": "GetFulfillmentProvidersIdOptions", "summary": "List Fulfillment Options", "description": "Retrieve the list of fulfillment options of a fulfillment provider. These options may be retrieved from an integrated third-party service.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment provider's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/fulfillment-providers/{id}/options' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Fulfillment Providers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentProviderOptionsListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/fulfillment-sets/{id}": { "delete": { "operationId": "DeleteFulfillmentSetsId", "summary": "Delete Fulfillment Set", "description": "Delete a fulfillment set.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment set's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/fulfillment-sets/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Fulfillment Sets" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentSetDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteFulfillmentSetsWorkflow" } }, "/admin/fulfillment-sets/{id}/service-zones": { "post": { "operationId": "PostFulfillmentSetsIdServiceZones", "summary": "Add a Service Zone to a Fulfillment Set", "x-sidebar-summary": "Add Service Zone", "description": "Add a service zone to a fulfillment set.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment set's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The service zone's details.", "required": [ "name" ], "properties": { "name": { "type": "string", "title": "name", "description": "The service zone's name." }, "geo_zones": { "type": "array", "description": "The service zone's geo zones.", "items": { "oneOf": [ { "type": "object", "description": "A country geo zone.", "required": [ "metadata", "country_code", "type" ], "properties": { "metadata": { "type": "object", "description": "The geo zone's metadata." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "country" } } }, { "type": "object", "description": "A province geo zone.", "required": [ "metadata", "country_code", "type", "province_code" ], "properties": { "metadata": { "type": "object", "description": "The geo zone's metadata." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "province" }, "province_code": { "type": "string", "title": "province_code", "description": "The geo zone's province code." } } }, { "type": "object", "description": "A city geo zone", "required": [ "metadata", "country_code", "type", "province_code", "city" ], "properties": { "metadata": { "type": "object", "description": "The geo zone's metadata." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "city" }, "province_code": { "type": "string", "title": "province_code", "description": "The geo zone's province code." }, "city": { "type": "string", "title": "city", "description": "The geo zone's city." } } }, { "type": "object", "description": "A ZIP geo zone.", "required": [ "metadata", "country_code", "type", "province_code", "city", "postal_expression" ], "properties": { "metadata": { "type": "object", "description": "The geo zone's metadata." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "zip" }, "province_code": { "type": "string", "title": "province_code", "description": "The geo zone's province code." }, "city": { "type": "string", "title": "city", "description": "The geo zone's city." }, "postal_expression": { "type": "object", "description": "The geo zone's postal expression or ZIP code." } } } ] } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/fulfillment-sets/{id}/service-zones' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Layla\"\n}'" } ], "tags": [ "Fulfillment Sets" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentSetResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createServiceZonesWorkflow" } }, "/admin/fulfillment-sets/{id}/service-zones/{zone_id}": { "get": { "operationId": "GetFulfillmentSetsIdServiceZonesZone_id", "summary": "Get a Service Zone in a Fulfillment Set", "x-sidebar-summary": "Get a Service Zone", "description": "Retrieve a service zone that belongs to a fulfillment set. be paginated.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment set's ID.", "required": true, "schema": { "type": "string" } }, { "name": "zone_id", "in": "path", "description": "The service zone's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Fulfillment Sets" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminServiceZoneResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostFulfillmentSetsIdServiceZonesZone_id", "summary": "Update the Service Zone of a Fulfillment Set", "x-sidebar-summary": "Update Service Zone", "description": "Update the details of a service zone in a fulfillment set.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment set's ID.", "required": true, "schema": { "type": "string" } }, { "name": "zone_id", "in": "path", "description": "The service zone's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The service zone's details.", "properties": { "name": { "type": "string", "title": "name", "description": "The service zone's name." }, "geo_zones": { "type": "array", "description": "The service zone's associated geo zones.", "items": { "oneOf": [ { "type": "object", "description": "A country geo zone.", "required": [ "type", "metadata", "country_code" ], "properties": { "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "country" }, "metadata": { "type": "object", "description": "The geo zone's metadata." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "id": { "type": "string", "title": "id", "description": "The ID of an existing geo zone." } } }, { "type": "object", "description": "A province geo zone.", "required": [ "type", "metadata", "country_code", "province_code" ], "properties": { "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "province" }, "metadata": { "type": "object", "description": "The geo zone's metadata." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "province_code": { "type": "string", "title": "province_code", "description": "The geo zone's province code." }, "id": { "type": "string", "title": "id", "description": "The ID of an existing geo zone." } } }, { "type": "object", "description": "A city geo zone", "required": [ "type", "metadata", "city", "country_code", "province_code" ], "properties": { "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "city" }, "metadata": { "type": "object", "description": "The geo zone's metadata." }, "city": { "type": "string", "title": "city", "description": "The geo zone's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "province_code": { "type": "string", "title": "province_code", "description": "The geo zone's province code." }, "id": { "type": "string", "title": "id", "description": "The ID of an existing geo zone." } } }, { "type": "object", "description": "A ZIP geo zone.", "required": [ "type", "metadata", "city", "country_code", "province_code", "postal_expression" ], "properties": { "type": { "type": "string", "title": "type", "description": "The geo zone's type.", "default": "zip" }, "metadata": { "type": "object", "description": "The geo zone's metadata." }, "city": { "type": "string", "title": "city", "description": "The geo zone's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "province_code": { "type": "string", "title": "province_code", "description": "The geo zone's province code." }, "postal_expression": { "type": "object", "description": "The geo zone's postal expression or ZIP code." }, "id": { "type": "string", "title": "id", "description": "The ID of an existing geo zone." } } } ] } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Elvis\"\n}'" } ], "tags": [ "Fulfillment Sets" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentSetResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateServiceZonesWorkflow" }, "delete": { "operationId": "DeleteFulfillmentSetsIdServiceZonesZone_id", "summary": "Remove a Service Zone from Fulfillment Set", "x-sidebar-summary": "Remove Service Zone", "description": "Remove a service zone that belongs to a fulfillment set.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment set's ID.", "required": true, "schema": { "type": "string" } }, { "name": "zone_id", "in": "path", "description": "The service zone's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Fulfillment Sets" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminServiceZoneDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteServiceZonesWorkflow" } }, "/admin/fulfillments": { "post": { "operationId": "PostFulfillments", "summary": "Create Fulfillment", "description": "Create a fulfillment for an order, return, exchange, and more.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateFulfillment" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/fulfillments' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"location_id\": \"{value}\",\n \"provider_id\": \"{value}\",\n \"delivery_address\": {\n \"first_name\": \"{value}\",\n \"last_name\": \"{value}\",\n \"phone\": \"{value}\",\n \"company\": \"{value}\",\n \"address_1\": \"{value}\",\n \"address_2\": \"{value}\",\n \"city\": \"{value}\",\n \"country_code\": \"{value}\",\n \"province\": \"{value}\",\n \"postal_code\": \"{value}\",\n \"metadata\": {}\n },\n \"items\": [\n {\n \"title\": \"{value}\",\n \"sku\": \"{value}\",\n \"quantity\": 1667318922870784,\n \"barcode\": \"{value}\",\n \"line_item_id\": \"{value}\",\n \"inventory_item_id\": \"{value}\"\n }\n ],\n \"labels\": [\n {\n \"tracking_number\": \"{value}\",\n \"tracking_url\": \"{value}\",\n \"label_url\": \"{value}\"\n }\n ],\n \"order\": {},\n \"order_id\": \"{value}\",\n \"shipping_option_id\": \"{value}\",\n \"data\": {},\n \"packed_at\": \"2024-11-12T18:37:37.122Z\",\n \"shipped_at\": \"2025-04-13T12:39:42.432Z\",\n \"delivered_at\": \"2025-01-29T19:05:57.056Z\",\n \"canceled_at\": \"2025-02-16T02:12:11.763Z\",\n \"metadata\": {}\n}'" } ], "tags": [ "Fulfillments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createFulfillmentWorkflow" } }, "/admin/fulfillments/{id}/cancel": { "post": { "operationId": "PostFulfillmentsIdCancel", "summary": "Cancel a Fulfillment", "description": "Cancel a fulfillment. The fulfillment can't be shipped or delivered.\n\nTo cancel the fulfillment, the `cancelFulfillment` method of the associated fulfillment provider is used.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/fulfillments/{id}/cancel' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Fulfillments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelFulfillmentWorkflow" } }, "/admin/fulfillments/{id}/shipment": { "post": { "operationId": "PostFulfillmentsIdShipment", "summary": "Create a Shipment for a Fulfillment", "x-sidebar-summary": "Create Shipment", "description": "Create a shipment for a fulfillment. The fulfillment must not be shipped or canceled.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The fulfillment's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateShipment" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/fulfillments/{id}/shipment' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"labels\": [\n {\n \"tracking_number\": \"{value}\",\n \"tracking_url\": \"{value}\",\n \"label_url\": \"{value}\"\n }\n ]\n}'" } ], "tags": [ "Fulfillments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFulfillmentResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createShipmentWorkflow" } }, "/admin/inventory-items": { "get": { "operationId": "GetInventoryItems", "summary": "List Inventory Items", "description": "Retrieve a list of inventory items. The inventory items can be filtered by fields such as `id`. The inventory items can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "The inventory item's q.", "required": false, "schema": { "type": "string", "title": "q", "description": "The inventory item's q." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "The inventory item's ID." }, { "type": "array", "description": "The inventory item's ID.", "items": { "type": "string", "title": "id", "description": "The id's ID." } } ] } }, { "name": "sku", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "sku", "description": "The inventory item's sku." }, { "type": "array", "description": "The inventory item's sku.", "items": { "type": "string", "title": "sku", "description": "The sku's details." } } ] } }, { "name": "origin_country", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "origin_country", "description": "The inventory item's origin country." }, { "type": "array", "description": "The inventory item's origin country.", "items": { "type": "string", "title": "origin_country", "description": "The origin country's details." } } ] } }, { "name": "mid_code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "mid_code", "description": "The inventory item's mid code." }, { "type": "array", "description": "The inventory item's mid code.", "items": { "type": "string", "title": "mid_code", "description": "The mid code's details." } } ] } }, { "name": "hs_code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "hs_code", "description": "The inventory item's hs code." }, { "type": "array", "description": "The inventory item's hs code.", "items": { "type": "string", "title": "hs_code", "description": "The hs code's details." } } ] } }, { "name": "material", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "material", "description": "The inventory item's material." }, { "type": "array", "description": "The inventory item's material.", "items": { "type": "string", "title": "material", "description": "The material's details." } } ] } }, { "name": "requires_shipping", "in": "query", "description": "The inventory item's requires shipping.", "required": false, "schema": { "type": "boolean", "title": "requires_shipping", "description": "The inventory item's requires shipping." } }, { "name": "weight", "in": "query", "description": "Filter the inventory item's weight.", "required": false, "schema": { "description": "Filter the inventory item's weight.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } }, { "name": "length", "in": "query", "description": "Filter the inventory item's length.", "required": false, "schema": { "description": "Filter the inventory item's length.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } }, { "name": "height", "in": "query", "description": "Filter by the inventory item's height.", "required": false, "schema": { "description": "Filter by the inventory item's height.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } }, { "name": "width", "in": "query", "description": "Filter by the inventory item's width.", "required": false, "schema": { "description": "Filter by the inventory item's width.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } }, { "name": "location_levels", "in": "query", "description": "Filter by the inventory item's associated location IDs.", "required": false, "schema": { "type": "object", "description": "Filter by the inventory item's associated location IDs.", "properties": { "location_id": { "oneOf": [ { "type": "string", "title": "location_id", "description": "The associated location's ID." }, { "type": "array", "description": "The location IDs to retrieve inventory items associated with them.", "items": { "type": "string", "title": "location_id", "description": "A location's ID." } } ] } }, "required": [ "location_id" ] } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/inventory-items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of inventory items.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of inventory items.", "required": [ "inventory_items" ], "properties": { "inventory_items": { "type": "array", "description": "The inventory item's inventory items.", "items": { "$ref": "#/components/schemas/AdminInventoryItem" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostInventoryItems", "summary": "Create Inventory Item", "description": "Create an inventory item.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateInventoryItem" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/inventory-items' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"sku\": \"{value}\",\n \"hs_code\": \"{value}\",\n \"weight\": 2857134683324416,\n \"length\": 2322256963305472,\n \"height\": 8391220613087232,\n \"width\": 1297863250280448,\n \"origin_country\": \"{value}\",\n \"mid_code\": \"{value}\",\n \"material\": \"{value}\",\n \"title\": \"{value}\",\n \"description\": \"{value}\",\n \"thumbnail\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInventoryItemResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createInventoryItemsWorkflow" } }, "/admin/inventory-items/location-levels/batch": { "post": { "operationId": "PostInventoryItemsLocationLevelsBatch", "summary": "Manage Inventory Levels", "description": "Manage inventory levels to create, update, or delete them.", "x-authenticated": true, "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminBatchInventoryItemsLocationLevels" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/inventory-items/location-levels/batch' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"create\": [\n {\n \"location_id\": \"sloc_123\",\n \"inventory_item_id\": \"iitem_123\",\n \"stocked_quantity\": 100,\n \"incoming_quantity\": 50\n }\n ],\n \"update\": [\n {\n \"location_id\": \"sloc_456\",\n \"inventory_item_id\": \"iitem_456\",\n \"stocked_quantity\": 200,\n \"incoming_quantity\": 75\n }\n ],\n \"delete\": [\n \"iilev_123\"\n ]\n}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminBatchInventoryItemsLocationLevelsResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchInventoryItemLevelsWorkflow" } }, "/admin/inventory-items/{id}": { "get": { "operationId": "GetInventoryItemsId", "summary": "Get a Inventory Item", "description": "Retrieve a inventory item by its ID. You can expand the inventory item's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/inventory-items/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInventoryItemResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostInventoryItemsId", "summary": "Update an Inventory Item", "description": "Update an inventory item's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the inventory item.", "properties": { "sku": { "type": "string", "title": "sku", "description": "The inventory item's SKU." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The inventory item's HS code." }, "weight": { "type": "number", "title": "weight", "description": "The inventory item's weight." }, "length": { "type": "number", "title": "length", "description": "The inventory item's length." }, "height": { "type": "number", "title": "height", "description": "The inventory item's height." }, "width": { "type": "number", "title": "width", "description": "The inventory item's width." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The inventory item's origin country." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The inventory item's MID code." }, "material": { "type": "string", "title": "material", "description": "The inventory item's material." }, "title": { "type": "string", "title": "title", "description": "The inventory item's title." }, "description": { "type": "string", "title": "description", "description": "The inventory item's description." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the inventory item requires shipping." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The URL of an image to be used as the inventory item's thumbnail. You can use the Upload API routes to upload an image and get its URL." }, "metadata": { "type": "object", "description": "The inventory item's metadata. Can be custom data in key-value pairs." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"sku\": \"{value}\",\n \"hs_code\": \"{value}\",\n \"weight\": 8979922215239680,\n \"length\": 667491233693696,\n \"height\": 6328111551479808,\n \"width\": 7175104570064896,\n \"origin_country\": \"{value}\",\n \"mid_code\": \"{value}\",\n \"material\": \"{value}\",\n \"title\": \"{value}\",\n \"description\": \"{value}\",\n \"thumbnail\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInventoryItemResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateInventoryItemsWorkflow" }, "delete": { "operationId": "DeleteInventoryItemsId", "summary": "Delete Inventory Item", "description": "Delete an inventory item.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/inventory-items/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The inventory item's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "inventory_item" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the inventory item was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteInventoryItemWorkflow" } }, "/admin/inventory-items/{id}/location-levels": { "get": { "operationId": "GetInventoryItemsIdLocationLevels", "summary": "List Inventory Levels", "description": "Retrieve a list of inventory levels associated with an inventory item. The inventory levels can be filtered by fields like `location_id`. The inventory levels can also be paginated.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/inventory-items/{id}/location-levels' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of inventory levels.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of inventory levels.", "required": [ "inventory_levels" ], "properties": { "inventory_levels": { "type": "array", "description": "The inventory item's inventory levels.", "items": { "$ref": "#/components/schemas/InventoryLevel" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostInventoryItemsIdLocationLevels", "summary": "Create Inventory Level for Inventory Item", "x-sidebar-summary": "Create Inventory Level", "description": "Create an inventory level for an inventory item.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The inventory level's details.", "required": [ "location_id" ], "properties": { "location_id": { "type": "string", "title": "location_id", "description": "The ID of the associated location." }, "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The inventory level's stocked quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The inventory level's incoming quantity." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"location_id\": \"{value}\"\n}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInventoryItemResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createInventoryLevelsWorkflow" } }, "/admin/inventory-items/{id}/location-levels/batch": { "post": { "operationId": "PostInventoryItemsIdLocationLevelsBatch", "summary": "Manage Inventory Levels of Inventory Item", "x-sidebar-summary": "Manage Inventory Levels", "description": "Manage the inventory levels of an inventory item to create or delete them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminBatchInventoryItemLocationsLevel" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Inventory Items" ], "responses": { "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchInventoryItemLevelsWorkflow" } }, "/admin/inventory-items/{id}/location-levels/{location_id}": { "post": { "operationId": "PostInventoryItemsIdLocationLevelsLocation_id", "summary": "Update an Inventory Level of an Inventory Item", "x-sidebar-summary": "Update Inventory Level", "description": "Updates the details of an inventory item's inventory level using its associated location ID.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "location_id", "in": "path", "description": "The ID of the location associated with the inventory level.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the inventory level.", "properties": { "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The inventory level's stocked quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The inventory level's incoming quantity." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInventoryItemResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateInventoryLevelsWorkflow" }, "delete": { "operationId": "DeleteInventoryItemsIdLocationLevelsLocation_id", "summary": "Remove Inventory Level of Inventory Item", "x-sidebar-summary": "Remove Inventory Level", "description": "Remove the inventory level of an inventory item.\n\nIf the inventory level has reserved quantity greater than `0`, an error is thrown.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "location_id", "in": "path", "description": "The inventory item's location id.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}' \\ -H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Inventory Items" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The inventory item's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object." }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the Inventory Item was deleted." } } }, { "type": "object", "description": "The deletion's details.", "properties": { "parent": { "$ref": "#/components/schemas/AdminInventoryItem" } } } ], "description": "The deletion's details." } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteInventoryLevelsWorkflow" } }, "/admin/invites": { "get": { "operationId": "GetInvites", "summary": "List Invites", "description": "Retrieve a list of invites. The invites can be filtered by fields such as `id`. The invites can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to apply on an invite's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to apply on an invite's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by an invite's ID." }, { "type": "array", "description": "Filter by invite IDs.", "items": { "type": "string", "title": "id", "description": "An invite's ID." } } ] } }, { "name": "email", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "email", "description": "Filter by an invite's email.", "format": "email" }, { "type": "array", "description": "Filter by invite emails.", "items": { "type": "string", "title": "email", "description": "An email.", "format": "email" } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by the invite's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the invite's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the invite's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the invite's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the invite's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the invite's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/invites'" } ], "tags": [ "Invites" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of invites.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items retrieved." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of invites.", "required": [ "invites" ], "properties": { "invites": { "type": "array", "description": "The list of invites.", "items": { "$ref": "#/components/schemas/AdminInvite" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ] }, "post": { "operationId": "PostInvites", "summary": "Create Invite", "description": "Create a invite.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The invite's details.", "required": [ "email" ], "properties": { "email": { "type": "string", "title": "email", "description": "The email of the user to invite.", "format": "email" }, "metadata": { "type": "object", "description": "The invite's metadata. Can be custom data in key-value pairs." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/invites' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"email\": \"Whitney_Schultz@gmail.com\"\n}'" } ], "tags": [ "Invites" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInviteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createInvitesWorkflow", "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ] } }, "/admin/invites/accept": { "post": { "operationId": "PostInvitesAccept", "summary": "Accept Invite", "description": "Accept an invite and create a new user.\nSince the user isn't created yet, the JWT token used in the authorization header is retrieved from the `/auth/user/emailpass/register` API route (or a provider other than `emailpass`). The user can then authenticate using the `/auth/user/emailpass` API route.\n", "x-authenticated": true, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The details of the user to be created.", "properties": { "email": { "type": "string", "title": "email", "description": "The user's email.", "format": "email" }, "first_name": { "type": "string", "title": "first_name", "description": "The user's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The user's last name." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/invites/accept' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"email\": \"Lila_Zemlak@hotmail.com\",\n \"first_name\": \"{value}\",\n \"last_name\": \"{value}\"\n}'" } ], "tags": [ "Invites" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "oneOf": [ { "type": "object", "description": "The created user's details.", "required": [ "user" ], "properties": { "user": { "$ref": "#/components/schemas/AdminUser" } } }, { "type": "object", "description": "An error's details.", "required": [ "message" ], "properties": { "message": { "type": "string", "title": "message", "description": "The error message." } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "acceptInviteWorkflow", "security": [ { "cookie_auth": [] }, { "jwt_token": [] } ] } }, "/admin/invites/{id}": { "get": { "operationId": "GetInvitesId", "summary": "Get an Invite", "description": "Retrieve an invite by its ID. You can expand the invite's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The invite's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/invites/{id}'" } ], "tags": [ "Invites" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInviteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ] }, "delete": { "operationId": "DeleteInvitesId", "summary": "Delete Invite", "description": "Delete an invite.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The invite's ID.", "required": true, "schema": { "type": "string" } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/invites/{id}'" } ], "tags": [ "Invites" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The invite's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "invite" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the invite was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteInvitesWorkflow", "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ] } }, "/admin/invites/{id}/resend": { "post": { "operationId": "PostInvitesIdResend", "summary": "Refresh Invite Token", "description": "Refresh the token of an invite.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The invite's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/invites/{id}/resend'" } ], "tags": [ "Invites" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminInviteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "refreshInviteTokensWorkflow", "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ] } }, "/admin/notifications": { "get": { "operationId": "GetNotifications", "summary": "List Notifications", "description": "Retrieve a list of notifications. The notifications can be filtered by fields such as `id`. The notifications can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to apply on the notification's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to apply on the notification's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a notification ID." }, { "type": "array", "description": "Filter by notification IDs.", "items": { "type": "string", "title": "id", "description": "A notification ID." } } ] } }, { "name": "channel", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "channel", "description": "Filter by a notification channel.", "example": "email" }, { "type": "array", "description": "Filter by notification channels.", "items": { "type": "string", "title": "channel", "description": "A notification channel.", "example": "email" } } ] } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/notifications' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Notifications" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminNotificationListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/notifications/{id}": { "get": { "operationId": "GetNotificationsId", "summary": "Get a Notification", "description": "Retrieve a notification by its ID. You can expand the notification's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The notification's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/notifications/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Notifications" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminNotificationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/order-edits": { "post": { "operationId": "PostOrderEdits", "summary": "Create Order Edit", "description": "Create an order edit.", "x-authenticated": true, "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderEditsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"order_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "beginOrderEditOrderWorkflow" } }, "/admin/order-edits/{id}": { "delete": { "operationId": "DeleteOrderEditsId", "summary": "Cancel Order Edit", "description": "Cancel an order edit.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/order-edits/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The order edit's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "order-edit" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the order edit was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelBeginOrderEditWorkflow" } }, "/admin/order-edits/{id}/confirm": { "post": { "operationId": "PostOrderEditsIdConfirm", "summary": "Confirm Order Edit", "description": "Confirm an order edit request and apply the changes on the order.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/confirm' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "confirmOrderEditRequestWorkflow" } }, "/admin/order-edits/{id}/items": { "post": { "operationId": "PostOrderEditsIdItems", "summary": "Add Items to Order Edit", "x-sidebar-summary": "Add Items", "description": "Add new items to an order edit. These items will have the action `ITEM_ADD`.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderEditsAddItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "orderEditAddNewItemWorkflow" } }, "/admin/order-edits/{id}/items/item/{item_id}": { "post": { "operationId": "PostOrderEditsIdItemsItemItem_id", "summary": "Update Order Item Quantity of Order Edit", "x-sidebar-summary": "Update Item Quantity", "description": "Update an existing order item's quantity of an order edit.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } }, { "name": "item_id", "in": "path", "description": "The order edit's item id.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderEditsUpdateItemQuantityReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/items/item/{item_id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"quantity\": 7564330046324736\n}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "orderEditUpdateItemQuantityWorkflow" } }, "/admin/order-edits/{id}/items/{action_id}": { "post": { "operationId": "PostOrderEditsIdItemsAction_id", "summary": "Update an Item in an Order Edit", "x-sidebar-summary": "Update Item", "description": "Update an added item in the order edit by the ID of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the new item's `ITEM_ADD` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderEditsItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateOrderEditAddItemWorkflow" }, "delete": { "operationId": "DeleteOrderEditsIdItemsAction_id", "summary": "Remove Item from Order Edit", "x-sidebar-summary": "Remove Item", "description": "Remove an added item in the order edit by the ID of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the new item's `ITEM_ADD` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/order-edits/{id}/items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemOrderEditActionWorkflow" } }, "/admin/order-edits/{id}/request": { "post": { "operationId": "PostOrderEditsIdRequest", "summary": "Request Order Edit", "description": "Change the status of an active order edit to requested.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/request' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "requestOrderEditRequestWorkflow" } }, "/admin/order-edits/{id}/shipping-method": { "post": { "operationId": "PostOrderEditsIdShippingMethod", "summary": "Add Shipping Method to Order Edit", "x-sidebar-summary": "Add Shipping Method", "description": "Add a shipping method to an exchange. The shipping method will have a `SHIPPING_ADD` action.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderEditsShippingReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/shipping-method' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"shipping_option_id\": \"{value}\"\n}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createOrderEditShippingMethodWorkflow" } }, "/admin/order-edits/{id}/shipping-method/{action_id}": { "post": { "operationId": "PostOrderEditsIdShippingMethodAction_id", "summary": "Update Shipping Method of an Order Edit", "x-sidebar-summary": "Update Shipping Method", "description": "Update a shipping method in the order edit by the ID of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostOrderEditsShippingActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateOrderEditShippingMethodWorkflow" }, "delete": { "operationId": "DeleteOrderEditsIdShippingMethodAction_id", "summary": "Remove Shipping Method from Order Edit", "x-sidebar-summary": "Remove Shipping Method", "description": "Remove a shipping method in the order edit by the ID of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order edit's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/order-edits/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Order Edits" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderEditPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeOrderEditShippingMethodWorkflow" } }, "/admin/orders": { "get": { "operationId": "GetOrders", "summary": "List Orders", "description": "Retrieve a list of orders. The orders can be filtered by fields such as `id`. The orders can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by an order ID." }, { "type": "array", "description": "Filter by order IDs.", "items": { "type": "string", "title": "id", "description": "An order's ID." } } ] } }, { "name": "status", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "status", "description": "Filter by the order's status." }, { "type": "array", "description": "Filter by order statuses.", "items": { "type": "string", "title": "status", "description": "An order's status." } } ] } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "sales_channel_id", "in": "query", "description": "Filter by sales channel IDs to retrieve the orders associated with them.", "required": false, "schema": { "type": "array", "description": "Filter by sales channel IDs to retrieve the orders associated with them.", "items": { "type": "string", "title": "sales_channel_id", "description": "A sales channel's ID." } } }, { "name": "region_id", "in": "query", "description": "Filter by region IDs to retrieve their associated orders.", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "region_id", "description": "The order's region id." }, { "type": "array", "description": "The order's region id.", "items": { "type": "string", "title": "region_id", "description": "The region id's details." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter the order's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the order's searchable properties." } }, { "name": "created_at", "in": "query", "description": "Filter by the order's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the order's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the order's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the order's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "customer_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "customer_id", "description": "The order's customer id." }, { "type": "array", "description": "The order's customer id.", "items": { "type": "string", "title": "customer_id", "description": "The customer id's details." } } ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/orders' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of orders", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before the returned items." }, "count": { "type": "number", "title": "count", "description": "The total count of items." } } }, { "type": "object", "description": "The paginated list of orders.", "required": [ "orders" ], "properties": { "orders": { "type": "array", "description": "The list of orders.", "items": { "$ref": "#/components/schemas/AdminOrder" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "getOrdersListWorkflow" } }, "/admin/orders/{id}": { "get": { "operationId": "GetOrdersId", "summary": "Get an Order", "description": "Retrieve an order by its ID. You can expand the order's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "The order's ID." }, { "type": "array", "description": "The order's ID.", "items": { "type": "string", "title": "id", "description": "The id's ID." } } ] } }, { "name": "status", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "status", "description": "The order's status." }, { "type": "array", "description": "The order's status.", "items": { "type": "string", "title": "status", "description": "The status's details." } } ] } }, { "name": "version", "in": "query", "description": "The order's version.", "required": false, "schema": { "type": "number", "title": "version", "description": "The order's version." } }, { "name": "created_at", "in": "query", "required": false, "schema": {} }, { "name": "updated_at", "in": "query", "required": false, "schema": {} }, { "name": "deleted_at", "in": "query", "required": false, "schema": {} } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/orders/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "getOrderDetailWorkflow" }, "post": { "operationId": "PostOrdersId", "summary": "Update Order", "description": "Update an order's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateOrder" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateOrderWorkflow" } }, "/admin/orders/{id}/archive": { "post": { "operationId": "PostOrdersIdArchive", "summary": "Archive an Order", "description": "Change the status of an order to archived.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/archive' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"order_id\": \"{value}\"\n}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "archiveOrderWorkflow" } }, "/admin/orders/{id}/cancel": { "post": { "operationId": "PostOrdersIdCancel", "summary": "Cancel Order", "description": "Cancel an order. The cancelation fails if:\n- The order has captured payments.\n\n\n- The order has refund payments.\n\n\n- The order has fulfillments that aren't canceled.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/cancel' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelOrderWorkflow" } }, "/admin/orders/{id}/changes": { "get": { "operationId": "GetOrdersIdChanges", "summary": "List Changes on an Order", "x-sidebar-summary": "List Changes", "description": "Retrieve a list of changes made on an order, including returns, exchanges, etc...\n\nThe changes can be filtered by fields like FILTER FIELDS. The changes can also be paginated.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields." } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/orders/{id}/changes' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderChangesResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/orders/{id}/complete": { "post": { "operationId": "PostOrdersIdComplete", "summary": "Complete Order", "description": "Mark an order as completed.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/complete' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"order_id\": \"{value}\"\n}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "completeOrderWorkflow" } }, "/admin/orders/{id}/fulfillments": { "post": { "operationId": "PostOrdersIdFulfillments", "summary": "Create an Order Fulfillment", "x-sidebar-summary": "Create Fulfillment", "description": "Create a fulfillment for an order. The creation fails if the order is canceled.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The fulfillment's details.", "required": [ "items", "location_id", "metadata" ], "properties": { "items": { "type": "array", "description": "The items to fulfill.", "items": { "type": "object", "description": "An item's details.", "required": [ "id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity to fulfill." } } } }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location to fulfill the items from. If not provided, the location associated with the shipping option of the order's shipping method is used." }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer a notification about the created fulfillment." }, "metadata": { "type": "object", "description": "The order's metadata. Can hold custom key-value pairs." } } }, { "type": "object", "description": "The fulfillment's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The fulfillment's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"items\": [\n {\n \"id\": \"id_YePfQ6PBCBKvmYyreUt2\",\n \"quantity\": 6623610359775232\n }\n ],\n \"location_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createOrderFulfillmentWorkflow" } }, "/admin/orders/{id}/fulfillments/{fulfillment_id}/cancel": { "post": { "operationId": "PostOrdersIdFulfillmentsFulfillment_idCancel", "summary": "Cancel Fulfillment", "description": "Cancel an order's fulfillment. The fulfillment can't be canceled if it's shipped.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fulfillment_id", "in": "path", "description": "The order's fulfillment id.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The cancelation details.", "properties": { "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether the customer should receive a notification about this change." } } }, { "type": "object", "description": "The cancelation details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The cancelation details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/cancel' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelOrderFulfillmentWorkflow" } }, "/admin/orders/{id}/fulfillments/{fulfillment_id}/mark-as-delivered": { "post": { "operationId": "PostOrdersIdFulfillmentsFulfillment_idMarkAsDelivered", "summary": "Mark a Fulfillment as Delivered.", "x-sidebar-summary": "Mark Delivered", "description": "Mark an order's fulfillment as delivered.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fulfillment_id", "in": "path", "description": "The fulfillment's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nIf a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nWithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields." } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/mark-as-delivered' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "markOrderFulfillmentAsDeliveredWorkflow" } }, "/admin/orders/{id}/fulfillments/{fulfillment_id}/shipments": { "post": { "operationId": "PostOrdersIdFulfillmentsFulfillment_idShipments", "summary": "Create Shipment for an Order's Fulfillment", "x-sidebar-summary": "Create Shipment", "description": "Create a shipment for an order's fulfillment.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fulfillment_id", "in": "path", "description": "The fulfillment's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The shipment's details.", "required": [ "items", "metadata" ], "properties": { "items": { "type": "array", "description": "The items to create shipment for.", "items": { "type": "object", "description": "The details of the item to create shipment for.", "required": [ "id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity to ship." } } } }, "labels": { "type": "array", "description": "The labels to create for the shipment.", "items": { "type": "object", "description": "The label's labels.", "required": [ "tracking_number", "tracking_url", "label_url" ], "properties": { "tracking_number": { "type": "string", "title": "tracking_number", "description": "The label's tracking number." }, "tracking_url": { "type": "string", "title": "tracking_url", "description": "The label's tracking url." }, "label_url": { "type": "string", "title": "label_url", "description": "The label's url." } } } }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer a notification about the created shipment." }, "metadata": { "type": "object", "description": "The shipment's metadata. Can hold custom key-value pairs." } } }, { "type": "object", "description": "The shipment's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The shipment's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/shipments' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"items\": [\n {\n \"id\": \"id_3QQtl2VvE73c\",\n \"quantity\": 6772917941567488\n }\n ],\n \"metadata\": {}\n}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createOrderShipmentWorkflow" } }, "/admin/orders/{id}/line-items": { "get": { "operationId": "GetOrdersIdLineItems", "summary": "List Line Items", "description": "Retrieve a list of line items in a order. The line items can be filtered by fields like FILTER FIELDS. The line items can also be paginated.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "The order's ID." }, { "type": "array", "description": "The order's ID.", "items": { "type": "string", "title": "id", "description": "The id's ID." } } ] } }, { "name": "item_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "item_id", "description": "The order's item id." }, { "type": "array", "description": "The order's item id.", "items": { "type": "string", "title": "item_id", "description": "The item id's details." } } ] } }, { "name": "order_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "order_id", "description": "The order's order id." }, { "type": "array", "description": "The order's order id.", "items": { "type": "string", "title": "order_id", "description": "The order id's details." } } ] } }, { "name": "version", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "number", "title": "version", "description": "The order's version." }, { "type": "array", "description": "The order's version.", "items": { "type": "number", "title": "version", "description": "The version's details." } } ] } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "externalDocs": { "url": "#pagination" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/orders/{id}/line-items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "SUMMARY", "required": [ "order_items" ], "properties": { "order_items": { "type": "array", "description": "The order's order items.", "items": { "$ref": "#/components/schemas/AdminOrderItem" } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/orders/{id}/preview": { "get": { "operationId": "GetOrdersIdPreview", "summary": "Get Preview", "description": "Retrieve a preview of an order using its associated change, such as an edit.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/orders/{id}/preview' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/orders/{id}/transfer": { "post": { "operationId": "PostOrdersIdTransfer", "x-sidebar-summary": "Request Transfer", "summary": "Request Order Transfer", "description": "Request an order to be transfered to another customer. The transfer is confirmed by sending a request to the [Accept Order Transfer](https://docs.medusajs.com/api/store#orders_postordersidtransferaccept) Store API route.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTransferOrder" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/transfer' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"customer_id\": \"cus_123\"\n}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "requestOrderTransferWorkflow" } }, "/admin/orders/{id}/transfer/cancel": { "post": { "operationId": "PostOrdersIdTransferCancel", "summary": "Cancel Transfer Request", "x-sidebar-summary": "Cancel Transfer", "description": "Cancel a request to transfer an order to another customer.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The order's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/orders/{id}/transfer/cancel' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Orders" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelOrderTransferRequestWorkflow" } }, "/admin/payment-collections": { "post": { "operationId": "PostPaymentCollections", "summary": "Create Payment Collection", "description": "Create a payment collection.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The payment collection's details.", "required": [ "order_id", "amount" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "amount": { "type": "number", "title": "amount", "description": "The amount to be paid." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/payment-collections' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"order_id\": \"{value}\"\n}'" } ], "tags": [ "Payment Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPaymentCollectionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createOrderPaymentCollectionWorkflow" } }, "/admin/payment-collections/{id}": { "delete": { "operationId": "DeletePaymentCollectionsId", "summary": "Delete a Payment Collection", "description": "Delete a payment collection.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The payment collection's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/payment-collections/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Payment Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminDeletePaymentCollectionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteOrderPaymentCollections" } }, "/admin/payment-collections/{id}/mark-as-paid": { "post": { "operationId": "PostPaymentCollectionsIdMarkAsPaid", "summary": "Mark a Payment Collection as Paid", "x-sidebar-summary": "Mark as Paid", "description": "Mark a payment collection as paid. This creates and authorizes a payment session, then capture its payment, using the manual payment provider.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The payment collection's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The payment details.", "required": [ "order_id" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order associated with the payment collection." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/payment-collections/{id}/mark-as-paid' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"order_id\": \"{value}\"\n}'" } ], "tags": [ "Payment Collections" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPaymentCollectionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "markPaymentCollectionAsPaid" } }, "/admin/payments": { "get": { "operationId": "GetPayments", "summary": "List Payments", "description": "Retrieve a list of payments. The payments can be filtered by fields such as `id`. The payments can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the payment's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the payment's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a payment ID." }, { "type": "array", "description": "Filter by payment IDs.", "items": { "type": "string", "title": "id", "description": "A payment ID." } } ] } }, { "name": "payment_session_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "payment_session_id", "description": "Filter by a payment session ID to retrieve its associated payments." }, { "type": "array", "description": "Filter by payment session IDs to retrieve their associated payments.", "items": { "type": "string", "title": "payment_session_id", "description": "A payment session's ID." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by the payment's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the payment's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the payment's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the payment's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the payment's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the payment's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/payments' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Payments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of payments.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of returned items." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of payments." } } }, { "type": "object", "description": "The paginated list of payments.", "required": [ "payments" ], "properties": { "payments": { "type": "array", "description": "The list of payments.", "items": { "$ref": "#/components/schemas/AdminPayment" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/payments/payment-providers": { "get": { "operationId": "GetPaymentsPaymentProviders", "summary": "List Payment Providers", "description": "Retrieve a list of payment providers. The payment providers can be filtered by fields such as `id`. The payment providers can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": true, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a payment provider's ID." }, { "type": "array", "description": "Filter by payment provider IDs.", "items": { "type": "string", "title": "id", "description": "A payment provider ID." } } ] } }, { "name": "is_enabled", "in": "query", "description": "Filter by whether the payment provider is enabled.", "required": false, "schema": { "type": "boolean", "title": "is_enabled", "description": "Filter by whether the payment provider is enabled." } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/payments/payment-providers' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Payments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The list of payment providers.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of payment providers.", "required": [ "payment_providers" ], "properties": { "payment_providers": { "type": "array", "description": "The list of payment providers.", "items": { "$ref": "#/components/schemas/AdminPaymentProvider" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/payments/{id}": { "get": { "operationId": "GetPaymentsId", "summary": "Get a Payment", "description": "Retrieve a payment by its ID. You can expand the payment's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The payment's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/payments/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Payments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPaymentResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/payments/{id}/capture": { "post": { "operationId": "PostPaymentsIdCapture", "summary": "Capture Payment", "description": "Capture an amount of a payment. This uses the `capturePayment` method of the payment provider associated with the payment's collection.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The payment's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The payment's details.", "properties": { "amount": { "type": "number", "title": "amount", "description": "The amount to capture." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/payments/{id}/capture' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Payments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPaymentResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "capturePaymentWorkflow" } }, "/admin/payments/{id}/refund": { "post": { "operationId": "PostPaymentsIdRefund", "summary": "Refund Payment", "description": "Refund an amount of a payment. This uses the `refundPayment` method of the payment provider associated with the payment's collection.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The payment's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The refund's details.", "properties": { "amount": { "type": "number", "title": "amount", "description": "The amount to refund." }, "refund_reason_id": { "type": "string", "title": "refund_reason_id", "description": "The ID of a refund reason." }, "note": { "type": "string", "title": "note", "description": "A note to attach to the refund." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/payments/{id}/refund' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Payments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPaymentResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "refundPaymentWorkflow" } }, "/admin/price-lists": { "get": { "operationId": "GetPriceLists", "summary": "List Price Lists", "description": "Retrieve a list of price lists. The price lists can be filtered by fields such as `id`. The price lists can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the price list's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the price list's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a price list ID." }, { "type": "array", "description": "Filter by price list IDs.", "items": { "type": "string", "title": "id", "description": "A price list ID." } } ] } }, { "name": "starts_at", "in": "query", "description": "Filter by a price list's start date.", "required": false, "schema": { "type": "object", "description": "Filter by a price list's start date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "ends_at", "in": "query", "description": "Filter by the price list's end date.", "required": false, "schema": { "type": "object", "description": "Filter by the price list's end date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "status", "in": "query", "description": "Filter by the price list's status.", "required": false, "schema": { "type": "array", "description": "Filter by the price list's status.", "items": { "type": "string", "description": "A price list's status.", "enum": [ "active", "draft" ] } } }, { "name": "rules_count", "in": "query", "description": "Filter by the price list's rules count.", "required": false, "schema": { "type": "array", "description": "Filter by the price list's rules count.", "items": { "type": "number", "title": "rules_count", "description": "The price list's rule count." } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/price-lists' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Lists" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPriceListListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostPriceLists", "summary": "Create Price List", "description": "Create a price list.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreatePriceList" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/price-lists' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"{value}\",\n \"description\": \"{value}\",\n \"starts_at\": \"{value}\",\n \"ends_at\": \"{value}\"\n}'" } ], "tags": [ "Price Lists" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPriceListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createPriceListsWorkflow" } }, "/admin/price-lists/{id}": { "get": { "operationId": "GetPriceListsId", "summary": "Get a Price List", "description": "Retrieve a price list by its ID. You can expand the price list's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price list's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/price-lists/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Lists" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPriceListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostPriceListsId", "summary": "Update a Price List", "description": "Update a price list's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price list's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdatePriceList" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/price-lists/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"description\": \"{value}\",\n \"starts_at\": \"{value}\",\n \"ends_at\": \"{value}\"\n}'" } ], "tags": [ "Price Lists" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPriceListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updatePriceListsWorkflow" }, "delete": { "operationId": "DeletePriceListsId", "summary": "Delete a Price List", "description": "Delete a price list.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price list's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/price-lists/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Lists" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPriceListDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deletePriceListsWorkflow" } }, "/admin/price-lists/{id}/prices/batch": { "post": { "operationId": "PostPriceListsIdPricesBatch", "summary": "Manage Prices in Price List", "x-sidebar-summary": "Manage Prices", "description": "Manage the prices of a price list to create, update, or delete them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price list's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The prices to create, update, or delete.", "properties": { "create": { "type": "array", "description": "The prices to create.", "items": { "type": "object", "description": "A price's details.", "required": [ "currency_code", "variant_id", "amount" ], "properties": { "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the variant this price is for." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity that must be available of the associated variant in the cart for this price to apply." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity that must be available of the associated variant in the cart for this price list to apply." }, "rules": { "type": "object", "description": "Key-value pair rules to apply on the price.", "example": { "region_id": 123 } } } } }, "update": { "type": "array", "description": "The prices to update.", "items": { "type": "object", "description": "The properties to update in a price.", "required": [ "id", "variant_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price's ID." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the variant this price is for." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity that must be available of the associated variant in the cart for this price to apply." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity that must be available of the associated variant in the cart for this price list to apply." }, "rules": { "type": "object", "description": "Key-value pair rules to apply on the price.", "example": { "region_id": 123 } } } } }, "delete": { "type": "array", "description": "The prices to delete.", "items": { "type": "string", "title": "delete", "description": "A price's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/price-lists/{id}/prices/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Lists" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPriceListBatchResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchPriceListPricesWorkflow" } }, "/admin/price-lists/{id}/products": { "post": { "operationId": "PostPriceListsIdProducts", "summary": "Remove Products from Price List", "description": "Remove products from a price list.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price list's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminLinkPriceListProducts" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/price-lists/{id}/products' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Lists" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPriceListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchPriceListPricesWorkflow" } }, "/admin/price-preferences": { "get": { "operationId": "GetPricePreferences", "summary": "List Price Preferences", "description": "Retrieve a list of price preferences. The price preferences can be filtered by fields such as `id`. The price preferences can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a price preference ID." }, { "type": "array", "description": "Filter by price preference IDs.", "items": { "type": "string", "title": "id", "description": "A price preference ID." } } ] } }, { "name": "attribute", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "attribute", "description": "Filter by a price preference's attribute." }, { "type": "array", "description": "Filter by price preference attributes.", "items": { "type": "string", "title": "attribute", "description": "A price preference's attribute." } } ] } }, { "name": "value", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "value", "description": "Filter by a price preference's value." }, { "type": "array", "description": "Filter by price preference values.", "items": { "type": "string", "title": "value", "description": "A price preference's value." } } ] } }, { "name": "q", "in": "query", "description": "Search term to apply on the price preference's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to apply on the price preference's searchable properties." } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/price-preferences' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Preferences" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPricePreferenceListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostPricePreferences", "summary": "Create Price Preference", "description": "Create a price preference.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreatePricePreference" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/price-preferences' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Preferences" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPricePreferenceResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createPricePreferencesWorkflow" } }, "/admin/price-preferences/{id}": { "get": { "operationId": "GetPricePreferencesId", "summary": "Get a Price Preference", "description": "Retrieve a price preference by its ID. You can expand the price preference's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price preference's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/price-preferences/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Preferences" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPricePreferenceResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostPricePreferencesId", "summary": "Update a Price Preference", "description": "Update a price preference's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price preference's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdatePricePreference" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/price-preferences/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Preferences" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPricePreferenceResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updatePricePreferencesWorkflow" }, "delete": { "operationId": "DeletePricePreferencesId", "summary": "Delete a Price Preference", "description": "Delete a price preference.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The price preference's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/price-preferences/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Price Preferences" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPricePreferenceDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deletePricePreferencesWorkflow" } }, "/admin/product-categories": { "get": { "operationId": "GetProductCategories", "summary": "List Product Categories", "description": "Retrieve a list of product categories. The product categories can be filtered by fields such as `id`. The product categories can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter on the product category's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter on the product category's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a product category's ID." }, { "type": "array", "description": "Filter by product category IDs.", "items": { "type": "string", "title": "id", "description": "A product category ID." } } ] } }, { "name": "description", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "description", "description": "Filter by the category's description. This performs a full-text search. To do keyword search, use the `q` parameter instead." }, { "type": "array", "description": "Filter by category descriptions. This performs a full-text search. To do keyword search, use the `q` parameter instead.", "items": { "type": "string", "title": "description", "description": "The category's description." } } ] } }, { "name": "handle", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "handle", "description": "Filter by a category's handle." }, { "type": "array", "description": "Filter by category handles.", "items": { "type": "string", "title": "handle", "description": "A category's handle." } } ] } }, { "name": "parent_category_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "parent_category_id", "description": "Filter by a parent category's ID to retrieve its child categories." }, { "type": "array", "description": "Filter by parent category IDs to retrieve their child categories.", "items": { "type": "string", "title": "parent_category_id", "description": "A parent category's ID." } } ] } }, { "name": "include_ancestors_tree", "in": "query", "description": "Whether to include the parent category of each category. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.", "required": false, "schema": { "type": "boolean", "title": "include_ancestors_tree", "description": "Whether to include the parent category of each category. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`." } }, { "name": "include_descendants_tree", "in": "query", "description": "Whether to include the child categories of each category. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.", "required": false, "schema": { "type": "boolean", "title": "include_descendants_tree", "description": "Whether to include the child categories of each category. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`." } }, { "name": "is_internal", "in": "query", "description": "Filter by whether the category is internal.", "required": false, "schema": { "type": "boolean", "title": "is_internal", "description": "Filter by whether the category is internal." } }, { "name": "is_active", "in": "query", "description": "Filter by whether the category is active.", "required": false, "schema": { "type": "boolean", "title": "is_active", "description": "Filter by whether the category is active." } }, { "name": "created_at", "in": "query", "description": "Filter by the category's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the category's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the category's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the category's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the category's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the category's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "name", "description": "The product category's name." }, { "type": "array", "description": "The product category's name.", "items": { "type": "string", "title": "name", "description": "The name's details." } } ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/product-categories' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Categories" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductCategoryListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductCategories", "summary": "Create Product Category", "description": "Create a product category.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateProductCategory" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/product-categories' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Vesta\",\n \"parent_category_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Product Categories" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductCategoryResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createProductCategoriesWorkflow" } }, "/admin/product-categories/{id}": { "get": { "operationId": "GetProductCategoriesId", "summary": "Get a Product Category", "description": "Retrieve a product category by its ID. You can expand the product category's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product category's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "include_ancestors_tree", "in": "query", "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.", "required": false, "schema": { "type": "boolean", "title": "include_ancestors_tree", "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`." } }, { "name": "include_descendants_tree", "in": "query", "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.", "required": false, "schema": { "type": "boolean", "title": "include_descendants_tree", "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`." } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/product-categories/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Categories" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductCategoryResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductCategoriesId", "summary": "Update a Product Category", "description": "Update a product category's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product category's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the product category.", "properties": { "name": { "type": "string", "title": "name", "description": "The product category's name." }, "description": { "type": "string", "title": "description", "description": "The product category's description." }, "handle": { "type": "string", "title": "handle", "description": "The product category's handle. Must be a unique value." }, "is_internal": { "type": "boolean", "title": "is_internal", "description": "Whether the product category is only used for internal purposes and shouldn't be shown the customer." }, "is_active": { "type": "boolean", "title": "is_active", "description": "Whether the product category is active." }, "parent_category_id": { "type": "string", "title": "parent_category_id", "description": "The ID of a parent category." }, "metadata": { "type": "object", "description": "The product category's metadata. Can hold custom key-value pairs." }, "rank": { "type": "number", "title": "rank", "description": "The product category's rank among other categories." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/product-categories/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"parent_category_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Product Categories" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductCategoryResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateProductCategoriesWorkflow" }, "delete": { "operationId": "DeleteProductCategoriesId", "summary": "Delete a Product Category", "description": "Delete a product category. This doesn't deleted products in that category.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product category's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/product-categories/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Categories" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductCategoryDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteProductCategoriesWorkflow" } }, "/admin/product-categories/{id}/products": { "post": { "operationId": "PostProductCategoriesIdProducts", "summary": "Manage Products in Product Category", "x-sidebar-summary": "Manage Products", "description": "Manage products of a category to add or remove them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product category's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. NOTE: This route doesn't allow expanding custom relations.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The products to add or remove from the category.", "properties": { "add": { "type": "array", "description": "The products to add.", "items": { "type": "string", "title": "add", "description": "A product ID." } }, "remove": { "type": "array", "description": "The product to remove.", "items": { "type": "string", "title": "remove", "description": "A product ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/product-categories/{id}/products' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Categories" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductCategoryResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchLinkProductsToCategoryWorkflow" } }, "/admin/product-tags": { "get": { "operationId": "GetProductTags", "summary": "List Product Tags", "description": "Retrieve a list of product tags. The product tags can be filtered by fields such as `id`. The product tags can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the product tag's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the product tag's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a product tag's ID." }, { "type": "array", "description": "Filter by product tag IDs.", "items": { "type": "string", "title": "id", "description": "A product tag's ID." } } ] } }, { "name": "value", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "value", "description": "Filter by a product tag's value." }, { "type": "array", "description": "Filter by product tag values.", "items": { "type": "string", "title": "value", "description": "A tag value." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by the tag's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the tag's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the tag's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the tag's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the tag's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the tag's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/product-tags' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Tags" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTagListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductTags", "summary": "Create Product Tag", "description": "Create a product tag.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateProductTag" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/product-tags' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"value\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Product Tags" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTagResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createProductTagsWorkflow" } }, "/admin/product-tags/{id}": { "get": { "operationId": "GetProductTagsId", "summary": "Get a Product Tag", "description": "Retrieve a product tag by its ID. You can expand the product tag's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product tag's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/product-tags/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Tags" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTagResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductTagsId", "summary": "Update a Product Tag", "description": "Update a product tag's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product tag's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the product tag.", "properties": { "value": { "type": "string", "title": "value", "description": "The product tag's value." }, "metadata": { "type": "object", "description": "The product tag's metadata. Can hold custom key-value pairs." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/product-tags/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {}\n}'" } ], "tags": [ "Product Tags" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTagResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateProductTagsWorkflow" }, "delete": { "operationId": "DeleteProductTagsId", "summary": "Delete a Product Tag", "description": "Delete a product tag. This doesn't delete products using the tag.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product tag's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/product-tags/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Tags" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTagDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteProductTagsWorkflow" } }, "/admin/product-types": { "get": { "operationId": "GetProductTypes", "summary": "List Product Types", "description": "Retrieve a list of product types. The product types can be filtered by fields such as `id`. The product types can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the product type's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the product type's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a product type's ID." }, { "type": "array", "description": "Filter by product type IDs.", "items": { "type": "string", "title": "id", "description": "A product type's ID." } } ] } }, { "name": "value", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "value", "description": "Filter by a type's value." }, { "type": "array", "description": "Filter by values.", "items": { "type": "string", "title": "value", "description": "A type's value." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by the type's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the type's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the type's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the type's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the type's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the type's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/product-types' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Types" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTypeListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductTypes", "summary": "Create Product Type", "description": "Create a product type.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateProductType" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/product-types' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"value\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Product Types" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTypeResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createProductTypesWorkflow" } }, "/admin/product-types/{id}": { "get": { "operationId": "GetProductTypesId", "summary": "Get a Product Type", "description": "Retrieve a product type by its ID. You can expand the product type's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product type's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/product-types/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Types" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTypeResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductTypesId", "summary": "Update a Product Type", "description": "Update a product type's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product type's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the product type.", "properties": { "value": { "type": "string", "title": "value", "description": "The product type's value." }, "metadata": { "type": "object", "description": "The product type's metadata. Can hold custom key-value pairs." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/product-types/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {}\n}'" } ], "tags": [ "Product Types" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTypeResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateProductTypesWorkflow" }, "delete": { "operationId": "DeleteProductTypesId", "summary": "Delete a Product Type", "description": "Delete a product type. This doesn't delete products of this type.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product type's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/product-types/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Types" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductTypeDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteProductTypesWorkflow" } }, "/admin/product-variants": { "get": { "operationId": "GetProductVariants", "summary": "List Product Variants", "description": "Retrieve a list of product variants. The product variants can be filtered by fields such as `id`. The product variants can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the product variant's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the product variant's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a variant's ID." }, { "type": "array", "description": "Filter by variant IDs.", "items": { "type": "string", "title": "id", "description": "A variant's ID." } } ] } }, { "name": "manage_inventory", "in": "query", "description": "Filter by whether a variant's `manage_inventory` is enabled.", "required": false, "schema": { "type": "boolean", "title": "manage_inventory", "description": "Filter by whether a variant's `manage_inventory` is enabled." } }, { "name": "allow_backorder", "in": "query", "description": "Filter by whether backorder is allowed for a variant.", "required": false, "schema": { "type": "boolean", "title": "allow_backorder", "description": "Filter by whether backorder is allowed for a variant." } }, { "name": "created_at", "in": "query", "description": "Filter by the product variant's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the product variant's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the product variant's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the product variant's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the product variant's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the product variant's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/product-variants' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Product Variants" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of product variants.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of product variants.", "required": [ "variants" ], "properties": { "variants": { "type": "array", "description": "The product variant's variants.", "items": { "$ref": "#/components/schemas/AdminProductVariant" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/products": { "get": { "operationId": "GetProducts", "summary": "List Products", "description": "Retrieve a list of products. The products can be filtered by fields such as `id`. The products can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list." } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "price_list_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "price_list_id", "description": "Filter by a price list's ID to retrieve its associated products." }, { "type": "array", "description": "The product's price list id.", "items": { "type": "string", "title": "price_list_id", "description": "Filter by a price list IDs to retrieve their associated products." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter a product's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter a product's searchable properties." } }, { "name": "status", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "status", "description": "Filter by a product status." }, { "type": "array", "description": "Filter by product statuses.", "items": { "type": "string", "enum": [ "draft", "proposed", "published", "rejected" ] } } ] } }, { "name": "sales_channel_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "sales_channel_id", "description": "Filter by a sales channel's ID to retrieve its associated products." }, { "type": "array", "description": "Filter by sales channel IDs to retrieve their associated products.", "items": { "type": "string", "title": "sales_channel_id", "description": "A sales channel's ID." } } ] } }, { "name": "title", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "title", "description": "Filter by a title." }, { "type": "array", "description": "Filter by titles", "items": { "type": "string", "title": "title", "description": "A product title." } } ] } }, { "name": "handle", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "handle", "description": "Filter by a handle." }, { "type": "array", "description": "Filter by handles.", "items": { "type": "string", "title": "handle", "description": "A product handle." } } ] } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a product ID." }, { "type": "array", "description": "Filter by product IDs.", "items": { "type": "string", "title": "id", "description": "A product's ID." } } ] } }, { "name": "is_giftcard", "in": "query", "description": "Filter by whether a product is a gift card.", "required": false, "schema": { "type": "boolean", "title": "is_giftcard", "description": "Filter by whether a product is a gift card." } }, { "name": "tags", "in": "query", "description": "Filter by associated tags to retrieve their products.", "required": false, "schema": { "description": "Filter by associated tags to retrieve their products.", "properties": { "value": { "type": "array", "description": "Filter by tag values.", "items": { "type": "string", "title": "value", "description": "A tag's value." } } } } }, { "name": "type_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "type_id", "description": "Filter by a product type's ID to retrieve its associated products." }, { "type": "array", "description": "Filter by product type IDs to retrieve their associated products.", "items": { "type": "string", "title": "type_id", "description": "A product type's ID." } } ] } }, { "name": "category_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "category_id", "description": "Filter by a product category's ID to retrieve its associated products." }, { "type": "array", "description": "Filter by product category IDs to retrieve their associated products.", "items": { "type": "string", "title": "category_id", "description": "A product category's ID." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by a product's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a product's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a product's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a product's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a product's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a product's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "collection_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "collection_id", "description": "Filter by a product collection ID." }, { "type": "array", "description": "Filter by product collection IDs.", "items": { "type": "string", "title": "collection_id", "description": "A product collection's ID." } } ] } }, { "name": "variants", "in": "query", "description": "Filter the retrieved products' variants.", "required": false, "schema": { "type": "object", "description": "Filter the retrieved products' variants.", "x-schemaName": "AdminProductVariantParams", "properties": { "q": { "type": "string", "title": "q", "description": "Search term to apply on the variant's searchable properties." }, "id": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a variant's ID." }, { "type": "array", "description": "Filter by variant IDs.", "items": { "type": "string", "title": "id", "description": "A variant's ID." } } ] }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "Filter by whether the Medusa application manages the variant's inventory." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Filter by whether the variant can be ordered even if it's out of stock." }, "created_at": { "type": "object", "description": "Filter by the variant's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, "updated_at": { "type": "object", "description": "The variant's updated at.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, "deleted_at": { "type": "object", "description": "The variant's deleted at.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, "limit": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list." }, "offset": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list." }, "order": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." }, "fields": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields." }, "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/products' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of products.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of products.", "required": [ "products" ], "properties": { "products": { "type": "array", "description": "The list of products.", "items": { "type": "object" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProducts", "summary": "Create Product", "description": "Create a product.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/AdminCreateProduct" }, { "type": "object", "description": "The product's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The product's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"{value}\",\n \"options\": [\n {\n \"title\": \"Default option\",\n \"values\": [\"Default option value\"]\n }\n ]\n}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createProductsWorkflow" } }, "/admin/products/batch": { "post": { "operationId": "PostProductsBatch", "summary": "Manage Products", "description": "Manage products to create, update, or delete them.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminBatchProductRequest" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/batch' \\\n-H 'Authorization: Bearer {access_token}' \\\n--data-raw '{\n \"delete\": [\n \"prod_123\"\n ]\n}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminBatchProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchProductsWorkflow" } }, "/admin/products/export": { "post": { "operationId": "PostProductsExport", "summary": "Export Products", "description": "Start a product export process to retrieve a CSV of exported products.\n\nYou'll receive in the response the transaction ID of the workflow generating the CSV file. To check the status of the execution, send a GET request to `/admin/workflows-executions/export-products/:transaction-id`.\nOnce the execution finishes successfully, a notification is created for the export. You can retrieve the notifications using the `/admin/notification` API route to retrieve the file's download URL.\n", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/export' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "202": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminExportProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "exportProductsWorkflow" } }, "/admin/products/import": { "post": { "operationId": "PostProductsImport", "summary": "Create Product Import", "description": "Create a new product import process. The products aren't imported until the import is confirmed with the `/admin/products/:transaction-id/import` API route.", "x-authenticated": true, "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminImportProductRequest" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/import' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "202": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminImportProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "importProductsWorkflow" } }, "/admin/products/import/{transaction_id}/confirm": { "post": { "operationId": "PostProductsImportTransaction_idConfirm", "summary": "Confirm Product Import", "description": "Confirm that a created product import should start importing the products into Medusa.", "x-authenticated": true, "parameters": [ { "name": "transaction_id", "in": "path", "description": "The ID of the transaction returned when the product import was created.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/import/{transaction_id}/confirm' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/products/{id}": { "get": { "operationId": "GetProductsId", "summary": "Get a Product", "description": "Retrieve a product by its ID. You can expand the product's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/products/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductsId", "summary": "Update a Product", "description": "Update a product's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/AdminUpdateProduct" }, { "type": "object", "description": "The properties to update in a product.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The properties to update in a product." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateProductsWorkflow" }, "delete": { "operationId": "DeleteProductsId", "summary": "Delete a Product", "description": "Delete a product.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/products/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteProductsWorkflow" } }, "/admin/products/{id}/options": { "get": { "operationId": "GetProductsIdOptions", "summary": "List a Product's Options", "x-sidebar-summary": "List Options", "description": "Retrieve a list of options of a product. The options can be filtered by fields like `id`. The options can also be paginated.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the product option's searchable fields.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the product option's searchable fields." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by the product option's ID." }, { "type": "array", "description": "Filter by product option IDs.", "items": { "type": "string", "title": "id", "description": "A product option's ID." } } ] } }, { "name": "title", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "title", "description": "Filter by a title." }, { "type": "array", "description": "Filter by titles.", "items": { "type": "string", "title": "title", "description": "An option's title." } } ] } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/products/{id}/options' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of product options.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of product options.", "required": [ "product_options" ], "properties": { "product_options": { "type": "array", "description": "The list of product options.", "items": { "$ref": "#/components/schemas/AdminProductOption" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductsIdOptions", "summary": "Create a Product Option", "x-sidebar-summary": "Create Option", "description": "Create an option for a product.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/AdminCreateProductOption" }, { "type": "object", "description": "The product option's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The product option's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/options' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"{value}\",\n \"values\": [\n \"{value}\"\n ]\n}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createProductOptionsWorkflow" } }, "/admin/products/{id}/options/{option_id}": { "get": { "operationId": "GetProductsIdOptionsOption_id", "summary": "Get a Product's Option", "x-sidebar-summary": "Get Option", "description": "Retrieve a product's option by its ID.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "option_id", "in": "path", "description": "The product's option id.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/products/{id}/options/{option_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductOptionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductsIdOptionsOption_id", "summary": "Update a Product's Option", "x-sidebar-summary": "Update Option", "description": "Update the details of a product option.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "option_id", "in": "path", "description": "The option's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/AdminUpdateProductOption" }, { "type": "object", "description": "The properties to update in the product option.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The properties to update in the product option." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/options/{option_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateProductOptionsWorkflow" }, "delete": { "operationId": "DeleteProductsIdOptionsOption_id", "summary": "Delete an Option from Product", "x-sidebar-summary": "Delete Option", "description": "Delete an option from a product.\n\nValues of this option in the product's variants are removed.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "option_id", "in": "path", "description": "The product option's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/products/{id}/options/{option_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductOptionDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteProductOptionsWorkflow" } }, "/admin/products/{id}/variants": { "get": { "operationId": "GetProductsIdVariants", "summary": "List Variants of a Product", "x-sidebar-summary": "List Variants", "description": "Retrieve a list of variants in a product. The variants can be filtered by fields like FILTER FIELDS. The variants can also be paginated.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the variant's search attributes.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the variant's search attributes." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a variant's ID." }, { "type": "array", "description": "Filter by variant IDs.", "items": { "type": "string", "title": "id", "description": "A variant ID." } } ] } }, { "name": "manage_inventory", "in": "query", "description": "Filter by whether a variant's `manage_inventory` property is enabled.", "required": false, "schema": { "type": "boolean", "title": "manage_inventory", "description": "Filter by whether a variant's `manage_inventory` property is enabled." } }, { "name": "allow_backorder", "in": "query", "description": "Filter by whether backorders are allowed for the variant.", "required": false, "schema": { "type": "boolean", "title": "allow_backorder", "description": "Filter by whether backorders are allowed for the variant." } }, { "name": "created_at", "in": "query", "description": "Filter by the product's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the product's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the product's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the product's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by the product's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by the product's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/products/{id}/variants' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of product variants.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of returned items." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before the returned item." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of product variants.", "required": [ "variants" ], "properties": { "variants": { "type": "array", "description": "The list of product variants.", "items": { "$ref": "#/components/schemas/AdminProductVariant" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductsIdVariants", "summary": "Create a Product Variant", "x-sidebar-summary": "Create Variant", "description": "Create a variant for a product.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/AdminCreateProductVariant" }, { "type": "object", "description": "The product variant's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The product variant's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/variants' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"{value}\",\n \"prices\": []\n}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createProductVariantsWorkflow" } }, "/admin/products/{id}/variants/batch": { "post": { "operationId": "PostProductsIdVariantsBatch", "summary": "Manage Variants in a Product", "x-sidebary-summary": "Manage Variants", "description": "Manage variants in a product to create, update, or delete them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminBatchProductVariantRequest" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminBatchProductVariantResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchProductVariantsWorkflow" } }, "/admin/products/{id}/variants/inventory-items/batch": { "post": { "operationId": "PostProductsIdVariantsInventoryItemsBatch", "summary": "Manage Variants Inventory in a Product", "x-sidebar-summary": "Manage Variants Inventory", "description": "Manage a product's variant's inventoris to associate them with inventory items, update their inventory items, or delete their association with inventory items.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The product variant inventories to manage.", "properties": { "create": { "type": "array", "description": "The The associations to create between product variants and inventory items.", "items": { "type": "object", "description": "The associations to create between a product variant and an inventory item.", "required": [ "variant_id", "inventory_item_id", "required_quantity" ], "properties": { "required_quantity": { "type": "number", "title": "required_quantity", "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item to associate the variant with." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the variant." } } } }, "update": { "type": "array", "description": "The product variants to update their association with inventory items.", "items": { "type": "object", "description": "Update a product variant's association with an inventory item.", "required": [ "variant_id", "inventory_item_id", "required_quantity" ], "properties": { "required_quantity": { "type": "number", "title": "required_quantity", "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item the variant is associated with." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the variant." } } } }, "delete": { "type": "array", "description": "The product variants to delete their association with inventory items.", "items": { "type": "object", "description": "Delete a product variant's association with an inventory item.", "required": [ "variant_id", "inventory_item_id" ], "properties": { "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item associated with the variant." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the variant." } } } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/inventory-items/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductVariantInventoryBatchResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchLinksWorkflow" } }, "/admin/products/{id}/variants/{variant_id}": { "get": { "operationId": "GetProductsIdVariantsVariant_id", "summary": "Get Variant of a Product", "x-sidebar-summary": "Get Variant", "description": "Retrieve a product's variant by its ID.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "variant_id", "in": "path", "description": "The variant's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/products/{id}/variants/{variant_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductVariantResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostProductsIdVariantsVariant_id", "summary": "Update a Product Variant", "x-sidebar-summary": "Update Variant", "description": "Update a variant's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "variant_id", "in": "path", "description": "The product's variant id.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/AdminUpdateProductVariant" }, { "type": "object", "description": "The properties to update in the variant.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The properties to update in the variant." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateProductVariantsWorkflow" }, "delete": { "operationId": "DeleteProductsIdVariantsVariant_id", "summary": "Delete Product Variant", "x-sidebar-summary": "Delete Variant", "description": "Delete a variant of a product.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "variant_id", "in": "path", "description": "The product variant's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/products/{id}/variants/{variant_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductVariantDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteProductVariantsWorkflow" } }, "/admin/products/{id}/variants/{variant_id}/inventory-items": { "post": { "operationId": "PostProductsIdVariantsVariant_idInventoryItems", "summary": "Associate Variant with Inventory Item", "x-sidebar-summary": "Associate Variant's Inventory", "description": "Associate with a product variant an inventory item that manages its inventory details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "variant_id", "in": "path", "description": "The variant's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateVariantInventoryItem" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"required_quantity\": 7390879820021760,\n \"inventory_item_id\": \"{value}\"\n}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductVariantResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createLinksWorkflow" } }, "/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}": { "post": { "operationId": "PostProductsIdVariantsVariant_idInventoryItemsInventory_item_id", "summary": "Update Product Variant's Inventory Details", "x-sidebary-summary": "Update Variant Inventory", "description": "Update the inventory item that manages the inventory details of a product variant.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "variant_id", "in": "path", "description": "The variant's ID.", "required": true, "schema": { "type": "string" } }, { "name": "inventory_item_id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateVariantInventoryItem" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"required_quantity\": 5324804697620480\n}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductVariantResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateLinksWorkflow" }, "delete": { "operationId": "DeleteProductsIdVariantsVariant_idInventoryItemsInventory_item_id", "summary": "Remove Inventory Item Association with Product Variant", "x-sidebar-summary": "Remove Inventory Item", "description": "Remove the association between an inventory item and its product variant.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The product's ID.", "required": true, "schema": { "type": "string" } }, { "name": "variant_id", "in": "path", "description": "The products variant's ID.", "required": true, "schema": { "type": "string" } }, { "name": "inventory_item_id", "in": "path", "description": "The inventory item's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Products" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProductVariantInventoryLinkDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "dismissLinksWorkflow" } }, "/admin/promotions": { "get": { "operationId": "GetPromotions", "summary": "List Promotions", "description": "Retrieve a list of promotions. The promotions can be filtered by fields such as `id`. The promotions can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the promotion's searchable attributes.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the promotion's searchable attributes." } }, { "name": "code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "code", "description": "Filter by a promotion code." }, { "type": "array", "description": "Filter by promotion codes.", "items": { "type": "string", "title": "code", "description": "A promotion code." } } ] } }, { "name": "campaign_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "campaign_id", "description": "Filter by a campaign's ID to retrieve its associated promotions." }, { "type": "array", "description": "Filter by campaign IDs to retrieve their associated promotions.", "items": { "type": "string", "title": "campaign_id", "description": "A campaign's ID." } } ] } }, { "name": "application_method", "in": "query", "description": "Apply filters on the application methods to retrieve the promotions of the matching application methods.", "required": false, "schema": { "type": "object", "description": "Apply filters on the application methods to retrieve the promotions of the matching application methods.", "properties": { "currency_code": { "oneOf": [ { "type": "string", "title": "currency_code", "description": "Filter by a currency code." }, { "type": "array", "description": "Filter by currency codes.", "items": { "type": "string", "title": "currency_code", "description": "A currency code." } } ] } } } }, { "name": "created_at", "in": "query", "description": "Filter by a promotion's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a promotion's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a promotion's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a promotion's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a promotion's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a promotion's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/promotions' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of promotions.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of promotions.", "required": [ "promotions" ], "properties": { "promotions": { "type": "array", "description": "The list of promotions.", "items": { "$ref": "#/components/schemas/AdminPromotion" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostPromotions", "summary": "Create Promotion", "description": "Create a promotion.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The promotion's details.", "required": [ "code", "type", "campaign_id", "application_method" ], "properties": { "code": { "type": "string", "title": "code", "description": "The promotion's code." }, "is_automatic": { "type": "boolean", "title": "is_automatic", "description": "Whether the promotion is applied automatically." }, "type": { "type": "string", "description": "The promotion's type.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/promotion/concepts#what-is-a-promotion" }, "enum": [ "standard", "buyget" ] }, "campaign_id": { "type": "string", "title": "campaign_id", "description": "The ID of the campaign that the promotion belongs to." }, "campaign": { "type": "object", "description": "The details of a campaign to create and add the promotion to it.", "required": [ "name", "campaign_identifier", "description", "budget", "starts_at", "ends_at" ], "properties": { "name": { "type": "string", "title": "name", "description": "The campaign's name." }, "campaign_identifier": { "type": "string", "title": "campaign_identifier", "description": "The campaign's identifier." }, "description": { "type": "string", "title": "description", "description": "The campaign's description." }, "budget": { "type": "object", "description": "The campaign's budget which, when crossed, ends the campaign.", "required": [ "type", "limit", "currency_code" ], "properties": { "type": { "type": "string", "description": "The budget's type. This can't be edited later. Use `spend` to set a limit on the total amount discounted by the campaign's promotions. Use `usage` to set a limit on the total number of times the campaign's promotions can be used.\n", "enum": [ "spend", "usage" ] }, "limit": { "type": "number", "title": "limit", "description": "The budget's limit." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The campaign budget's currency code. This can't be edited later." } } }, "starts_at": { "type": "string", "title": "starts_at", "description": "The campaign's start date.", "format": "date-time" }, "ends_at": { "type": "string", "title": "ends_at", "description": "The campaign's end date.", "format": "date-time" } } }, "application_method": { "type": "object", "description": "The promotion's application method.", "required": [ "description", "value", "currency_code", "max_quantity", "type", "target_type", "apply_to_quantity", "buy_rules_min_quantity" ], "properties": { "description": { "type": "string", "title": "description", "description": "The application method's description." }, "value": { "type": "number", "title": "value", "description": "The discounted amount applied by the associated promotion based on the `type`." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The application method's currency code." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The max quantity allowed in the cart for the associated promotion to be applied." }, "type": { "type": "string", "description": "The type of the application method indicating how the associated promotion is applied.", "enum": [ "fixed", "percentage" ] }, "target_type": { "type": "string", "description": "The target type of the application method indicating whether the associated promotion is applied to the cart's items, shipping methods, or the whole order.", "enum": [ "order", "shipping_methods", "items" ] }, "allocation": { "type": "string", "description": "The allocation value that indicates whether the associated promotion is applied on each item in a cart or split between the items in the cart.", "enum": [ "each", "across" ] }, "target_rules": { "type": "array", "description": "The application method's target rules.", "items": { "type": "object", "description": "A target rule's details.", "required": [ "operator", "description", "attribute", "values" ], "properties": { "operator": { "type": "string", "description": "The operator used to check whether the target rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.", "enum": [ "gte", "lte", "gt", "lt", "eq", "ne", "in" ] }, "description": { "type": "string", "title": "description", "description": "The target rule's description." }, "attribute": { "type": "string", "title": "attribute", "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.", "example": "items.product.id" }, "values": { "oneOf": [ { "type": "string", "title": "values", "description": "The attribute's value.", "example": "prod_123" }, { "type": "array", "description": "The allowed attribute values.", "items": { "type": "string", "title": "values", "description": "An attribute value.", "example": "prod_123" } } ] } } } }, "buy_rules": { "type": "array", "description": "The application method's buy rules.", "items": { "type": "object", "description": "A buy rule's details.", "required": [ "operator", "description", "attribute", "values" ], "properties": { "operator": { "type": "string", "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.", "enum": [ "gte", "lte", "gt", "lt", "eq", "ne", "in" ] }, "description": { "type": "string", "title": "description", "description": "The buy rule's description." }, "attribute": { "type": "string", "title": "attribute", "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.", "example": "items.product.id" }, "values": { "oneOf": [ { "type": "string", "title": "values", "description": "The attribute's value.", "example": "prod_123" }, { "type": "array", "description": "The allowed attribute values.", "items": { "type": "string", "title": "values", "description": "An attribute value.", "example": "prod_123" } } ] } } } }, "apply_to_quantity": { "type": "number", "title": "apply_to_quantity", "description": "The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value f this attribute is `1`." }, "buy_rules_min_quantity": { "type": "number", "title": "buy_rules_min_quantity", "description": "The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `2`." } } }, "rules": { "type": "array", "description": "The promotion's rules.", "items": { "type": "object", "description": "A rule's details.", "required": [ "operator", "description", "attribute", "values" ], "properties": { "operator": { "type": "string", "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.", "enum": [ "gte", "lte", "gt", "lt", "eq", "ne", "in" ] }, "description": { "type": "string", "title": "description", "description": "The rule's description." }, "attribute": { "type": "string", "title": "attribute", "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.", "example": "items.product.id" }, "values": { "oneOf": [ { "type": "string", "title": "values", "description": "The attribute's value.", "example": "prod_123" }, { "type": "array", "description": "The allowed attribute values.", "items": { "type": "string", "title": "values", "description": "An attribute value.", "example": "prod_123" } } ] } } } } } }, { "type": "object", "description": "The promotion's details.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The promotion's details." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/promotions' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"code\": \"{value}\",\n \"type\": \"{value}\",\n \"campaign_id\": \"{value}\",\n \"application_method\": {\n \"description\": \"{value}\",\n \"value\": 1841223411171328,\n \"currency_code\": \"{value}\",\n \"max_quantity\": 2960098049654784,\n \"type\": \"{value}\",\n \"target_type\": \"{value}\",\n \"allocation\": \"{value}\",\n \"target_rules\": [],\n \"buy_rules\": [],\n \"apply_to_quantity\": 708643867590656,\n \"buy_rules_min_quantity\": 3167972149428224\n }\n}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPromotionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createPromotionsWorkflow" } }, "/admin/promotions/rule-attribute-options/{rule_type}": { "get": { "operationId": "GetPromotionsRuleAttributeOptionsRule_type", "summary": "List Rule Attribute Options of a Rule Type", "x-sidebar-summary": "List Potential Rule Attributes", "description": "Retrieve a list of potential rule attributes for the promotion and application method types specified in the query parameters.\nOnly the attributes of the rule type specified in the path parameter are retrieved:\n- If `rule_type` is `rules`, the attributes of the promotion's type are retrieved.\n\n- If `rule_type` is `target-rules`, the target rules' attributes of the application method's type are retrieved.\n\n- If `rule_type` is `buy-rules`, the buy rules' attributes of the application method's type are retrieved.\n", "x-authenticated": true, "parameters": [ { "name": "rule_type", "in": "path", "description": "The rule type.", "required": true, "schema": { "type": "string", "enum": [ "rules", "target-rules", "buy-rules" ] } }, { "name": "promotion_type", "in": "query", "description": "The promotion type to retrieve rules for.", "required": false, "schema": { "type": "string", "title": "promotion_type", "description": "The promotion type to retrieve rules for.", "enum": [ "standard", "buyget" ] } }, { "name": "application_method_type", "in": "query", "description": "The application method type to retrieve rules for.", "required": false, "schema": { "type": "string", "title": "application_method_type", "description": "The application method type to retrieve rules for.", "enum": [ "fixed", "percentage" ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/promotions/rule-attribute-options/{rule_type}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The list of attributes.", "required": [ "attributes" ], "properties": { "attributes": { "type": "array", "description": "The list of attributes.", "items": { "$ref": "#/components/schemas/AdminRuleAttributeOption" } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/promotions/rule-value-options/{rule_type}/{rule_attribute_id}": { "get": { "operationId": "GetPromotionsRuleValueOptionsRule_typeRule_attribute_id", "summary": "List Rule Values Given a Rule Attribute", "x-sidebar-summary": "List Rule Values", "description": "Retrieve all potential values for promotion rules and target and buy rules based on the specified rule attribute and type.\nFor example, if you provide the ID of the `currency_code` rule attribute, and set `rule_type` to `rules`, a list of currencies are retrieved in label-value pairs.\n", "x-authenticated": true, "parameters": [ { "name": "rule_type", "in": "path", "description": "The rule type.", "required": true, "schema": { "type": "string", "enum": [ "rules", "target-rules", "buy-rules" ] } }, { "name": "rule_attribute_id", "in": "path", "description": "The rule attribute's ID.", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "promotion_type", "in": "query", "description": "The promotion type to retrieve rules for.", "required": false, "schema": { "type": "string", "title": "promotion_type", "description": "The promotion type to retrieve rules for.", "enum": [ "standard", "buyget" ] } }, { "name": "application_method_type", "in": "query", "description": "The application method type to retrieve rules for.", "required": false, "schema": { "type": "string", "title": "application_method_type", "description": "The application method type to retrieve rules for.", "enum": [ "fixed", "percentage" ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/promotions/rule-value-options/{rule_type}/{rule_attribute_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The list of rule values.", "required": [ "values" ], "properties": { "values": { "type": "array", "description": "The list of rule values.", "items": { "$ref": "#/components/schemas/AdminRuleValueOption" } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/promotions/{id}": { "get": { "operationId": "GetPromotionsId", "summary": "Get a Promotion", "description": "Retrieve a promotion by its ID. You can expand the promotion's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The promotion's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/promotions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPromotionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostPromotionsId", "summary": "Update a Promotion", "description": "Update a promotion's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The promotion's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The properties to update in a promotion.", "required": [ "campaign_id" ], "properties": { "code": { "type": "string", "title": "code", "description": "The promotion's code." }, "is_automatic": { "type": "boolean", "title": "is_automatic", "description": "Whether the promotion is applied automatically." }, "type": { "type": "string", "description": "The promotion's type.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/promotion/concepts#what-is-a-promotion" }, "enum": [ "standard", "buyget" ] }, "campaign_id": { "type": "string", "title": "campaign_id", "description": "The ID of the campaign that the promotion belongs to." }, "application_method": { "type": "object", "description": "The properties to update in the application method.", "required": [ "id", "description", "max_quantity", "currency_code", "apply_to_quantity", "buy_rules_min_quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The application method's ID." }, "description": { "type": "string", "title": "description", "description": "The application method's description." }, "value": { "type": "number", "title": "value", "description": "The discounted amount applied by the associated promotion based on the `type`." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The max quantity allowed in the cart for the associated promotion to be applied." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The application method's currency code." }, "type": { "type": "string", "description": "The type of the application method indicating how the associated promotion is applied.", "enum": [ "fixed", "percentage" ] }, "target_type": { "type": "string", "description": "The target type of the application method indicating whether the associated promotion is applied to the cart's items, shipping methods, or the whole order.", "enum": [ "order", "shipping_methods", "items" ] }, "allocation": { "type": "string", "description": "The allocation value that indicates whether the associated promotion is applied on each item in a cart or split between the items in the cart.", "enum": [ "each", "across" ] }, "apply_to_quantity": { "type": "number", "title": "apply_to_quantity", "description": "The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value f this attribute is `1`." }, "buy_rules_min_quantity": { "type": "number", "title": "buy_rules_min_quantity", "description": "The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `2`." } } } } }, { "type": "object", "description": "The properties to update in a promotion.", "properties": { "additional_data": { "type": "object", "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter." } } } ], "description": "The properties to update in a promotion." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/promotions/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"campaign_id\": \"{value}\"\n}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPromotionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updatePromotionsWorkflow" }, "delete": { "operationId": "DeletePromotionsId", "summary": "Delete a Promotion", "description": "Delete a promotion.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The promotion's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/promotions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The promotion's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "promotion" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the promotion was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deletePromotionsWorkflow" } }, "/admin/promotions/{id}/buy-rules/batch": { "post": { "operationId": "PostPromotionsIdBuyRulesBatch", "summary": "Manage the Buy Rules of a Promotion", "x-sidebar-summary": "Manage Buy Rules", "description": "Manage the buy rules of a `buyget` promotion to create, update, or delete them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The promotion's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The buy rules to create, update, or delete.", "properties": { "create": { "type": "array", "description": "The buy rules to create.", "items": { "$ref": "#/components/schemas/AdminCreatePromotionRule" } }, "update": { "type": "array", "description": "The buy rules to update.", "items": { "$ref": "#/components/schemas/AdminUpdatePromotionRule" } }, "delete": { "type": "array", "description": "The buy rules to delete.", "items": { "type": "string", "title": "delete", "description": "A buy rule's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/promotions/{id}/buy-rules/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The result of the batch operations.", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "type": "array", "description": "The created buy rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "updated": { "type": "array", "description": "The updated buy rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "deleted": { "type": "object", "description": "The details of the deleted buy rules.", "required": [ "ids", "object", "deleted" ], "properties": { "ids": { "type": "array", "description": "The IDs of the buy rules that were deleted.", "items": { "type": "string", "title": "ids", "description": "A buy rule's ID." } }, "object": { "type": "string", "title": "object", "description": "The name of the object that was deleted.", "default": "promotion-rule" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the buy rules were deleted." } } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchPromotionRulesWorkflow" } }, "/admin/promotions/{id}/rules/batch": { "post": { "operationId": "PostPromotionsIdRulesBatch", "summary": "Manage a Promotion's Rules", "x-sidebar-summary": "Manage Rules", "description": "Manage the rules of a promotion to create, update, or delete them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The promotion's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The rules to create, update, or delete.", "properties": { "create": { "type": "array", "description": "The rules to create.", "items": { "$ref": "#/components/schemas/AdminCreatePromotionRule" } }, "update": { "type": "array", "description": "The rules to update.", "items": { "$ref": "#/components/schemas/AdminUpdatePromotionRule" } }, "delete": { "type": "array", "description": "The rules to delete.", "items": { "type": "string", "title": "delete", "description": "A rule's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/promotions/{id}/rules/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The result of the batch operations.", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "type": "array", "description": "The created rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "updated": { "type": "array", "description": "The updated rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "deleted": { "type": "object", "description": "The details of the deleted buy rules.", "required": [ "ids", "object", "deleted" ], "properties": { "ids": { "type": "array", "description": "The IDs of the deleted rules.", "items": { "type": "string", "title": "ids", "description": "A rule's ID." } }, "object": { "type": "string", "title": "object", "description": "The name of the object that was deleted.", "default": "promotion-rule" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the rules were deleted." } } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchPromotionRulesWorkflow" } }, "/admin/promotions/{id}/target-rules/batch": { "post": { "operationId": "PostPromotionsIdTargetRulesBatch", "summary": "Manage Target Rules of a Promotion", "x-sidebar-summary": "Manage Target Rules", "description": "Manage the target rules of a promotion to create, update, or delete them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The promotion's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The target rules to create, update, or delete.", "properties": { "create": { "type": "array", "description": "The target rules to create.", "items": { "$ref": "#/components/schemas/AdminCreatePromotionRule" } }, "update": { "type": "array", "description": "The target rules to update.", "items": { "$ref": "#/components/schemas/AdminUpdatePromotionRule" } }, "delete": { "type": "array", "description": "The target rules to delete.", "items": { "type": "string", "title": "delete", "description": "A target rule's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/promotions/{id}/target-rules/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The result of the batch operations.", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "type": "array", "description": "The created target rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "updated": { "type": "array", "description": "The updated target rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "deleted": { "type": "object", "description": "The details of the deleted target rules.", "required": [ "ids", "object", "deleted" ], "properties": { "ids": { "type": "array", "description": "The IDs of deleted target rules.", "items": { "type": "string", "title": "ids", "description": "A target rule's ID." } }, "object": { "type": "string", "title": "object", "description": "The name of the object that was deleted.", "default": "promotion-rule" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the target rules were deleted." } } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchPromotionRulesWorkflow" } }, "/admin/promotions/{id}/{rule_type}": { "get": { "operationId": "GetPromotionsIdRule_type", "summary": "List Rules of a Promotion", "x-sidebar-summary": "List Rules", "description": "Retrieve a list of rules in a promotion. The type of rules retrieved depend on the value of the `rule_type` path parameter:\n- If `rule_type` is `rules`, the promotion's rules are retrivied. - If `rule_type` is `target-rules`, the target rules of the promotion's application method are retrieved.\n\n- If `rule_type` is `buy-rules`, the buy rules of the promotion's application method are retrieved.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The promotion's ID.", "required": true, "schema": { "type": "string" } }, { "name": "rule_type", "in": "path", "description": "The type of rules to retrieve.", "required": true, "schema": { "type": "string", "enum": [ "rules", "target-rules", "buy-rules" ] } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/promotions/{id}/{rule_type}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Promotions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The list of promotion rules.", "required": [ "rules" ], "properties": { "rules": { "type": "array", "description": "The list of promotion rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/refund-reasons": { "get": { "operationId": "GetRefundReasons", "summary": "List Refund Reasons", "description": "Retrieve a list of refund reasons. The refund reasons can be filtered by fields such as `id`. The refund reasons can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a refund reason's ID." }, { "type": "array", "description": "Filter by refund reason IDs.", "items": { "type": "string", "title": "id", "description": "A refund reason ID." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter the refund reason's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the refund reason's searchable properties." } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/refund-reasons' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Refund Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of refund reasons.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of refund reasons.", "required": [ "refund_reasons" ], "properties": { "refund_reasons": { "type": "array", "description": "The refund reason's refund reasons.", "items": { "$ref": "#/components/schemas/AdminRefundReason" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostRefundReasons", "summary": "Create Refund Reason", "description": "Create a refund reason.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateRefundReason" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/refund-reasons' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"label\": \"{value}\",\n \"description\": \"{value}\"\n}'" } ], "tags": [ "Refund Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefundReasonResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createRefundReasonsWorkflow" } }, "/admin/refund-reasons/{id}": { "get": { "operationId": "GetRefundReasonsId", "summary": "Get a Refund Reason", "description": "Retrieve a refund reason by its ID. You can expand the refund reason's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The refund reason's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/refund-reasons/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Refund Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefundReasonResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostRefundReasonsId", "summary": "Update a Refund Reason", "description": "Update a refund reason's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The refund reason's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the refund reason.", "properties": { "label": { "type": "string", "title": "label", "description": "The refund reason's label." }, "description": { "type": "string", "title": "description", "description": "The refund reason's description." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/refund-reasons/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"description\": \"{value}\"\n}'" } ], "tags": [ "Refund Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefundReasonResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateRefundReasonsWorkflow" }, "delete": { "operationId": "DeleteRefundReasonsId", "summary": "Delete a Refund Reason", "description": "Delete a refund reason.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The refund reason's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/refund-reasons/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Refund Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The refund reason's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "refund_reason" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the refund reason was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteRefundReasonsWorkflow" } }, "/admin/regions": { "get": { "operationId": "GetRegions", "summary": "List Regions", "description": "Retrieve a list of regions. The regions can be filtered by fields such as `id`. The regions can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the region's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the region's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a region's ID." }, { "type": "array", "description": "Filter by region IDs.", "items": { "type": "string", "title": "id", "description": "A region's ID." } } ] } }, { "name": "name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "name", "description": "Filter by a region's name." }, { "type": "array", "description": "Filter by region names.", "items": { "type": "string", "title": "name", "description": "A region's name." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by a region's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a region's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a region's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a region's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a region's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a region's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "currency_code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "currency_code", "description": "The region's currency code." }, { "type": "array", "description": "The region's currency code.", "items": { "type": "string", "title": "currency_code", "description": "The currency code's details." } } ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/regions' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of regions.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of regions.", "required": [ "regions" ], "properties": { "regions": { "type": "array", "description": "The list of regions.", "items": { "$ref": "#/components/schemas/AdminRegion" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostRegions", "summary": "Create Region", "description": "Create a region.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateRegion" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/regions' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Heloise\",\n \"currency_code\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRegionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createRegionsWorkflow" } }, "/admin/regions/{id}": { "get": { "operationId": "GetRegionsId", "summary": "Get a Region", "description": "Retrieve a region by its ID. You can expand the region's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The region's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/regions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRegionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostRegionsId", "summary": "Update a Region", "description": "Update a region's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The region's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The propeties to update in the region.", "properties": { "name": { "type": "string", "title": "name", "description": "The region's name." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The region's currency code." }, "countries": { "type": "array", "description": "The region's countries.", "items": { "type": "string", "title": "countries", "description": "A country code." } }, "automatic_taxes": { "type": "boolean", "title": "automatic_taxes", "description": "Whether taxes are calculated automatically for carts in the region." }, "payment_providers": { "type": "array", "description": "The payment providers enabled in the region.", "items": { "type": "string", "title": "payment_providers", "description": "A payment provider's ID." } }, "metadata": { "type": "object", "description": "The region's metadata. Can hold custom key-value pairs." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the prices in the region are tax inclusive." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/regions/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {}\n}'" } ], "tags": [ "Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRegionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateRegionsWorkflow" }, "delete": { "operationId": "DeleteRegionsId", "summary": "Delete a Region", "description": "Delete a region.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The region's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/regions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The region's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "region" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the region was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteRegionsWorkflow" } }, "/admin/reservations": { "get": { "operationId": "GetReservations", "summary": "List Reservations", "description": "Retrieve a list of reservations. The reservations can be filtered by fields such as `id`. The reservations can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "location_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "location_id", "description": "Filter by a location's ID to retrieve its associated reservations." }, { "type": "array", "description": "Filter by location IDs to retrieve its associated reservations.", "items": { "type": "string", "title": "location_id", "description": "A location ID." } } ] } }, { "name": "inventory_item_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "inventory_item_id", "description": "Filter by an inventory item's ID to retrieve its associated reservations." }, { "type": "array", "description": "Filter by inventory item IDs to retrieve its associated reservations.", "items": { "type": "string", "title": "inventory_item_id", "description": "An inventory item ID" } } ] } }, { "name": "line_item_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "line_item_id", "description": "Filter by a line item's ID to retrieve its associated reservations." }, { "type": "array", "description": "Filter by line item IDs to retrieve its associated reservations.", "items": { "type": "string", "title": "line_item_id", "description": "A line item ID" } } ] } }, { "name": "created_by", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "created_by", "description": "Filter by the ID of a user to retrieve the reservations they created." }, { "type": "array", "description": "Filter by user IDs to retrieve the reservations they created.", "items": { "type": "string", "title": "created_by", "description": "A user's ID." } } ] } }, { "name": "description", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "description", "description": "Filter by a reservation's description. This filter applies a full-text match. To search by keywords, use the `q` query parameter instead." }, { "type": "object", "description": "Apply filters on the reservation's description.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by a reservation's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a reservation's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a reservation's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a reservation's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a reservation's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a reservation's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/reservations' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Reservations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of reservations.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of reservations.", "required": [ "reservations" ], "properties": { "reservations": { "type": "array", "description": "The list of reservations.", "items": { "$ref": "#/components/schemas/AdminReservation" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostReservations", "summary": "Create Reservation", "description": "Create a reservation.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateReservation" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/reservations' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"line_item_id\": \"{value}\",\n \"location_id\": \"{value}\",\n \"inventory_item_id\": \"{value}\",\n \"quantity\": 3268935814217728,\n \"description\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Reservations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReservationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createReservationsWorkflow" } }, "/admin/reservations/{id}": { "get": { "operationId": "GetReservationsId", "summary": "Get a Reservation", "description": "Retrieve a reservation by its ID. You can expand the reservation's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The reservation's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/reservations/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Reservations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReservationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostReservationsId", "summary": "Update a Reservation", "description": "Update a reservation's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The reservation's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the reservation.", "properties": { "location_id": { "type": "string", "title": "location_id", "description": "The ID of the associated location." }, "quantity": { "type": "number", "title": "quantity", "description": "The reserved quantity." }, "description": { "type": "string", "title": "description", "description": "The reservation's description." }, "metadata": { "type": "object", "description": "The reservation's metadata. Can hold custom key-value pairs." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/reservations/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"description\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Reservations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReservationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReservationsWorkflow" }, "delete": { "operationId": "DeleteReservationsId", "summary": "Delete a Reservation", "description": "Delete a reservation.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The reservation's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/reservations/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Reservations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The reservation's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "reservation" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the reservation was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteReservationsWorkflow" } }, "/admin/return-reasons": { "get": { "operationId": "GetReturnReasons", "summary": "List Return Reasons", "description": "Retrieve a list of return reasons. The return reasons can be filtered by fields such as `id`. The return reasons can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the return reason's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the return reason's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a return reason ID." }, { "type": "array", "description": "Filter by return reason IDs.", "items": { "type": "string", "title": "id", "description": "A return reason ID." } } ] } }, { "name": "value", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "value", "description": "Filter by a return reason's value." }, { "type": "array", "description": "Filter by return reason values.", "items": { "type": "string", "title": "value", "description": "A return reason value." } } ] } }, { "name": "label", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "label", "description": "Filter by a return reason's label." }, { "type": "array", "description": "Filter by return reason labels.", "items": { "type": "string", "title": "label", "description": "A return reason label." } } ] } }, { "name": "description", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "description", "description": "Filter by a description. This filter looks for an exact match of the return reason's description. To search by a term or keywords, use the `q` query parameter instead." }, { "type": "array", "description": "Filter by descriptions. This filter looks for an exact match of the return reason's description. To search by a term or keywords, use the `q` query parameter instead.", "items": { "type": "string", "title": "description", "description": "A return reason's description." } } ] } }, { "name": "parent_return_reason_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "parent_return_reason_id", "description": "Filter by a return reason's ID to retrieve its child return reasons." }, { "type": "array", "description": "Filter by return reason IDs to retrieve their child return reasons.", "items": { "type": "string", "title": "parent_return_reason_id", "description": "The return reason's ID." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by a return reason's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a return reason's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a return reason's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a return reason's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a return reason's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a return reason's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/return-reasons' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Return Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnReasonListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostReturnReasons", "summary": "Create Return Reason", "description": "Create a return reason.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateReturnReason" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/return-reasons' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"value\": \"{value}\",\n \"label\": \"{value}\"\n}'" } ], "tags": [ "Return Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnReasonResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createReturnReasonsWorkflow" } }, "/admin/return-reasons/{id}": { "get": { "operationId": "GetReturnReasonsId", "summary": "Get a Return Reason", "description": "Retrieve a return reason by its ID. You can expand the return reason's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return reason's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/return-reasons/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Return Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnReasonResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostReturnReasonsId", "summary": "Update a Return Reason", "description": "Update a return reason's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return reason's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateReturnReason" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/return-reasons/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Return Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnReasonResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReturnReasonsWorkflow" }, "delete": { "operationId": "DeleteReturnReasonsId", "summary": "Delete a Return Reason", "description": "Delete a return reason.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return reason's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/return-reasons/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Return Reasons" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnReasonDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteReturnReasonsWorkflow" } }, "/admin/returns": { "get": { "operationId": "GetReturns", "summary": "List Returns", "description": "Retrieve a list of returns. The returns can be filtered by fields such as `id`. The returns can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a return's ID." }, { "type": "array", "description": "Filter by return IDs.", "items": { "type": "string", "title": "id", "description": "A return ID." } } ] } }, { "name": "status", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "status", "description": "Filter by a return status." }, { "type": "array", "description": "Filter by return statuses.", "items": { "type": "string", "title": "status", "description": "A return status." } } ] } }, { "name": "$and", "in": "query", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "sales_channel_id", "in": "query", "description": "Filter by sales channel IDs to retrieve their associated returns.", "required": false, "schema": { "type": "array", "description": "Filter by sales channel IDs to retrieve their associated returns.", "items": { "type": "string", "title": "sales_channel_id", "description": "A sales channel's ID." } } }, { "name": "region_id", "in": "query", "description": "Filter by region IDs to retrieve their associated returns.", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "region_id", "description": "The return's region id." }, { "type": "array", "description": "The return's region id.", "items": { "type": "string", "title": "region_id", "description": "The region id's details." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter the return's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the return's searchable properties." } }, { "name": "created_at", "in": "query", "description": "Filter by the return's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by the return's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by the return's update date.", "required": false, "schema": { "type": "object", "description": "Filter by the return's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "An exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value not to match." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by multiple exact matches.", "items": { "type": "string", "title": "$eq", "description": "The value to match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "The value to match." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "The value to not match" } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching this parameter" }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the values of this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The value to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching those in this parameter.", "items": { "type": "string", "title": "$not", "description": "The values to not match." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "The values to match." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "The values to match." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "The values to match." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "customer_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "customer_id", "description": "The return's customer id." }, { "type": "array", "description": "The return's customer id.", "items": { "type": "string", "title": "customer_id", "description": "The customer id's details." } } ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/returns' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of returns.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of returns.", "required": [ "returns" ], "properties": { "returns": { "type": "array", "description": "The return's returns.", "items": { "$ref": "#/components/schemas/AdminReturn" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostReturns", "summary": "Create Return", "description": "Create a return. The return can later be requested or confirmed.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"order_id\": \"{value}\",\n \"items\": [\n {\n \"id\": \"id_7DO5H2LbSN3p7IzB\",\n \"quantity\": 1357590174892032,\n \"reason_id\": \"{value}\",\n \"note\": \"{value}\"\n }\n ],\n \"return_shipping\": {\n \"option_id\": \"{value}\",\n \"price\": 5112171463704576\n },\n \"internal_note\": \"{value}\",\n \"location_id\": \"{value}\"\n}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "beginReturnOrderWorkflow" } }, "/admin/returns/{id}": { "get": { "operationId": "GetReturnsId", "summary": "Get a Return", "description": "Retrieve a return by its ID. You can expand the return's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/returns/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostReturnsId", "summary": "Update a Return", "description": "Update a return's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsReturnReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {}\n}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReturnWorkflow" } }, "/admin/returns/{id}/cancel": { "post": { "operationId": "PostReturnsIdCancel", "summary": "Cancel a return.", "description": "Cancel a return.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/cancel' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostCancelReturnReqSchema" } } } }, "x-workflow": "cancelReturnWorkflow" } }, "/admin/returns/{id}/dismiss-items": { "post": { "operationId": "PostReturnsIdDismissItems", "summary": "Add Damaged Items to Return", "x-sidebar-summary": "Add Damaged Items", "description": "Add damaged items, whose quantity is to be dismissed, to a return. These items will have the action `RECEIVE_DAMAGED_RETURN_ITEM`.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsReceiveItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/dismiss-items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "dismissItemReturnRequestWorkflow" } }, "/admin/returns/{id}/dismiss-items/{action_id}": { "post": { "operationId": "PostReturnsIdDismissItemsAction_id", "summary": "Update Damaged Item of Return", "x-sidebar-summary": "Update Damaged Item", "description": "Update a damaged item, whose quantity is to be dismissed, in the return by the ID of the item's `RECEIVE_DAMAGED_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsDismissItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/dismiss-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReceiveItemReturnRequestWorkflow" }, "delete": { "operationId": "DeleteReturnsIdDismissItemsAction_id", "summary": "Remove Damaged Item from Return", "x-sidebar-summary": "Remove Damaged Item", "description": "Remove a damaged item, whose quantity is to be dismissed, in the return by the ID of the item's `RECEIVE_DAMAGED_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/dismiss-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemReturnActionWorkflow" } }, "/admin/returns/{id}/receive": { "post": { "operationId": "PostReturnsIdReceive", "summary": "Start Return Receival", "description": "Start a return receival process to be later confirmed using the `/admin/returns/:id/receive/confirm` API route.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReceiveReturnsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"return_id\": \"{value}\",\n \"items\": [\n {\n \"id\": \"id_qfy3t6cU7m8O5cJ5zs\",\n \"quantity\": 6429460591017984,\n \"reason_id\": \"{value}\",\n \"note\": \"{value}\"\n }\n ],\n \"internal_note\": \"{value}\"\n}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrderReturnResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "beginReceiveReturnWorkflow" }, "delete": { "operationId": "DeleteReturnsIdReceive", "summary": "Cancel Return Receival", "description": "Cancel the receival process previously started, and hasn't been confirmed, of a return.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/receive' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the returned object.", "default": "return" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the return was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelReturnReceiveWorkflow" } }, "/admin/returns/{id}/receive-items": { "post": { "operationId": "PostReturnsIdReceiveItems", "summary": "Add Received Items to Return", "x-sidebar-summary": "Add Received Items", "description": "Add received items in a return. These items will have the action `RECEIVE_RETURN_ITEM`.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsReceiveItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive-items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "receiveItemReturnRequestWorkflow" } }, "/admin/returns/{id}/receive-items/{action_id}": { "post": { "operationId": "PostReturnsIdReceiveItemsAction_id", "summary": "Update a Received Item in a Return", "x-sidebar-summary": "Update Received Item", "description": "Update a received item in the return by the ID of the item's `RECEIVE_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the received item's `RECEIVE_RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsReceiveItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReceiveItemReturnRequestWorkflow" }, "delete": { "operationId": "DeleteReturnsIdReceiveItemsAction_id", "summary": "Remove a Received Item from Return", "x-sidebar-summary": "Remove Received Item", "description": "Remove a received item in the return by the ID of the item's `RECEIVE_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the received item's `RECEIVE_RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/receive-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemReceiveReturnActionWorkflow" } }, "/admin/returns/{id}/receive/confirm": { "post": { "operationId": "PostReturnsIdReceiveConfirm", "summary": "Confirm Return Receival", "description": "Confirm that a return has been received. This updates the quantity of the items received, if not damaged, and reflects the changes on the order.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsConfirmRequestReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive/confirm' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "confirmReturnReceiveWorkflow" } }, "/admin/returns/{id}/request": { "post": { "operationId": "PostReturnsIdRequest", "summary": "Confirm Return Request", "description": "Confirm a requested return. The changes are applied on the inventory quantity and the order only after the return has been confirmed as received using the `/admin/returns/:id/received/confirm`.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsConfirmRequestReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/request' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "confirmReturnRequestWorkflow" }, "delete": { "operationId": "DeleteReturnsIdRequest", "summary": "Cancel Return Request", "description": "Cancel a requested return.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/request' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "return" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the return was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "cancelReturnRequestWorkflow" } }, "/admin/returns/{id}/request-items": { "post": { "operationId": "PostReturnsIdRequestItems", "summary": "Add Requested Items to Return", "x-sidebar-summary": "Add Items", "description": "Add items that are requested to be returned. These items will have the action `RETURN_ITEM`.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsRequestItemsReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/request-items' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "requestItemReturnWorkflow" } }, "/admin/returns/{id}/request-items/{action_id}": { "post": { "operationId": "PostReturnsIdRequestItemsAction_id", "summary": "Update Requested Item in Return", "x-sidebar-summary": "Update Requested Item", "description": "Update a requested item to be returned by the ID of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the item's `RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsRequestItemsActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/request-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateRequestItemReturnWorkflow" }, "delete": { "operationId": "DeleteReturnsIdRequestItemsAction_id", "summary": "Remove Item from Return", "x-sidebar-summary": "Remove Item", "description": "Remove a requested item to be returned by the ID of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the item's `RETURN_ITEM` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/request-items/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeItemReturnActionWorkflow" } }, "/admin/returns/{id}/shipping-method": { "post": { "operationId": "PostReturnsIdShippingMethod", "summary": "Add a Shipping Method to a Return", "x-sidebar-summary": "Add Shipping Method", "description": "Add a shipping method to a return. The shipping method will have a `SHIPPING_ADD` action.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsShippingReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/shipping-method' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"shipping_option_id\": \"{value}\"\n}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createReturnShippingMethodWorkflow" } }, "/admin/returns/{id}/shipping-method/{action_id}": { "post": { "operationId": "PostReturnsIdShippingMethodAction_id", "summary": "Update a Shipping Method of a Return", "x-sidebar-summary": "Update Shipping Method", "description": "Update a shipping method of the return by the ID of the item's `SHIPPING_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminPostReturnsShippingActionReqSchema" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/returns/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateReturnShippingMethodWorkflow" }, "delete": { "operationId": "DeleteReturnsIdShippingMethodAction_id", "summary": "Remove Shipping Method from Return", "x-sidebar-summary": "Remove Shipping Method", "description": "Remove a shipping method of the return by the ID of the item's `SHIPPING_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The return's ID.", "required": true, "schema": { "type": "string" } }, { "name": "action_id", "in": "path", "description": "The ID of the shipping method's `SHIPPING_ADD` action.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Returns" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminReturnPreviewResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeReturnShippingMethodWorkflow" } }, "/admin/sales-channels": { "get": { "operationId": "GetSalesChannels", "summary": "List Sales Channels", "description": "Retrieve a list of sales channels. The sales channels can be filtered by fields such as `id`. The sales channels can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the sales channel's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the sales channel's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a sales channel ID." }, { "type": "array", "description": "Filter by sales channel IDs.", "items": { "type": "string", "title": "id", "description": "A sales channel ID." } } ] } }, { "name": "name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "name", "description": "Filter by a sales channel name." }, { "type": "array", "description": "Filter by sales channel names.", "items": { "type": "string", "title": "name", "description": "A sales channel name." } } ] } }, { "name": "description", "in": "query", "description": "The sales channel's description.", "required": false, "schema": { "type": "string", "title": "description", "description": "Filter by a description. This filter matches an entire description. To search by terms or keywords, use the `q` query parameter instead." } }, { "name": "is_disabled", "in": "query", "description": "Filter by whether the sales channel is disabled.", "required": false, "schema": { "type": "boolean", "title": "is_disabled", "description": "Filter by whether the sales channel is disabled." } }, { "name": "created_at", "in": "query", "description": "Filter by a sales channel's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a sales channel's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a sales channel's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a sales channel's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a sales channel's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a sales channel's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "location_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "location_id", "description": "Filter by a location ID to retrieve its associated sales channels." }, { "type": "array", "description": "Filter by location IDs to retrieve their associated sales channels.", "items": { "type": "string", "title": "location_id", "description": "A location ID." } } ] } }, { "name": "publishable_key_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "publishable_key_id", "description": "Filter by a publishable API key's ID to retrieve its associated sales channels." }, { "type": "array", "description": "Filter by publishable API key IDs to retrieve their associated sales channels.", "items": { "type": "string", "title": "publishable_key_id", "description": "A publishable API key ID." } } ] } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/sales-channels' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Sales Channels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of sales channels.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of sales channels.", "required": [ "sales_channels" ], "properties": { "sales_channels": { "type": "array", "description": "The list of sales channels.", "items": { "$ref": "#/components/schemas/AdminSalesChannel" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostSalesChannels", "summary": "Create Sales Channel", "description": "Create a sales channel.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateSalesChannel" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/sales-channels' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Linnea\",\n \"description\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Sales Channels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminSalesChannelResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createSalesChannelsWorkflow" } }, "/admin/sales-channels/{id}": { "get": { "operationId": "GetSalesChannelsId", "summary": "Get a Sales Channel", "description": "Retrieve a sales channel by its ID. You can expand the sales channel's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The sales channel's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/sales-channels/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Sales Channels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminSalesChannelResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostSalesChannelsId", "summary": "Update a Sales Channel", "description": "Update a sales channel's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The sales channel's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateSalesChannel" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/sales-channels/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"description\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Sales Channels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminSalesChannelResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateSalesChannelsWorkflow" }, "delete": { "operationId": "DeleteSalesChannelsId", "summary": "Delete a Sales Channel", "description": "Delete a sales channel.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The sales channel's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/sales-channels/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Sales Channels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminSalesChannelDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteSalesChannelsWorkflow" } }, "/admin/sales-channels/{id}/products": { "post": { "operationId": "PostSalesChannelsIdProducts", "summary": "Manage Products in Sales Channel", "x-sidebar-summary": "Manage Products", "description": "Manage products in a sales channel to add or remove them from the channel.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The sales channel's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The products to add or remove from the channel.", "properties": { "add": { "type": "array", "description": "The products to add to the sales channel.", "items": { "type": "string", "title": "add", "description": "A product's ID." } }, "remove": { "type": "array", "description": "The products to remove from the sales channel.", "items": { "type": "string", "title": "remove", "description": "A product's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/sales-channels/{id}/products' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Sales Channels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminSalesChannelResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "linkProductsToSalesChannelWorkflow" } }, "/admin/shipping-options": { "get": { "operationId": "GetShippingOptions", "summary": "List Shipping Options", "description": "Retrieve a list of shipping options. The shipping options can be filtered by fields such as `id`. The shipping options can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a shipping option ID." }, { "type": "array", "description": "Filter by shipping option IDs.", "items": { "type": "string", "title": "id", "description": "A shipping option's ID." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter the shipping option's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the shipping option's searchable properties." } }, { "name": "service_zone_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "service_zone_id", "description": "Filter by a service zone's ID to retrieve its associated shipping options." }, { "type": "array", "description": "Filter by service zone IDs to retrieve their associated shipping options.", "items": { "type": "string", "title": "service_zone_id", "description": "A service zone ID." } } ] } }, { "name": "shipping_profile_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "shipping_profile_id", "description": "Filter by a shipping profile's ID to retrieve its associated shipping options." }, { "type": "array", "description": "Filter by shipping profile IDs to retrieve their associated shipping options.", "items": { "type": "string", "title": "shipping_profile_id", "description": "A shipping profile ID." } } ] } }, { "name": "provider_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "provider_id", "description": "Filter by a fulfillment provider's ID to retrieve its associated shipping options." }, { "type": "array", "description": "Filter by fulfillment provider IDs to retrieve their associated shipping options.", "items": { "type": "string", "title": "provider_id", "description": "A fulfillment provider ID." } } ] } }, { "name": "shipping_option_type_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "shipping_option_type_id", "description": "Filter by a shipping option type's ID to retrieve its associated shipping options." }, { "type": "array", "description": "Filter by shipping option type IDs to retrieve its associated shipping options.", "items": { "type": "string", "title": "shipping_option_type_id", "description": "A shipping option type ID." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by a shipping option's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a shipping option's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a shipping option's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a shipping option's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a shipping option's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a shipping option's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "stock_location_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "stock_location_id", "description": "Filter by a location ID to retrieve its associated shipping option." }, { "type": "array", "description": "Filter by location IDs to retrieve their associated shipping option.", "items": { "type": "string", "title": "stock_location_id", "description": "A stock location's ID." } } ] } }, { "name": "is_return", "in": "query", "description": "Filter by whether the shipping option is used for returns.", "required": false, "schema": { "type": "boolean", "title": "is_return", "description": "Filter by whether the shipping option is used for returns." } }, { "name": "admin_only", "in": "query", "description": "Filter by whether the shipping option is used by admin users only.", "required": false, "schema": { "type": "boolean", "title": "admin_only", "description": "Filter by whether the shipping option is used by admin users only." } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/shipping-options' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Options" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of shipping options.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of shipping options.", "required": [ "shipping_options" ], "properties": { "shipping_options": { "type": "array", "description": "The list of shipping options.", "items": { "type": "object" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostShippingOptions", "summary": "Create Shipping Option", "description": "Create a shipping option.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateShippingOption" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/shipping-options' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Julie\",\n \"service_zone_id\": \"{value}\",\n \"shipping_profile_id\": \"{value}\",\n \"price_type\": \"{value}\",\n \"provider_id\": \"{value}\",\n \"type\": {\n \"label\": \"{value}\",\n \"description\": \"{value}\",\n \"code\": \"{value}\"\n },\n \"prices\": []\n}'" } ], "tags": [ "Shipping Options" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingOptionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createShippingOptionsWorkflow" } }, "/admin/shipping-options/{id}": { "get": { "operationId": "GetShippingOptionsId", "summary": "Get a Shipping Option", "description": "Retrieve a shipping option by its ID. You can expand the shipping option's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The shipping option's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/shipping-options/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Options" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingOptionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostShippingOptionsId", "summary": "Update a Shipping Option", "description": "Update a shipping option's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The shipping option's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the shipping option.", "properties": { "name": { "type": "string", "title": "name", "description": "The shipping option's name." }, "data": { "type": "object", "description": "The shipping option's data that is useful for third-party providers.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "price_type": { "type": "string", "description": "The type of the shipping option's price. If `calculated`, its price is retrieved by the associated fulfillment provider during checkout. If `flat`, its price is set in the `prices` property.\n", "enum": [ "calculated", "flat" ] }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the associated fulfillment provider that is used to process the option." }, "shipping_profile_id": { "type": "string", "title": "shipping_profile_id", "description": "The ID of the shipping profile this shipping option belongs to." }, "type": { "type": "object", "description": "The shipping option's type.", "required": [ "code", "description", "label" ], "properties": { "label": { "type": "string", "title": "label", "description": "The type's label." }, "description": { "type": "string", "title": "description", "description": "The type's description." }, "code": { "type": "string", "title": "code", "description": "The type's code." } } }, "prices": { "type": "array", "description": "The shipping option's prices. If the `price_type` is `calculated`, pass an empty array.", "items": { "oneOf": [ { "type": "object", "description": "The shipping option's price for a currency code.", "properties": { "id": { "type": "string", "title": "id", "description": "The ID of an existing price." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." } } }, { "type": "object", "description": "The shipping option's price for a region.", "properties": { "id": { "type": "string", "title": "id", "description": "The ID of an existing price." }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the associated region." }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." } } } ] } }, "rules": { "type": "array", "description": "The shipping option's rules.", "items": { "oneOf": [ { "type": "object", "description": "The details of a new shipping option rule.", "required": [ "operator", "attribute", "value" ], "properties": { "operator": { "type": "string", "description": "The operator used to check whether a rule applies.", "enum": [ "in", "eq", "ne", "gt", "gte", "lt", "lte", "nin" ] }, "attribute": { "type": "string", "title": "attribute", "description": "The name of a property or table that the rule applies to.", "example": "customer_group" }, "value": { "oneOf": [ { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" }, { "type": "array", "description": "Values of the attribute that enable this rule.", "items": { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" } } ] } } }, { "type": "object", "description": "Update the properties of an existing rule.", "required": [ "id", "operator", "attribute", "value" ], "properties": { "id": { "type": "string", "title": "id", "description": "The rule's ID." }, "operator": { "type": "string", "description": "The operator used to check whether a rule applies.", "enum": [ "in", "eq", "ne", "gt", "gte", "lt", "lte", "nin" ] }, "attribute": { "type": "string", "title": "attribute", "description": "The name of a property or table that the rule applies to.", "example": "customer_group" }, "value": { "oneOf": [ { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" }, { "type": "array", "description": "Values of the attribute that enable this rule.", "items": { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" } } ] } } } ] } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/shipping-options/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Options" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingOptionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateShippingOptionsWorkflow" }, "delete": { "operationId": "DeleteShippingOptionsId", "summary": "Delete a Shipping Option", "description": "Delete a shipping option.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The shipping option's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/shipping-options/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Options" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingOptionDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteShippingOptionsWorkflow" } }, "/admin/shipping-options/{id}/rules/batch": { "post": { "operationId": "PostShippingOptionsIdRulesBatch", "summary": "Manage the Rules of a Shipping Option", "x-sidebar-summary": "Manage Rules", "description": "Manage the rules of a shipping option to create, update, or delete them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The shipping option's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The rules to create, update, or delete.", "properties": { "create": { "type": "array", "description": "The shipping option rules to create.", "items": { "$ref": "#/components/schemas/AdminCreateShippingOptionRule" } }, "update": { "type": "array", "description": "The shipping option rules to update.", "items": { "$ref": "#/components/schemas/AdminUpdateShippingOptionRule" } }, "delete": { "type": "array", "description": "The shipping option rules to delete.", "items": { "type": "string", "title": "delete", "description": "A rule's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/shipping-options/{id}/rules/batch' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Options" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The batch operation's result.", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "type": "array", "description": "The created shipping option rules.", "items": { "$ref": "#/components/schemas/AdminShippingOptionRule" } }, "updated": { "type": "array", "description": "The updated shipping option rules.", "items": { "$ref": "#/components/schemas/AdminShippingOptionRule" } }, "deleted": { "type": "object", "description": "The details of the deleted shipping option rules.", "required": [ "ids", "object", "deleted" ], "properties": { "ids": { "type": "array", "description": "The IDs of the deleted shipping option rules.", "items": { "type": "string", "title": "ids", "description": "A shipping option rule's ID." } }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "shipping_option_rule" }, "deleted": { "type": "boolean", "title": "deleted", "description": "The deleted's details." } } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchShippingOptionRulesWorkflow" } }, "/admin/shipping-profiles": { "get": { "operationId": "GetShippingProfiles", "summary": "List Shipping Profiles", "description": "Retrieve a list of shipping profiles. The shipping profiles can be filtered by fields such as `id`. The shipping profiles can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a shipping profile's ID." }, { "type": "array", "description": "Filter by shipping profile IDs.", "items": { "type": "string", "title": "id", "description": "A shipping profile ID." } } ] } }, { "name": "q", "in": "query", "description": "Search term to filter the shipping profile's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the shipping profile's searchable properties." } }, { "name": "type", "in": "query", "description": "Filter by a shipping profile's type.", "required": false, "schema": { "type": "string", "title": "type", "description": "Filter by a shipping profile's type." } }, { "name": "name", "in": "query", "description": "Filter by a shipping profile's name.", "required": false, "schema": { "type": "string", "title": "name", "description": "Filter by a shipping profile's name." } }, { "name": "created_at", "in": "query", "description": "Filter by a shipping profile's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a shipping profile's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a shipping profile's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a shipping profile's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a shipping profile's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a shipping profile's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/shipping-profiles' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Profiles" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of shipping profiles.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of shipping profiles.", "required": [ "shipping_profiles" ], "properties": { "shipping_profiles": { "type": "array", "description": "The list of shipping profiles.", "items": { "$ref": "#/components/schemas/AdminShippingProfile" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostShippingProfiles", "summary": "Create Shipping Profile", "description": "Create a shipping profile.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateShippingProfile" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/shipping-profiles' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Percy\",\n \"type\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Shipping Profiles" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingProfileResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createShippingProfilesWorkflow" } }, "/admin/shipping-profiles/{id}": { "get": { "operationId": "GetShippingProfilesId", "summary": "Get a Shipping Profile", "description": "Retrieve a shipping profile by its ID. You can expand the shipping profile's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The shipping profile's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/shipping-profiles/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Profiles" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingProfileResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostShippingProfilesId", "summary": "Update a Shipping Profile", "description": "Update a shipping profile's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The shipping profile's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The properties to update in the shipping profile.", "properties": { "name": { "type": "string", "title": "name", "description": "The shipping profile's name." }, "type": { "type": "string", "title": "type", "description": "The shipping profile's type." }, "metadata": { "type": "object", "description": "The shipping profile's metadata." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/shipping-profiles/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {}\n}'" } ], "tags": [ "Shipping Profiles" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingProfileResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateShippingProfilesWorkflow" }, "delete": { "operationId": "DeleteShippingProfilesId", "summary": "Delete a Shipping Profile", "description": "Delete a shipping profile.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The shipping profile's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/shipping-profiles/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Shipping Profiles" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminShippingProfileDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteShippingProfileWorkflow" } }, "/admin/stock-locations": { "get": { "operationId": "GetStockLocations", "summary": "List Stock Locations", "description": "Retrieve a list of stock locations. The stock locations can be filtered by fields such as `id`. The stock locations can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the stock location's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the stock location's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a stock location ID." }, { "type": "array", "description": "Filter by stock location IDs.", "items": { "type": "string", "title": "id", "description": "A stock location ID." } } ] } }, { "name": "name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "name", "description": "Filter by a stock location name." }, { "type": "array", "description": "Filter by stock location names.", "items": { "type": "string", "title": "name", "description": "A stock location name." } } ] } }, { "name": "address_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "address_id", "description": "Filter by an address ID to retrieve its associated locations." }, { "type": "array", "description": "Filter by address IDs to retrieve their associated locations.", "items": { "type": "string", "title": "address_id", "description": "An address ID." } } ] } }, { "name": "sales_channel_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "sales_channel_id", "description": "Filter by a sales channel ID to retrieve its associated locations." }, { "type": "array", "description": "Filter by sales channel IDs to retrieve their associated locations.", "items": { "type": "string", "title": "sales_channel_id", "description": "A sales channel ID" } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by a stock location's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a stock location's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a stock location's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a stock location's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a stock location's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a stock location's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/stock-locations' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostStockLocations", "summary": "Create Stock Location", "description": "Create a stock location.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateStockLocation" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/stock-locations' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Maryam\",\n \"address_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createStockLocationsWorkflow" } }, "/admin/stock-locations/{id}": { "get": { "operationId": "GetStockLocationsId", "summary": "Get a Stock Location", "description": "Retrieve a stock location by its ID. You can expand the stock location's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The stock location's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/stock-locations/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostStockLocationsId", "summary": "Update a Stock Location", "description": "Update a stock location's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The stock location's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateStockLocation" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"address_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateStockLocationsWorkflow" }, "delete": { "operationId": "DeleteStockLocationsId", "summary": "Delete a Stock Location", "description": "Delete a stock location.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The stock location's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/stock-locations/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteStockLocationsWorkflow" } }, "/admin/stock-locations/{id}/fulfillment-providers": { "post": { "operationId": "PostStockLocationsIdFulfillmentProviders", "summary": "Manage Fulfillment Providers of a Stock Location", "x-sidebar-summary": "Manage Fulfillment Providers", "description": "Manage the fulfillment providers to add or remove them from a stock location.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The stock location's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The fulfillment providers to add or remove from the stock location.", "properties": { "add": { "type": "array", "description": "The fulfillment providers to add to the stock location.", "items": { "type": "string", "title": "add", "description": "A fulfillment provider's ID." } }, "remove": { "type": "array", "description": "The fulfillment providers to remove from the stock location.", "items": { "type": "string", "title": "remove", "description": "A fulfillment provider's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}/fulfillment-providers' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "batchLinksWorkflow" } }, "/admin/stock-locations/{id}/fulfillment-sets": { "post": { "operationId": "PostStockLocationsIdFulfillmentSets", "summary": "Add Fulfillment Set to Stock Location", "x-sidebar-summary": "Add Fulfillment Set", "description": "Create and add a fulfillment set to a stock location.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The stock location's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The fulfillment set to create.", "required": [ "type", "name" ], "properties": { "name": { "type": "string", "title": "name", "description": "The fulfillment set's name." }, "type": { "type": "string", "title": "type", "description": "The fulfillment set's type." } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}/fulfillment-sets' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Helene\",\n \"type\": \"{value}\"\n}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createLocationFulfillmentSetWorkflow" } }, "/admin/stock-locations/{id}/sales-channels": { "post": { "operationId": "PostStockLocationsIdSalesChannels", "summary": "Manage Sales Channels of a Stock Location", "x-sidebar-summary": "Manage Sales Channels", "description": "Manage the sales channels in a stock location by adding or removing them.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The stock location's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "The sales channels to add or remove.", "properties": { "add": { "type": "array", "description": "The sales channels to add.", "items": { "type": "string", "title": "add", "description": "A sales channel's ID." } }, "remove": { "type": "array", "description": "The sales channels to remove.", "items": { "type": "string", "title": "remove", "description": "A sales channel's ID." } } } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}/sales-channels' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Stock Locations" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStockLocationResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "linkSalesChannelsToStockLocationWorkflow" } }, "/admin/stores": { "get": { "operationId": "GetStores", "summary": "List Stores", "description": "Retrieve a list of stores. The stores can be filtered by fields such as `id`. The stores can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter the store's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter the store's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a store ID." }, { "type": "array", "description": "Filter by store IDs.", "items": { "type": "string", "title": "id", "description": "A store ID." } } ] } }, { "name": "name", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "name", "description": "Filter by a store name." }, { "type": "array", "description": "Filter by store names.", "items": { "type": "string", "title": "name", "description": "A store name." } } ] } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/stores' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Stores" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStoreListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/stores/{id}": { "get": { "operationId": "GetStoresId", "summary": "Get a Store", "description": "Retrieve a store by its ID. You can expand the store's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The store's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/stores/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Stores" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStoreResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostStoresId", "summary": "Update a Store", "description": "Update a store's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The store's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateStore" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/stores/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Melvina\",\n \"default_sales_channel_id\": \"{value}\",\n \"default_region_id\": \"{value}\",\n \"default_location_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Stores" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminStoreResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateStoresWorkflow" } }, "/admin/tax-rates": { "get": { "operationId": "GetTaxRates", "summary": "List Tax Rates", "description": "Retrieve a list of tax rates. The tax rates can be filtered by fields such as `id`. The tax rates can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search terms to filter the tax rate's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search terms to filter the tax rate's searchable properties." } }, { "name": "tax_region_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "tax_region_id", "description": "Filter by a tax region ID to retrieve its associated rates." }, { "type": "array", "description": "Filter by tax region IDs to retrieve their associated rates.", "items": { "type": "string", "title": "tax_region_id", "description": "A tax region ID." } }, { "type": "object", "description": "Apply filters on the tax region ID to retrieve the rates associated with the matching tax regions.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } ] } }, { "name": "is_default", "in": "query", "required": false, "description": "Filter by whether the tax rate is a default in its tax region.", "schema": { "type": "string", "enum": [ "true", "false" ] } }, { "name": "created_at", "in": "query", "description": "Filter by a tax rate's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a tax rate's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a tax rate's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a tax rate's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a tax rate's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a tax rate's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } }, { "name": "service_zone_id", "in": "query", "description": "Filter by a service zone's ID to retrieve its associated tax rates.", "required": false, "schema": { "type": "string", "title": "service_zone_id", "description": "Filter by a service zone's ID to retrieve its associated tax rates." } }, { "name": "shipping_profile_id", "in": "query", "description": "Filter by a shipping profile's ID to retrieve its associated tax rates.", "required": false, "schema": { "type": "string", "title": "shipping_profile_id", "description": "Filter by a shipping profile's ID to retrieve its associated tax rates." } }, { "name": "provider_id", "in": "query", "description": "Filter by a fulfillment provider's ID to retrieve its associated tax rates.", "required": false, "schema": { "type": "string", "title": "provider_id", "description": "Filter by a fulfillment provider's ID to retrieve its associated tax rates." } }, { "name": "shipping_option_type_id", "in": "query", "description": "Filter by a shipping option type's ID to retrieve its associated tax rates.", "required": false, "schema": { "type": "string", "title": "shipping_option_type_id", "description": "Filter by a shipping option type's ID to retrieve its associated tax rates." } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/tax-rates' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Rates" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of tax rates.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of tax rates.", "required": [ "tax_rates" ], "properties": { "tax_rates": { "type": "array", "description": "The tax rate's tax rates.", "items": { "$ref": "#/components/schemas/AdminTaxRate" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostTaxRates", "summary": "Create Tax Rate", "description": "Create a tax rate.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateTaxRate" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/tax-rates' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"Kaylin\",\n \"tax_region_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Tax Rates" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRateResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createTaxRatesWorkflow" } }, "/admin/tax-rates/{id}": { "get": { "operationId": "GetTaxRatesId", "summary": "Get a Tax Rate", "description": "Retrieve a tax rate by its ID. You can expand the tax rate's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax rate's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/tax-rates/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Rates" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRateResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostTaxRatesId", "summary": "Update a Tax Rate", "description": "Update a tax rate's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax rate's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateTaxRate" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/tax-rates/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {}\n}'" } ], "tags": [ "Tax Rates" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRateResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateTaxRatesWorkflow" }, "delete": { "operationId": "DeleteTaxRatesId", "summary": "Delete a Tax Rate", "description": "Delete a tax rate.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax rate's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/tax-rates/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Rates" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRateDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteTaxRatesWorkflow" } }, "/admin/tax-rates/{id}/rules": { "post": { "operationId": "PostTaxRatesIdRules", "summary": "Create Tax Rule for a Rate", "x-sidebar-summary": "Create Tax Rule", "description": "Create a tax rule for a rate.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax rate's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateTaxRateRule" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/tax-rates/{id}/rules' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"reference\": \"{value}\",\n \"reference_id\": \"{value}\"\n}'" } ], "tags": [ "Tax Rates" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRateResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createTaxRateRulesWorkflow" } }, "/admin/tax-rates/{id}/rules/{rule_id}": { "delete": { "operationId": "DeleteTaxRatesIdRulesRule_id", "summary": "Remove Rule of Tax Rate", "x-sidebar-summary": "Remove Rule", "description": "Remove a tax rate's rule.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax rate's ID.", "required": true, "schema": { "type": "string" } }, { "name": "rule_id", "in": "path", "description": "The tax rate rule's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/tax-rates/{id}/rules/{rule_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Rates" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tax rate's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object." }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the Tax Rate was deleted." } } }, { "type": "object", "description": "The deletion's details.", "properties": { "parent": { "$ref": "#/components/schemas/AdminTaxRate" } } } ], "description": "The deletion's details." } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteTaxRateRulesWorkflow" } }, "/admin/tax-regions": { "get": { "operationId": "GetTaxRegions", "summary": "List Tax Regions", "description": "Retrieve a list of tax regions. The tax regions can be filtered by fields such as `id`. The tax regions can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "Search term to filter a tax region's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "Search term to filter a tax region's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a tax region ID." }, { "type": "array", "description": "Filter by tax region IDs.", "items": { "type": "string", "title": "id", "description": "A tax region ID." } } ] } }, { "name": "country_code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "country_code", "description": "Filter by a country code." }, { "type": "array", "description": "Filter by country codes.", "items": { "type": "string", "title": "country_code", "description": "A country code." } }, { "type": "object", "description": "Apply filters on the currency code.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } ] } }, { "name": "province_code", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "province_code", "description": "Filter by a province code." }, { "type": "array", "description": "Filter by province codes.", "items": { "type": "string", "title": "province_code", "description": "A province code." } }, { "type": "object", "description": "Apply filters on the province code.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } ] } }, { "name": "parent_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "parent_id", "description": "Filter by the ID of a parent tax region to retrieve its child tax regions." }, { "type": "array", "description": "Filter by the IDs of parent tax regions to retrieve their child tax regions.", "items": { "type": "string", "title": "parent_id", "description": "A tax region's ID." } }, { "type": "object", "description": "Apply filters on the parent tax region's ID to retrieve its child tax regions.", "properties": { "$eq": { "type": "string", "description": "Filter by an exact match." }, "$ne": { "type": "string", "description": "Filter by values not matching this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array's items.", "items": { "type": "string" } }, "$nin": { "type": "array", "description": "Filter by values not in this array's items.", "items": { "type": "string" } }, "$like": { "type": "string", "description": "Apply a `like` filter. Useful for strings only." }, "$ilike": { "type": "string", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$re": { "type": "string", "description": "Apply a regex filter. Useful for strings only." }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string" } }, "$gt": { "type": "string", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." } } } ] } }, { "name": "created_by", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "created_by", "description": "Filter by the ID of the user to retrieve the tax regions they created." }, { "type": "array", "description": "Filter by user IDs to retrieve their tax regions they created.", "items": { "type": "string", "title": "created_by", "description": "A user ID." } } ] } }, { "name": "created_at", "in": "query", "description": "Filter by a tax region's creation date.", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "created_at", "description": "Filter by a tax region's creation date." }, { "type": "object", "description": "Apply filters on the tax region's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "updated_at", "in": "query", "description": "Filter by a tax region's update date.", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "updated_at", "description": "Filter by a tax region's update date." }, { "type": "object", "description": "Apply filters on the tax region's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "deleted_at", "in": "query", "description": "Filter by a tax region's deletion date.", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "deleted_at", "description": "Filter by a tax region's deletion date." }, { "type": "object", "description": "Apply filters on the tax region's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] } }, { "name": "$and", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" } }, { "name": "$or", "in": "query", "required": false, "schema": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/tax-regions' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of tax regions.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of tax regions.", "required": [ "tax_regions" ], "properties": { "tax_regions": { "type": "array", "description": "The list of tax regions.", "items": { "type": "object" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostTaxRegions", "summary": "Create Tax Region", "description": "Create a tax region.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateTaxRegion" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/tax-regions' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"country_code\": \"{value}\",\n \"province_code\": \"{value}\",\n \"parent_id\": \"{value}\",\n \"metadata\": {}\n}'" } ], "tags": [ "Tax Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRegionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "createTaxRegionsWorkflow" } }, "/admin/tax-regions/{id}": { "get": { "operationId": "GetTaxRegionsId", "summary": "Get a Tax Region", "description": "Retrieve a tax region by its ID. You can expand the tax region's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax region's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/tax-regions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRegionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "post": { "operationId": "PostTaxRegionsId", "summary": "Update a Tax Region", "description": "Update a tax region's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax region's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateTaxRegion" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/tax-regions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRegionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateTaxRegionsWorkflow" }, "delete": { "operationId": "DeleteTaxRegionsId", "summary": "Delete a Tax Region", "description": "Delete a tax region.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The tax region's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/tax-regions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Tax Regions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminTaxRegionDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteTaxRegionsWorkflow" } }, "/admin/uploads": { "post": { "operationId": "PostUploads", "summary": "Upload Files", "description": "Upload files to the configured File Module Provider.", "x-authenticated": true, "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ { "type": "object", "description": "The files to upload", "required": [ "files" ], "properties": { "files": { "type": "array", "description": "The upload's files.", "items": { "oneOf": [ { "type": "object", "description": "The file's files.", "required": [ "name", "content" ], "properties": { "name": { "type": "string", "title": "name", "description": "The file's name." }, "content": { "type": "string", "title": "content", "description": "The file's content." } } }, { "type": "object", "description": "A File to upload.", "externalDocs": { "url": "https://developer.mozilla.org/en-US/docs/Web/API/File", "description": "Learn more about the File API" }, "title": "files" } ] } } } }, { "type": "array", "description": "list of files to upload.", "items": { "type": "object", "description": "A File to upload.", "externalDocs": { "url": "https://developer.mozilla.org/en-US/docs/Web/API/File", "description": "Learn more about the File API" } }, "title": "FileList" } ], "description": "The files to upload." } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/uploads' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Uploads" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFileListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "uploadFilesWorkflow" } }, "/admin/uploads/{id}": { "get": { "operationId": "GetUploadsId", "summary": "Get a File", "description": "Retrieve an uploaded file by its ID. You can expand the file's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The upload's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/uploads/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Uploads" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminFileResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "delete": { "operationId": "DeleteUploadsId", "summary": "Delete a File", "description": "Delete a file. Uses the installed file module provider to delete the file.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The file's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/uploads/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Uploads" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The file's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "file" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the file was deleted." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "deleteFilesWorkflow" } }, "/admin/users": { "get": { "operationId": "GetUsers", "summary": "List Users", "description": "Retrieve a list of users. The users can be filtered by fields such as `id`. The users can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "q", "in": "query", "description": "The search term to filter the user's searchable properties.", "required": false, "schema": { "type": "string", "title": "q", "description": "The search term to filter the user's searchable properties." } }, { "name": "id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a user's ID." }, { "type": "array", "description": "Filter by user IDs.", "items": { "type": "string", "title": "id", "description": "A user's ID." } } ] } }, { "name": "email", "in": "query", "description": "Filter by an email.", "required": false, "schema": { "type": "string", "title": "email", "description": "Filter by an email.", "format": "email" } }, { "name": "first_name", "in": "query", "description": "Filter by a first name.", "required": false, "schema": { "type": "string", "title": "first_name", "description": "Filter by a first name." } }, { "name": "last_name", "in": "query", "description": "Filter by a last name.", "required": false, "schema": { "type": "string", "title": "last_name", "description": "Filter by a last name." } }, { "name": "created_at", "in": "query", "description": "Filter by a user's creation date.", "required": false, "schema": { "type": "object", "description": "Filter by a user's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "updated_at", "in": "query", "description": "Filter by a user's update date.", "required": false, "schema": { "type": "object", "description": "Filter by a user's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } }, { "name": "deleted_at", "in": "query", "description": "Filter by a user's deletion date.", "required": false, "schema": { "type": "object", "description": "Filter by a user's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/users'" } ], "tags": [ "Users" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserListResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "security": [ { "cookie_auth": [] }, { "jwt_token": [] } ] } }, "/admin/users/me": { "get": { "operationId": "GetUsersMe", "summary": "Get Logged-In User", "description": "Retrieve the logged-in user's details.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/users/me'" } ], "tags": [ "Users" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "security": [ { "cookie_auth": [] }, { "jwt_token": [] } ] } }, "/admin/users/{id}": { "get": { "operationId": "GetUsersId", "summary": "Get a User", "description": "Retrieve a user by its ID. You can expand the user's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The user's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/users/{id}'" } ], "tags": [ "Users" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "security": [ { "cookie_auth": [] }, { "jwt_token": [] } ] }, "post": { "operationId": "PostUsersId", "summary": "Update a User", "description": "Update a user's details.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The user's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUpdateUser" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/users/{id}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"first_name\": \"{value}\",\n \"last_name\": \"{value}\",\n \"avatar_url\": \"{value}\"\n}'" } ], "tags": [ "Users" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "updateUsersWorkflow", "security": [ { "cookie_auth": [] }, { "jwt_token": [] } ] }, "delete": { "operationId": "DeleteUsersId", "summary": "Delete a User", "description": "Delete a user.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The user's ID.", "required": true, "schema": { "type": "string" } } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/admin/users/{id}'" } ], "tags": [ "Users" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserDeleteResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "removeUserAccountWorkflow", "security": [ { "cookie_auth": [] }, { "jwt_token": [] } ] } }, "/admin/workflows-executions": { "get": { "operationId": "GetWorkflowsExecutions", "summary": "List Workflows Executions", "description": "Retrieve a list of workflows executions. The workflows executions can be filtered by fields such as `id`. The workflows executions can also be sorted or paginated.", "x-authenticated": true, "parameters": [ { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } }, { "name": "offset", "in": "query", "description": "The number of items to skip when retrieving a list.", "required": false, "schema": { "type": "number", "title": "offset", "description": "The number of items to skip when retrieving a list.", "externalDocs": { "url": "#pagination" } } }, { "name": "limit", "in": "query", "description": "Limit the number of items returned in the list.", "required": false, "schema": { "type": "number", "title": "limit", "description": "Limit the number of items returned in the list.", "externalDocs": { "url": "#pagination" } } }, { "name": "order", "in": "query", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.", "required": false, "schema": { "type": "string", "title": "order", "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`." } }, { "name": "transaction_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "transaction_id", "description": "Filter by a transaction ID." }, { "type": "array", "description": "Filter by transaction IDs.", "items": { "type": "string", "title": "transaction_id", "description": "A transaction ID." } } ] } }, { "name": "workflow_id", "in": "query", "required": false, "schema": { "oneOf": [ { "type": "string", "title": "workflow_id", "description": "Filter by a workflow ID." }, { "type": "array", "description": "Filter by workflow IDs.", "items": { "type": "string", "title": "workflow_id", "description": "A workflow ID." } } ] } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/workflows-executions' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "description": "The paginated list of workflow executions.", "required": [ "limit", "offset", "count" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." } } }, { "type": "object", "description": "The paginated list of workflow executions.", "required": [ "workflow_executions" ], "properties": { "workflow_executions": { "type": "array", "description": "The workflows execution's workflow executions.", "items": { "$ref": "#/components/schemas/AdminWorkflowExecution" } } } } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/workflows-executions/{id}": { "get": { "operationId": "GetWorkflowsExecutionsId", "summary": "Get a Workflows Execution", "description": "Retrieve a workflows execution by its ID. You can expand the workflows execution's relations or select the fields that should be returned.", "x-authenticated": true, "parameters": [ { "name": "id", "in": "path", "description": "The workflows execution's ID.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/workflows-executions/{id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminWorkflowExecutionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/workflows-executions/{workflow_id}/run": { "post": { "operationId": "PostWorkflowsExecutionsWorkflow_idRun", "summary": "Execute a Workflow", "description": "Execute a workflow by its ID.", "x-authenticated": true, "parameters": [ { "name": "workflow_id", "in": "path", "description": "The workflow's ID.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateWorkflowsRun" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/run' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The execution's details.", "required": [ "acknowledgement" ], "properties": { "acknowledgement": { "type": "object", "description": "The workflow's details", "required": [ "workflowId", "transactionId", "hasFinished", "hasFailed" ], "properties": { "workflowId": { "type": "string", "description": "The ID of the executed workflow.", "title": "workflowId" }, "transactionId": { "type": "string", "description": "The ID of the workflow exection's transaction. Use this later to track the workflow execution's progress or succeed / fail its steps.", "title": "transactionId" }, "parentStepIdempotencyKey": { "type": "string", "title": "parentStepIdempotencyKey", "description": "The idempotency key of the workflow execution." }, "hasFinished": { "type": "boolean", "title": "hasFinished", "description": "Whether the workflow execution has finished." }, "hasFailed": { "type": "boolean", "title": "hasFailed", "description": "Whether the workflow execution has failed." } } } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/workflows-executions/{workflow_id}/steps/failure": { "post": { "operationId": "PostWorkflowsExecutionsWorkflow_idStepsFailure", "summary": "Fail a Step in a Workflow's Execution", "x-sidebar-summary": "Fail a Step", "description": "Set the status of a step in a workflow's execution as failed. This is useful for long-running workflows.", "x-authenticated": true, "parameters": [ { "name": "workflow_id", "in": "path", "description": "The workflows execution's workflow id.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateWorkflowsAsyncResponse" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/steps/failure' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"transaction_id\": \"{value}\",\n \"step_id\": \"{value}\"\n}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The details of failing the workflow step.", "required": [ "success" ], "properties": { "success": { "type": "boolean", "title": "success", "description": "Whether the workflow step has failed successfully." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/workflows-executions/{workflow_id}/steps/success": { "post": { "operationId": "PostWorkflowsExecutionsWorkflow_idStepsSuccess", "summary": "Succeed a Step in a Workflow's Execution", "x-sidebar-summary": "Succed a Step", "description": "Set the status of a step in a workflow's execution as successful. This is useful for long-running workflows.", "x-authenticated": true, "parameters": [ { "name": "workflow_id", "in": "path", "description": "The workflows execution's workflow id.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminCreateWorkflowsAsyncResponse" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/steps/success' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"transaction_id\": \"{value}\",\n \"step_id\": \"{value}\"\n}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The details of succeeding the workflow step.", "required": [ "success" ], "properties": { "success": { "type": "boolean", "title": "success", "description": "Whether the workflow step was succeeded." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/workflows-executions/{workflow_id}/subscribe": { "get": { "operationId": "GetWorkflowsExecutionsWorkflow_idSubscribe", "summary": "Subscribe to a Workflow's Execution", "x-sidebar-summary": "Subscribe to Workflow", "description": "Subscribe to a workflow's execution to receive real-time information about its steps, status, and data.\nThis route returns an event stream that you can consume using the [EventSource API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).\n", "x-authenticated": true, "parameters": [ { "name": "workflow_id", "in": "path", "description": "The workflows execution's workflow id.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/workflows-executions/{workflow_id}/subscribe' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "Stream of the step's status.", "content": { "text/event-stream": { "schema": { "type": "string", "description": "The step's status update and data changes.", "example": "event: success\n data: {}" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/workflows-executions/{workflow_id}/{transaction_id}": { "get": { "operationId": "GetWorkflowsExecutionsWorkflow_idTransaction_id", "summary": "Get Workflow Execution's Details", "x-sidebar-summary": "Get Exection", "description": "Get the details of the workflow's execution.", "x-authenticated": true, "parameters": [ { "name": "workflow_id", "in": "path", "description": "The workflows execution's workflow id.", "required": true, "schema": { "type": "string" } }, { "name": "transaction_id", "in": "path", "description": "The workflows execution's transaction id.", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "required": false, "schema": { "type": "string", "title": "fields", "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.", "externalDocs": { "url": "#select-fields-and-relations" } } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/workflows-executions/{workflow_id}/{transaction_id}' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminWorkflowExecutionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/admin/workflows-executions/{workflow_id}/{transaction_id}/{step_id}/subscribe": { "get": { "operationId": "GetWorkflowsExecutionsWorkflow_idTransaction_idStep_idSubscribe", "summary": "Subscribe to Step of a Workflow's Execution", "x-sidebar-summary": "Subscribe to Step", "description": "Subscribe to a step in a workflow's execution to receive real-time information about its status and data.\nThis route returns an event stream that you can consume using the [EventSource API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).\n", "x-authenticated": true, "parameters": [ { "name": "workflow_id", "in": "path", "description": "The workflows execution's workflow id.", "required": true, "schema": { "type": "string" } }, { "name": "transaction_id", "in": "path", "description": "The workflows execution's transaction id.", "required": true, "schema": { "type": "string" } }, { "name": "step_id", "in": "path", "description": "The workflows execution's step id.", "required": true, "schema": { "type": "string" } } ], "security": [ { "api_token": [] }, { "cookie_auth": [] }, { "jwt_token": [] } ], "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl '{backend_url}/admin/workflows-executions/{workflow_id}/{transaction_id}/{step_id}/subscribe' \\\n-H 'Authorization: Bearer {access_token}'" } ], "tags": [ "Workflows Executions" ], "responses": { "200": { "description": "Stream of the step's status.", "content": { "text/event-stream": { "schema": { "type": "string", "description": "The step's status update and data changes.", "example": "event: success\n data: {}" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/auth/session": { "post": { "operationId": "PostSession", "summary": "Set Authentication Session", "description": "Set the cookie session ID of an admin user. The admin must be previously authenticated with the `/auth/user/{provider}` API route first, as the JWT token is required in the header of the request.", "x-authenticated": true, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/auth/session' \\\n-H 'Authorization: Bearer {jwt_token}'" } ], "tags": [ "Auth" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthAdminSessionResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } }, "delete": { "operationId": "DeleteSession", "summary": "Delete Authentication Session", "description": "Deletes the cookie session ID previously set for authentication.", "x-authenticated": true, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X DELETE '{backend_url}/auth/session' \\\n-H 'Cookie: connect.sid={sid}'" } ], "tags": [ "Auth" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "The deletion's details.", "required": [ "success" ], "properties": { "success": { "type": "boolean", "title": "success", "description": "Whether the session was deleted successfully." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/auth/token/refresh": { "post": { "operationId": "PostAdminAuthTokenRefresh", "summary": "Refresh Authentication Token", "description": "Refresh the authentication token of a user. This is useful after authenticating a user with a third-party service to ensure the token holds the new user's details, or when you don't want users to re-login every day.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#2-third-party-service-authenticate-flow", "description": "Learn about third-party authentication flow." }, "x-authenticated": true, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/auth/token/refresh' \\\n-H 'Authorization: Bearer {token}'" } ], "tags": [ "Auth" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/auth/user/{auth_provider}": { "post": { "operationId": "PostActor_typeAuth_provider", "summary": "Authenticate User", "description": "Authenticate a user and receive the JWT token to be used in the header of subsequent requests.\n\nWhen used with a third-party provider, such as Google, the request returns a `location` property. You redirect to the specified URL in your frontend to continue authentication with the third-party service.\n", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#types-of-authentication-flows", "description": "Learn about different authentication flows." }, "x-authenticated": false, "parameters": [ { "name": "auth_provider", "in": "path", "description": "The provider used for authentication.", "required": true, "schema": { "type": "string", "example": "emailpass" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "title": "input", "description": "The input data necessary for authentication. \nFor example, for email-pass authentication, pass `email` and `password` properties. \nFor the Google and GitHub authentication providers, you can pass `callback_url` to indicate the URL in the frontend that the user should be redirected to after completing their authentication. This will override the provider's `callbackUrl` configurations in `medusa-config.ts`.\n" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "EmailPass Provider", "source": "curl -X POST '{backend_url}/auth/user/emailpass' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"email\": \"admin@medusa-test.com\",\n \"password\": \"supersecret\"\n}'" }, { "lang": "Bash", "label": "Google Provider", "source": "curl -X POST '{backend_url}/auth/user/google'" } ], "tags": [ "Auth" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/AuthResponse" }, { "$ref": "#/components/schemas/AuthCallbackResponse" } ] } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/auth/user/{auth_provider}/callback": { "post": { "operationId": "PostActor_typeAuth_providerCallback", "summary": "Validate Authentication Callback", "description": "This API route is used by your dashboard or frontend application when a third-party provider redirects to it after authentication. It validates the authentication with the third-party provider and, if successful, returns an authentication token. All query parameters received from the third-party provider, such as `code`, `state`, and `error`, must be passed as query parameters to this route.\n\nYou can decode the JWT token using libraries like [react-jwt](https://www.npmjs.com/package/react-jwt) in the frontend. If the decoded data doesn't have an `actor_id` property, then you must create a user, typically using the Accept Invite route passing the token in the request's Authorization header.\n", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#2-third-party-service-authenticate-flow", "description": "Learn about third-party authentication flow." }, "x-authenticated": false, "parameters": [ { "name": "auth_provider", "in": "path", "description": "The provider used for authentication.", "required": true, "schema": { "type": "string", "example": "google" } } ], "x-codeSamples": [ { "lang": "Shell", "label": "Google Provider", "source": "curl -X POST '{backend_url}/auth/user/google/callback?code=123'" }, { "lang": "Bash", "label": "GitHub Provider", "source": "curl -X POST '{backend_url}/auth/user/github/callback?code=123'" } ], "tags": [ "Auth" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/auth/user/{auth_provider}/register": { "post": { "operationId": "PostActor_typeAuth_provider_register", "summary": "Retrieve Registration JWT Token", "description": "This API route retrieves a registration JWT token of a user that hasn't been registered yet. The token is used in the header of requests that create a user, such as the Accept Invite API route.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#1-basic-authentication-flow", "description": "Learn about the basic authentication flow." }, "x-authenticated": false, "parameters": [ { "name": "auth_provider", "in": "path", "description": "The provider used for authentication.", "required": true, "schema": { "type": "string", "example": "emailpass" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "title": "input", "description": "The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties.", "example": { "email": "admin@medusa-test.com", "password": "supersecret" } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/auth/user/emailpass/register' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"email\": \"admin@medusa-test.com\",\n \"password\": \"supersecret\"\n}'" } ], "tags": [ "Auth" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthResponse" } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } }, "/auth/user/{auth_provider}/reset-password": { "post": { "operationId": "PostActor_typeAuth_providerResetPassword", "summary": "Generate Reset Password Token for Admin User", "x-sidebar-summary": "Generate Reset Password Token", "description": "Generate a reset password token for an admin user. This API route doesn't reset the admin's password or send them the reset instructions in a notification.\n\nInstead, This API route emits the `auth.password_reset` event, passing it the token as a payload. You can listen to that event in a subscriber as explained in [this guide](https://docs.medusajs.com/resources/commerce-modules/auth/reset-password), then send the user a notification. The notification is sent using a [Notification Module Provider](https://docs.medusajs.com/resources/architectural-modules/notification), and it should have the URL to reset the password in the Medusa Admin dashboard, such as `http://localhost:9000/app/reset-password?token=123`.\n\n\n Use the generated token to update the user's password using the [Reset Password API route](https://docs.medusajs.com/api/admin#auth_postactor_typeauth_providerupdate).\n", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#generate-reset-password-token-route", "description": "Learn more about this API route." }, "x-authenticated": false, "parameters": [ { "name": "auth_provider", "in": "path", "description": "The provider used for authentication.", "required": true, "schema": { "type": "string", "example": "emailpass" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "title": "identifier", "description": "The user's identifier for the selected auth provider. For example, for the `emailpass` auth provider, the value is the user's email.", "example": "admin@medusa-test.com" } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/auth/user/emailpass/reset-password' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n \"identifier\": \"admin@medusa-test.com\"\n}'" } ], "tags": [ "Auth" ], "responses": { "201": { "description": "OK" }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } }, "x-workflow": "generateResetPasswordTokenWorkflow" } }, "/auth/user/{auth_provider}/update": { "post": { "operationId": "PostActor_typeAuth_providerUpdate", "summary": "Reset an Admin User's Password", "x-sidebar-summary": "Reset Password", "description": "Reset an admin user's password using a reset-password token generated with the [Generate Reset Password Token API route](https://docs.medusajs.com/api/admin#auth_postactor_typeauth_providerresetpassword). You pass the token as a bearer token in the request's Authorization header.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#reset-password-route", "description": "Learn more about this API route." }, "x-authenticated": true, "parameters": [ { "name": "auth_provider", "in": "path", "description": "The provider used for authentication.", "required": true, "schema": { "type": "string", "example": "emailpass" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "title": "input", "description": "The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties.", "example": { "email": "admin@medusa-test.com", "password": "supersecret" } } } } }, "x-codeSamples": [ { "lang": "Shell", "label": "cURL", "source": "curl -X POST '{backend_url}/auth/user/emailpass/update' \\\n-H 'Content-Type: application/json' \\\n-H 'Authorization: Bearer {token}' \\\n--data-raw '{\n \"email\": \"admin@medusa-test.com\",\n \"password\": \"supersecret\"\n}'" } ], "security": [ { "reset_password": [] } ], "tags": [ "Auth" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "required": [ "success" ], "description": "Details on the reset password's status.", "properties": { "success": { "type": "boolean", "title": "success", "description": "Whether the password was reset successfully." } } } } } }, "400": { "$ref": "#/components/responses/400_error" }, "401": { "$ref": "#/components/responses/unauthorized" }, "404": { "$ref": "#/components/responses/not_found_error" }, "409": { "$ref": "#/components/responses/invalid_state_error" }, "422": { "$ref": "#/components/responses/invalid_request_error" }, "500": { "$ref": "#/components/responses/500_error" } } } } }, "components": { "schemas": { "AdminApiKey": { "type": "object", "description": "The API key's details.", "x-schemaName": "AdminApiKey", "required": [ "id", "token", "redacted", "title", "type", "last_used_at", "created_by", "created_at", "updated_at", "revoked_by", "revoked_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The api key's ID." }, "token": { "type": "string", "title": "token", "description": "The api key's token." }, "redacted": { "type": "string", "title": "redacted", "description": "The redacted form of the API key's token. This is useful when showing portion of the token.", "example": "sk_...123" }, "title": { "type": "string", "title": "title", "description": "The api key's title." }, "type": { "type": "string", "description": "The api key's type. `secret` is used for a user's API key, whereas `publishable` is used for Publishable API keys.", "enum": [ "secret", "publishable" ] }, "last_used_at": { "type": "string", "title": "last_used_at", "description": "The date and time the API key was last used.", "format": "date-time" }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the API key, if available." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date and time the API key was created." }, "revoked_by": { "type": "string", "title": "revoked_by", "description": "The ID of the user that revoked the API key, if available." }, "revoked_at": { "type": "string", "title": "revoked_at", "description": "The date and time the API key was revoked. The API key is considered revoked when this property is set.", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the API key was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the API key was deleted." } } }, "AdminApiKeyResponse": { "type": "object", "description": "The API key's details.", "x-schemaName": "AdminApiKeyResponse", "required": [ "api_key" ], "properties": { "api_key": { "$ref": "#/components/schemas/AdminApiKey" } } }, "AdminApplicationMethod": { "type": "object", "description": "The application method's details.", "x-schemaName": "AdminApplicationMethod", "required": [ "id" ], "properties": { "promotion": { "type": "object" }, "target_rules": { "type": "array", "description": "The application method's target rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "buy_rules": { "type": "array", "description": "The application method's buy rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "id": { "type": "string", "title": "id", "description": "The application method's ID." }, "type": { "type": "string", "description": "The application method's type. If it's `fixed`, the promotion discounts a fixed amount. If it's `percentage`, the promotion discounts a percentage.", "enum": [ "fixed", "percentage" ] }, "target_type": { "type": "string", "description": "Which item does the promotion apply to. `items` mean the promotion applies to the cart's items; `shipping_methods` means the promotion applies to the cart's shipping methods; `order` means the promotion applies on the entire order.", "enum": [ "items", "shipping_methods", "order" ] }, "allocation": { "type": "string", "description": "How is the promotion amount discounted. `each` means the discounted amount is applied on each applicable item; `across` means the discounted amount is split accross the applicable items.", "enum": [ "each", "across" ] }, "value": { "type": "number", "title": "value", "description": "The amount to be discounted." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The application method's currency code.", "example": "usd" }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The max quantity allowed in the cart for the associated promotion to be applied." }, "buy_rules_min_quantity": { "type": "number", "title": "buy_rules_min_quantity", "description": "The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `2`." }, "apply_to_quantity": { "type": "number", "title": "apply_to_quantity", "description": "The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `1`." } } }, "AdminBatchCreateInventoryItemsLocationLevels": { "type": "object", "description": "The details of an inventory level to create.", "required": [ "location_id", "inventory_item_id" ], "properties": { "location_id": { "type": "string", "title": "location_id", "description": "The ID of the associated stock location." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the associated inventory item." }, "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The stocked quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The incoming quantity to be added to stock." } }, "x-schemaName": "AdminBatchCreateInventoryItemsLocationLevels" }, "AdminBatchInventoryItemLocationsLevel": { "type": "object", "description": "The inventory levels to create, update, or delete.", "properties": { "create": { "type": "array", "description": "The inventory levels to create.", "items": { "type": "object", "description": "The inventory level's details.", "required": [ "location_id" ], "properties": { "location_id": { "type": "string", "title": "location_id", "description": "The ID of the associated location." }, "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The inventory level's stocked quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The inventory level's incoming quantity." } } } }, "update": { "type": "array", "description": "The inventory levels to update.", "items": { "type": "object", "description": "The inventory level's details.", "properties": { "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The inventory level's stocked quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The inventory level's incoming quantity." }, "location_id": { "type": "string", "title": "location_id", "description": "The associated stock location's ID." }, "id": { "type": "string", "title": "id", "description": "The ID of the location level." } }, "required": [ "location_id" ] } }, "delete": { "type": "array", "description": "The inventory levels to delete.", "items": { "type": "string", "title": "delete", "description": "The ID of the inventory level to delete." } }, "force": { "type": "boolean", "title": "force", "description": "Whether to delete specified inventory levels even if they have a non-zero stocked quantity." } }, "x-schemaName": "AdminBatchInventoryItemLocationsLevel" }, "AdminBatchInventoryItemsLocationLevels": { "type": "object", "description": "The inventory levels to manage.", "properties": { "create": { "type": "array", "description": "The inventory levels to create.", "items": { "$ref": "#/components/schemas/AdminBatchCreateInventoryItemsLocationLevels" } }, "update": { "type": "array", "description": "The inventory levels to update.", "items": { "$ref": "#/components/schemas/AdminBatchUpdateInventoryItemsLocationLevels" } }, "delete": { "type": "array", "description": "The IDs of the inventory levels to delete.", "items": { "type": "string", "title": "delete", "description": "The ID of the inventory level to delete." } }, "force": { "type": "boolean", "title": "force", "description": "Whether to delete specified inventory levels even if they have a non-zero stocked quantity." } }, "required": [ "create", "update", "delete" ], "x-schemaName": "AdminBatchInventoryItemsLocationLevels" }, "AdminBatchInventoryItemsLocationLevelsResponse": { "type": "object", "description": "The result of managing inventory levels.", "x-schemaName": "AdminBatchInventoryItemsLocationLevelsResponse", "properties": { "created": { "type": "array", "description": "The created inventory levels.", "items": { "$ref": "#/components/schemas/InventoryLevel" } }, "updated": { "type": "array", "description": "The updated inventory levels.", "items": { "$ref": "#/components/schemas/InventoryLevel" } }, "deleted": { "type": "array", "description": "The IDs of deleted inventory levels.", "items": { "type": "string", "title": "deleted", "description": "The ID of a deleted inventory level." } } } }, "AdminBatchProductRequest": { "type": "object", "description": "The products to create, update, or delete.", "x-schemaName": "AdminBatchProductRequest", "properties": { "create": { "type": "array", "description": "The products to create.", "items": { "$ref": "#/components/schemas/AdminCreateProduct" } }, "update": { "type": "array", "description": "The products to update.", "items": { "$ref": "#/components/schemas/AdminBatchUpdateProduct" } }, "delete": { "type": "array", "description": "The products to delete.", "items": { "type": "string", "title": "delete", "description": "A product's ID." } } } }, "AdminBatchProductResponse": { "type": "object", "description": "The details of the products created, updated, or deleted.", "x-schemaName": "AdminBatchProductResponse", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "type": "array", "description": "The created products", "items": { "$ref": "#/components/schemas/AdminProduct" } }, "updated": { "type": "array", "description": "The updated products.", "items": { "$ref": "#/components/schemas/AdminProduct" } }, "deleted": { "type": "object", "description": "The deleted products' details.", "required": [ "ids", "object", "deleted" ], "properties": { "ids": { "type": "array", "description": "The IDs of deleted products.", "items": { "type": "string", "title": "ids", "description": "The ID of a deleted product." } }, "object": { "type": "string", "title": "object", "description": "The name of the deleted objects.", "default": "product" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the products were deleted." } } } } }, "AdminBatchProductVariantRequest": { "type": "object", "description": "The product variants to create, update, or delete.", "x-schemaName": "AdminBatchProductVariantRequest", "properties": { "create": { "type": "array", "description": "The product variants to create.", "items": { "$ref": "#/components/schemas/AdminCreateProductVariant" } }, "update": { "type": "array", "description": "The product variants to update.", "items": { "$ref": "#/components/schemas/AdminBatchUpdateProductVariant" } }, "delete": { "type": "array", "description": "The product variants to delete.", "items": { "type": "string", "title": "delete", "description": "A product variant's ID." } } } }, "AdminBatchProductVariantResponse": { "type": "object", "description": "The details of the product variants created, updated, or deleted.", "x-schemaName": "AdminBatchProductVariantResponse", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "type": "array", "description": "The created product variants.", "items": { "$ref": "#/components/schemas/AdminProductVariant" } }, "updated": { "type": "array", "description": "The updated product variants.", "items": { "$ref": "#/components/schemas/AdminProductVariant" } }, "deleted": { "type": "object", "description": "The details of the deleted product variants.", "required": [ "ids", "object", "deleted" ], "properties": { "ids": { "type": "array", "description": "The IDs of the deleted product variants.", "items": { "type": "string", "title": "ids", "description": "The ID of a deleted variant." } }, "object": { "type": "string", "title": "object", "description": "The name of the deleted objects.", "default": "variant" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the product variants were deleted." } } } } }, "AdminBatchUpdateInventoryItemsLocationLevels": { "type": "object", "description": "The details of an inventory level to update.", "required": [ "location_id", "inventory_item_id" ], "properties": { "location_id": { "type": "string", "title": "location_id", "description": "The ID of the associated stock location." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the associated inventory item." }, "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The stocked quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The incoming quantity to be added to stock." }, "id": { "type": "string", "title": "id", "description": "The update's ID." } }, "x-schemaName": "AdminBatchUpdateInventoryItemsLocationLevels" }, "AdminBatchUpdateProduct": { "type": "object", "description": "The product's details.", "x-schemaName": "AdminBatchUpdateProduct", "properties": { "title": { "type": "string", "title": "title", "description": "The product's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "Whether the product is a gift card." }, "discountable": { "type": "boolean", "title": "discountable", "description": "Whether discounts can be applied on the product." }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "The image's details.", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "url", "description": "The image's URL." } } } }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail URL." }, "handle": { "type": "string", "title": "handle", "description": "The product's unique handle." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "type_id": { "type": "string", "title": "type_id", "description": "The ID of the product's type." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The ID of the product's collection." }, "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object", "description": "The product's category.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The category's ID." } } } }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "The product's tag.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tag's ID." } } } }, "options": { "type": "array", "description": "The product's options.", "items": { "$ref": "#/components/schemas/AdminUpdateProductOption" } }, "variants": { "type": "array", "description": "The product's variants. You can add new variants or update existing ones, passing their IDs in the object.", "items": { "oneOf": [ { "$ref": "#/components/schemas/AdminCreateProductVariant" }, { "$ref": "#/components/schemas/AdminUpdateProductVariant" } ] } }, "sales_channels": { "type": "array", "description": "The sales channels that the product is available in.", "items": { "type": "object", "description": "The sales channel's details.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The sales channel's ID." } } } }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's MID code." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "metadata": { "type": "object", "description": "The product's metadata, can hold custom key-value pairs." }, "external_id": { "type": "string", "title": "external_id", "description": "The ID of the product in an external or third-party system." }, "id": { "type": "string", "title": "id", "description": "The product's ID." }, "shipping_profile_id": { "type": "string", "title": "shipping_profile_id", "description": "The ID of the product's shipping profile." } }, "required": [ "id" ] }, "AdminBatchUpdateProductVariant": { "type": "object", "description": "The properties to update of a product variant.", "x-schemaName": "AdminBatchUpdateProductVariant", "properties": { "title": { "type": "string", "title": "title", "description": "The product variant's title." }, "sku": { "type": "string", "title": "sku", "description": "The product variant's SKU." }, "ean": { "type": "string", "title": "ean", "description": "The product variant's EAN." }, "upc": { "type": "string", "title": "upc", "description": "The product variant's UPC." }, "barcode": { "type": "string", "title": "barcode", "description": "The product variant's barcode." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product variant's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product variant's MID code." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether customers can order the variant even if it's not in stock." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The product variant's rank among its siblings." }, "weight": { "type": "number", "title": "weight", "description": "The product variant's weight." }, "length": { "type": "number", "title": "length", "description": "The product variant's length." }, "height": { "type": "number", "title": "height", "description": "The product variant's height." }, "width": { "type": "number", "title": "width", "description": "The product variant's width." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product variant's origin country." }, "material": { "type": "string", "title": "material", "description": "The product variant's material." }, "metadata": { "type": "object", "description": "The product variant's metadata, can hold custom key-value pairs." }, "prices": { "type": "array", "description": "The product variant's prices.", "items": { "$ref": "#/components/schemas/AdminCreateProductVariantPrice" } }, "options": { "type": "object", "description": "The product variant's options." }, "id": { "type": "string", "title": "id", "description": "The update's ID." } }, "required": [ "id" ] }, "AdminCampaign": { "type": "object", "description": "The campaign's details.", "x-schemaName": "AdminCampaign", "required": [ "id", "name", "description", "currency", "campaign_identifier", "starts_at", "ends_at", "budget", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The campaign's ID." }, "name": { "type": "string", "title": "name", "description": "The campaign's name." }, "description": { "type": "string", "title": "description", "description": "The campaign's description." }, "currency": { "type": "string", "title": "currency", "description": "The campaign's currency." }, "campaign_identifier": { "type": "string", "title": "campaign_identifier", "description": "The campaign's identifier." }, "starts_at": { "type": "string", "title": "starts_at", "description": "The date and time that the campaign starts." }, "ends_at": { "type": "string", "title": "ends_at", "description": "The date and time that the campaign ends." }, "budget": { "type": "object", "description": "The campaign's budget.", "required": [ "id", "type", "currency_code", "limit", "used" ], "properties": { "id": { "type": "string", "title": "id", "description": "The budget's ID." }, "type": { "type": "string", "description": "The budget's type. `spend` means the limit is set on the total amount discounted by the campaign's promotions; `usage` means the limit is set on the total number of times the campaign's promotions can be used.\n", "enum": [ "spend", "usage" ] }, "currency_code": { "type": "string", "title": "currency_code", "description": "The budget's currency code." }, "limit": { "type": "number", "title": "limit", "description": "The budget's limit." }, "used": { "type": "number", "title": "used", "description": "How much of the budget has been used. If the limit is `spend`, this property holds the total amount discounted so far. If the limit is `usage`, it holds the number of times the campaign's promotions have been used so far.\n" } } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the campaign was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the campaign was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the campaign was deleted." } } }, "AdminCampaignResponse": { "type": "object", "description": "The campaign's details.", "x-schemaName": "AdminCampaignResponse", "required": [ "campaign" ], "properties": { "campaign": { "$ref": "#/components/schemas/AdminCampaign" } } }, "AdminClaim": { "type": "object", "description": "The claim's details.", "x-schemaName": "AdminClaim", "required": [ "order", "return", "id", "type", "order_id", "display_id", "order_version", "created_at", "updated_at", "canceled_at", "additional_items", "claim_items" ], "properties": { "id": { "type": "string", "title": "id", "description": "The claim's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order associated with the claim." }, "claim_items": { "type": "array", "description": "The order items targetted by the claim.", "items": { "$ref": "#/components/schemas/BaseClaimItem" } }, "additional_items": { "type": "array", "description": "The outbound or new items of the claim.", "items": { "$ref": "#/components/schemas/BaseClaimItem" } }, "return": { "$ref": "#/components/schemas/AdminReturn" }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated return." }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether the customer should be notified about changes in the claim." }, "refund_amount": { "type": "number", "title": "refund_amount", "description": "The amount to be refunded." }, "display_id": { "type": "number", "title": "display_id", "description": "The claim's display ID." }, "shipping_methods": { "type": "array", "description": "The claim's shipping methods.", "items": { "$ref": "#/components/schemas/AdminOrderShippingMethod" } }, "transactions": { "type": "array", "description": "The claim's transactions.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions", "description": "Learn more about transactions of orders and associated models." }, "items": { "$ref": "#/components/schemas/BaseOrderTransaction" } }, "metadata": { "type": "object", "description": "The claim's metadata, used to store custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The claim's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The claim's update date." }, "order": { "$ref": "#/components/schemas/AdminOrder" }, "type": { "type": "string", "description": "The claim's type.", "enum": [ "replace", "refund" ] }, "order_version": { "type": "string", "title": "order_version", "description": "The version of the order when the claim is applied." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the claim." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the claim was canceled.", "format": "date-time" }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the claim was deleted." } } }, "AdminClaimDeleteResponse": { "type": "object", "description": "The details of the deleted claim.", "x-schemaName": "AdminClaimDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The claim's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "claim" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the claim was deleted." } } }, "AdminClaimListResponse": { "type": "object", "description": "The paginated list of claims.", "x-schemaName": "AdminClaimListResponse", "required": [ "limit", "offset", "count", "claims" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "claims": { "type": "array", "description": "The list of claims.", "items": { "$ref": "#/components/schemas/AdminClaim" } } } }, "AdminClaimOrderResponse": { "type": "object", "description": "The created claim's details.", "x-schemaName": "AdminClaimOrderResponse", "required": [ "order", "claim" ], "properties": { "order": { "$ref": "#/components/schemas/Order" }, "claim": { "$ref": "#/components/schemas/AdminClaim" } } }, "AdminClaimPreviewResponse": { "type": "object", "description": "The details of the claim, as well as a preview of the order when the claim is applied.", "x-schemaName": "AdminClaimPreviewResponse", "required": [ "order_preview", "claim" ], "properties": { "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" }, "claim": { "$ref": "#/components/schemas/AdminClaim" } } }, "AdminClaimRequestResponse": { "type": "object", "description": "The details of the claim, its return, and a preview of the order when the claim is applied.", "x-schemaName": "AdminClaimRequestResponse", "required": [ "return", "order_preview", "claim" ], "properties": { "return": { "$ref": "#/components/schemas/AdminReturn" }, "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" }, "claim": { "$ref": "#/components/schemas/AdminClaim" } } }, "AdminClaimResponse": { "type": "object", "description": "The claim's details.", "x-schemaName": "AdminClaimResponse", "required": [ "claim" ], "properties": { "claim": { "$ref": "#/components/schemas/AdminClaim" } } }, "AdminClaimReturnPreviewResponse": { "type": "object", "description": "The details of the claim's return, with a preview of the order when the claim's return is applied.", "x-schemaName": "AdminClaimReturnPreviewResponse", "required": [ "order_preview", "return" ], "properties": { "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" }, "return": { "$ref": "#/components/schemas/AdminReturn" } } }, "AdminCollection": { "type": "object", "description": "The product collection's details.", "x-schemaName": "AdminCollection", "required": [ "id", "title", "handle", "created_at", "updated_at", "deleted_at", "metadata" ], "properties": { "id": { "type": "string", "title": "id", "description": "The collection's ID." }, "title": { "type": "string", "title": "title", "description": "The collection's title." }, "handle": { "type": "string", "title": "handle", "description": "The collection's handle." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The collection's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The collection's update date." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The collection's deletion date." }, "products": { "type": "array", "description": "The collection's products.", "items": { "$ref": "#/components/schemas/BaseProduct" } }, "metadata": { "type": "object", "description": "The collection's metadata, used to store custom key-value pairs." } } }, "AdminCollectionDeleteResponse": { "type": "object", "description": "The details of the deleted collection.", "x-schemaName": "AdminCollectionDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The collection's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "collection" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the collection was deleted." } } }, "AdminCollectionListResponse": { "type": "object", "description": "The paginated list of product collections.", "x-schemaName": "AdminCollectionListResponse", "required": [ "limit", "offset", "count", "collections" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned results." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "collections": { "type": "array", "description": "The list of product collections.", "items": { "$ref": "#/components/schemas/AdminCollection" } } } }, "AdminCollectionResponse": { "type": "object", "description": "The collection's details.", "x-schemaName": "AdminCollectionResponse", "required": [ "collection" ], "properties": { "collection": { "$ref": "#/components/schemas/AdminCollection" } } }, "AdminCreateApiKey": { "type": "object", "description": "The API key's details.", "x-schemaName": "AdminCreateApiKey", "required": [ "title", "type" ], "properties": { "title": { "type": "string", "title": "title", "description": "The API key's title." }, "type": { "type": "string", "description": "The API key's type. Use `secret` for a user's API key; Use `publishable` for Publishable API keys.", "enum": [ "publishable", "secret" ] } } }, "AdminCreateCollection": { "type": "object", "description": "the product collection's details.", "x-schemaName": "AdminCreateCollection", "required": [ "title" ], "properties": { "title": { "type": "string", "title": "title", "description": "The collection's title." }, "handle": { "type": "string", "title": "handle", "description": "The collection's handle." }, "metadata": { "type": "object", "description": "The collection's metadata, used to store custom key-value pairs." } } }, "AdminCreateCustomerGroup": { "type": "object", "description": "The customer group's details.", "x-schemaName": "AdminCreateCustomerGroup", "required": [ "name" ], "properties": { "name": { "type": "string", "title": "name", "description": "The customer group's name." }, "metadata": { "type": "object", "description": "The customer group's metadata, used to store custom key-value pairs." } } }, "AdminCreateFulfillment": { "type": "object", "description": "The filfillment's details.", "x-schemaName": "AdminCreateFulfillment", "required": [ "data", "items", "metadata", "order_id", "location_id", "provider_id", "delivery_address", "labels" ], "properties": { "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the items are fulfilled from." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the provider handling this fulfillment." }, "delivery_address": { "type": "object", "description": "The address to deliver the items to.", "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "phone": { "type": "string", "title": "phone", "description": "The customer's phone." }, "company": { "type": "string", "title": "company", "description": "The delivery address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The delivery address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The delivery address's second line." }, "city": { "type": "string", "title": "city", "description": "The delivery address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The delivery address's country code." }, "province": { "type": "string", "title": "province", "description": "The delivery address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The delivery address's postal code." }, "metadata": { "type": "object", "description": "The delivery address's metadata, used to store custom key-value pairs." } } }, "items": { "type": "array", "description": "The items to fulfill.", "items": { "type": "object", "description": "An item to fulfill.", "required": [ "title", "quantity", "sku", "barcode" ], "properties": { "title": { "type": "string", "title": "title", "description": "The item's title." }, "sku": { "type": "string", "title": "sku", "description": "The item's SKU." }, "quantity": { "type": "number", "title": "quantity", "description": "The quantity to fulfill of the item." }, "barcode": { "type": "string", "title": "barcode", "description": "The item's barcode." }, "line_item_id": { "type": "string", "title": "line_item_id", "description": "The ID of the associated line item." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item associated with the underlying variant." } } } }, "labels": { "type": "array", "description": "The labels for the fulfillment's shipments.", "items": { "type": "object", "description": "A shipment's label.", "required": [ "tracking_number", "tracking_url", "label_url" ], "properties": { "tracking_number": { "type": "string", "title": "tracking_number", "description": "The label's tracking number." }, "tracking_url": { "type": "string", "title": "tracking_url", "description": "The label's tracking URL." }, "label_url": { "type": "string", "title": "label_url", "description": "The label's URL." } } } }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this fulfillment is created for." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option used in the order." }, "data": { "type": "object", "description": "Any data useful for the fulfillment provider to handle the fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property", "description": "Learn more about the data property." } }, "packed_at": { "type": "string", "title": "packed_at", "description": "The date and time the fulfillment was packed.", "format": "date-time" }, "shipped_at": { "type": "string", "title": "shipped_at", "description": "The date and time the fulfillment was shipped.", "format": "date-time" }, "delivered_at": { "type": "string", "title": "delivered_at", "description": "The date and time the fulfillment was delivered.", "format": "date-time" }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date and time the fulfillment was canceled.", "format": "date-time" }, "metadata": { "type": "object", "description": "The fulfillment's metadata, used to store custom key-value pairs." } } }, "AdminCreateInventoryItem": { "type": "object", "description": "The inventory item's details.", "x-schemaName": "AdminCreateInventoryItem", "properties": { "sku": { "type": "string", "title": "sku", "description": "The inventory item's SKU." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The inventory item's HS code." }, "weight": { "type": "number", "title": "weight", "description": "The inventory item's weight." }, "length": { "type": "number", "title": "length", "description": "The inventory item's length." }, "height": { "type": "number", "title": "height", "description": "The inventory item's height." }, "width": { "type": "number", "title": "width", "description": "The inventory item's width." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The inventory item's origin country." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The inventory item's mid code." }, "material": { "type": "string", "title": "material", "description": "The inventory item's material." }, "title": { "type": "string", "title": "title", "description": "The inventory item's title." }, "description": { "type": "string", "title": "description", "description": "The description of the variant associated with the inventory item." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the item requires shipping." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The inventory item's thumbnail." }, "metadata": { "type": "object", "description": "The inventory item's metadata, used to store custom key-value pairs." } } }, "AdminCreatePriceList": { "type": "object", "description": "The price list's details.", "x-schemaName": "AdminCreatePriceList", "required": [ "title", "description" ], "properties": { "title": { "type": "string", "title": "title", "description": "The price list's title." }, "description": { "type": "string", "title": "description", "description": "The price list's description." }, "starts_at": { "type": "string", "title": "starts_at", "description": "The date and time the price list starts at.", "format": "date-time" }, "ends_at": { "type": "string", "title": "ends_at", "description": "The date and time the price list ends at.", "format": "date-time" }, "status": { "type": "string", "description": "The price list's status.", "enum": [ "active", "draft" ] }, "type": { "type": "string", "description": "The price list's type.", "enum": [ "sale", "override" ] }, "rules": { "type": "object", "description": "The price list's rules.", "example": { "product_category_id": "pcat_123" } }, "prices": { "type": "array", "description": "The price list's prices.", "items": { "type": "object", "description": "A price's details.", "required": [ "currency_code", "variant_id", "amount" ], "properties": { "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the product variant this price is for." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity required in the cart for this price to be applied." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity in the cart that shouldn't be crossed for this price to be applied." }, "rules": { "type": "object", "description": "The price's rules.", "example": { "region_id": "reg_123" } } } } } } }, "AdminCreatePricePreference": { "type": "object", "description": "The price preference's details.", "x-schemaName": "AdminCreatePricePreference", "properties": { "attribute": { "type": "string", "title": "attribute", "description": "The name of the attribute the price preference applies on.", "example": "currency_code" }, "value": { "type": "string", "title": "value", "description": "The attribute's value.", "example": "usd" }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the price is tax inclusive if the value of the specified attribute matches the specified value." } } }, "AdminCreateProduct": { "type": "object", "description": "The product's details.", "x-schemaName": "AdminCreateProduct", "required": [ "title", "options" ], "properties": { "title": { "type": "string", "title": "title", "description": "The product's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "Whether the product is a gift card." }, "discountable": { "type": "boolean", "title": "discountable", "description": "Whether the product is discountable." }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "A product's image details.", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "url", "description": "The image's URL." } } } }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The URL of the product's thumbnail." }, "handle": { "type": "string", "title": "handle", "description": "The product's handle." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "type_id": { "type": "string", "title": "type_id", "description": "The ID of the type the product belongs to." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The ID of the collection the product belongs to." }, "categories": { "type": "array", "description": "The categories the product belongs to.", "items": { "type": "object", "description": "A category's details.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The category's ID." } } } }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "A tag's details.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tag's ID." } } } }, "options": { "type": "array", "description": "The product's options.", "items": { "$ref": "#/components/schemas/AdminCreateProductOption" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "$ref": "#/components/schemas/AdminCreateProductVariant" } }, "sales_channels": { "type": "array", "description": "The sales channels the product is available in.", "items": { "type": "object", "description": "A sales channel's details.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The sales channel's ID." } } } }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's MID code." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "metadata": { "type": "object", "description": "The product's metadata, used to store custom key-value pairs." }, "external_id": { "type": "string", "title": "external_id", "description": "The ID of the product in an external or third-party system." }, "shipping_profile_id": { "type": "string", "title": "shipping_profile_id", "description": "The ID of the product's shipping profile." } } }, "AdminCreateProductCategory": { "type": "object", "description": "The product category's details.", "x-schemaName": "AdminCreateProductCategory", "required": [ "name" ], "properties": { "name": { "type": "string", "title": "name", "description": "The product category's name." }, "description": { "type": "string", "title": "description", "description": "The product category's description." }, "handle": { "type": "string", "title": "handle", "description": "The product category's handle." }, "is_internal": { "type": "boolean", "title": "is_internal", "description": "Whether the product category is only used and seen by admin users." }, "is_active": { "type": "boolean", "title": "is_active", "description": "Whether the product category is active." }, "parent_category_id": { "type": "string", "title": "parent_category_id", "description": "The ID of a category that's the parent of this one." }, "rank": { "type": "number", "title": "rank", "description": "The sorting order of the product category among sibling categories." }, "metadata": { "type": "object", "description": "The product category's metadata, used to store custom key-value pairs." } } }, "AdminCreateProductOption": { "type": "object", "description": "The product option's details.", "x-schemaName": "AdminCreateProductOption", "required": [ "title", "values" ], "properties": { "title": { "type": "string", "title": "title", "description": "The product option's title." }, "values": { "type": "array", "description": "The product option's values.", "items": { "type": "string", "title": "values", "description": "A value." } } } }, "AdminCreateProductTag": { "type": "object", "description": "The product tag's details.", "x-schemaName": "AdminCreateProductTag", "required": [ "value" ], "properties": { "value": { "type": "string", "title": "value", "description": "The product tag's value." }, "metadata": { "type": "object", "description": "The product tag's metadata, used to store custom key-value pairs." } } }, "AdminCreateProductType": { "type": "object", "description": "The details of the product type to create.", "x-schemaName": "AdminCreateProductType", "required": [ "value" ], "properties": { "metadata": { "type": "object", "description": "The product's metadata, used to store custom key-value pairs." }, "value": { "type": "string", "title": "value", "description": "The product type's value." } } }, "AdminCreateProductVariant": { "type": "object", "description": "The product variant's details.", "x-schemaName": "AdminCreateProductVariant", "required": [ "title", "prices" ], "properties": { "title": { "type": "string", "title": "title", "description": "The variant's title." }, "sku": { "type": "string", "title": "sku", "description": "The variant's SKU." }, "ean": { "type": "string", "title": "ean", "description": "The variant's EAN." }, "upc": { "type": "string", "title": "upc", "description": "The variant's UPC." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's MID code." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether it's allowed to order this variant when it's out of stock." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "Whether Medusa manages the variant's inventory quantity. If disabled, the product variant is always considered in stock." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The sorting order of the variant among other variants in the product." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "metadata": { "type": "object", "description": "The variant's metadata, used to store custom key-value pairs." }, "prices": { "type": "array", "description": "The variant's prices.", "items": { "$ref": "#/components/schemas/AdminCreateProductVariantPrice" } }, "options": { "type": "object", "description": "The variant's options, where the key is an option's name, and the value is the option's value.", "example": { "Color": "Black" } }, "inventory_items": { "type": "array", "description": "The variant's inventory items to create.", "items": { "$ref": "#/components/schemas/AdminCreateProductVariantInventoryKit" } } } }, "AdminCreateProductVariantInventoryKit": { "type": "object", "description": "The details of a variant's inventory item.", "x-schemaName": "AdminCreateProductVariantInventoryKit", "required": [ "inventory_item_id" ], "properties": { "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The inventory item's ID." }, "required_quantity": { "type": "number", "title": "required_quantity", "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`." } } }, "AdminCreateProductVariantPrice": { "type": "object", "description": "The details of a variant's price.", "x-schemaName": "AdminCreateProductVariantPrice", "required": [ "currency_code", "amount" ], "properties": { "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity that must be available in the cart for this price to apply." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity that must not be surpassed in the cart for this price to apply." }, "rules": { "type": "object", "description": "The price's rules.", "example": { "region_id": "reg_123" }, "properties": { "region_id": { "type": "string", "title": "region_id", "description": "The ID of a region." } }, "required": [ "region_id" ] } } }, "AdminCreatePromotionRule": { "type": "object", "description": "The promotion rule's details.", "x-schemaName": "AdminCreatePromotionRule", "required": [ "operator", "attribute", "values" ], "properties": { "operator": { "type": "string", "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.", "enum": [ "gte", "lte", "gt", "lt", "eq", "ne", "in" ] }, "description": { "type": "string", "title": "description", "description": "The rule's description." }, "attribute": { "type": "string", "title": "attribute", "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.", "example": "items.product.id" }, "values": { "oneOf": [ { "type": "string", "title": "values", "description": "The attribute's value.", "example": "prod_123" }, { "type": "array", "description": "The allowed attribute values.", "items": { "type": "string", "title": "values", "description": "An attribute value.", "example": "prod_123" } } ] } } }, "AdminCreateRefundReason": { "type": "object", "description": "The refund reason's details.", "x-schemaName": "AdminCreateRefundReason", "required": [ "label" ], "properties": { "label": { "type": "string", "title": "label", "description": "The refund reason's label." }, "description": { "type": "string", "title": "description", "description": "The refund reason's description." } } }, "AdminCreateRegion": { "type": "object", "description": "The region's details.", "x-schemaName": "AdminCreateRegion", "required": [ "name", "currency_code" ], "properties": { "name": { "type": "string", "title": "name", "description": "The region's name." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The region's currency code.", "example": "usd" }, "countries": { "type": "array", "description": "The region's countries.", "items": { "type": "string", "title": "countries", "description": "A country code.", "example": "us" } }, "automatic_taxes": { "type": "boolean", "title": "automatic_taxes", "description": "Whether taxes are calculated automatically during checkout in this region." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether prices in this region are tax inclusive." }, "payment_providers": { "type": "array", "description": "The payment providers enabled in this region.", "items": { "type": "string", "title": "payment_providers", "description": "A payment provider's ID.", "example": "pp_stripe_stripe" } }, "metadata": { "type": "object", "description": "The region's metadata, used to store custom key-value pairs." } } }, "AdminCreateReservation": { "type": "object", "description": "The reservation's details.", "x-schemaName": "AdminCreateReservation", "required": [ "location_id", "inventory_item_id", "quantity" ], "properties": { "line_item_id": { "type": "string", "title": "line_item_id", "description": "The ID of the line item this reservation is created for." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the quantity is reserved from." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item associated with the line item's variant." }, "quantity": { "type": "number", "title": "quantity", "description": "The reserved quantity." }, "description": { "type": "string", "title": "description", "description": "The reservation's description." }, "metadata": { "type": "object", "description": "The reservation's metadata, used to store custom key-value pairs." } } }, "AdminCreateReturnReason": { "type": "object", "description": "The details of the return reason to create.", "x-schemaName": "AdminCreateReturnReason", "required": [ "value", "label" ], "properties": { "value": { "type": "string", "title": "value", "description": "The return reason's value." }, "label": { "type": "string", "title": "label", "description": "The return reason's label." }, "description": { "type": "string", "title": "description", "description": "The return reason's description." }, "parent_return_reason_id": { "type": "string", "title": "parent_return_reason_id", "description": "The ID of the parent return reason." }, "metadata": { "type": "object", "description": "The return reason's metadata, can hold custom key-value pairs." } } }, "AdminCreateSalesChannel": { "type": "object", "description": "The sales channel's details.", "x-schemaName": "AdminCreateSalesChannel", "required": [ "name" ], "properties": { "name": { "type": "string", "title": "name", "description": "The sales channel's name." }, "description": { "type": "string", "title": "description", "description": "The sales channel's description." }, "is_disabled": { "type": "boolean", "title": "is_disabled", "description": "Whether the sales channel is disabled." }, "metadata": { "type": "object", "description": "The sales channel's metadata, used to store custom key-value pairs." } } }, "AdminCreateShipment": { "type": "object", "description": "The shipment's details.", "x-schemaName": "AdminCreateShipment", "required": [ "labels" ], "properties": { "labels": { "type": "array", "description": "The shipment's labels.", "items": { "type": "object", "description": "A shipment label's details.", "required": [ "tracking_number", "tracking_url", "label_url" ], "properties": { "tracking_number": { "type": "string", "title": "tracking_number", "description": "The label's tracking number." }, "tracking_url": { "type": "string", "title": "tracking_url", "description": "The label's tracking URL." }, "label_url": { "type": "string", "title": "label_url", "description": "The label's URL." } } } } } }, "AdminCreateShippingOption": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "AdminCreateShippingOption", "required": [ "name", "service_zone_id", "shipping_profile_id", "price_type", "provider_id", "type", "prices" ], "properties": { "name": { "type": "string", "title": "name", "description": "The shipping option's name." }, "service_zone_id": { "type": "string", "title": "service_zone_id", "description": "The ID of the associated service zone." }, "shipping_profile_id": { "type": "string", "title": "shipping_profile_id", "description": "The ID of the associated shipping profile." }, "data": { "type": "object", "description": "The shipping option's data, useful for the fulfillment provider handling its processing.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "price_type": { "type": "string", "description": "The shipping option's price type. If `flat`, the shipping option has a fixed price set in `prices`. Otherwise, the shipping option's price is calculated by the fulfillment provider.", "enum": [ "flat", "calculated" ] }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the fulfillment provider handling this shipping option." }, "type": { "$ref": "#/components/schemas/AdminCreateShippingOptionType" }, "prices": { "type": "array", "description": "The shipping option's prices.", "items": { "oneOf": [ { "type": "object", "description": "The price's details.", "x-schemaName": "AdminCreateShippingOptionPriceWithCurrency", "required": [ "currency_code", "amount" ], "properties": { "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code.", "example": "usd" }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." } } }, { "type": "object", "description": "The price's details.", "x-schemaName": "AdminCreateShippingOptionPriceWithRegion", "required": [ "region_id", "amount" ], "properties": { "region_id": { "type": "string", "title": "region_id", "description": "The ID of the region this price is used in." }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." } } } ] } }, "rules": { "type": "array", "description": "The shipping option's rules.", "items": { "$ref": "#/components/schemas/AdminCreateShippingOptionRule" } } } }, "AdminCreateShippingOptionRule": { "type": "object", "description": "The details of the shipping option rule.", "x-schemaName": "AdminCreateShippingOptionRule", "required": [ "operator", "attribute", "value" ], "properties": { "operator": { "type": "string", "description": "The operator used to check whether a rule applies.", "enum": [ "gt", "lt", "eq", "ne", "in", "lte", "gte", "nin" ] }, "attribute": { "type": "string", "title": "attribute", "description": "The name of a property or table that the rule applies to.", "example": "customer_group" }, "value": { "oneOf": [ { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" }, { "type": "array", "description": "Values of the attribute that enable this rule.", "items": { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" } } ] } } }, "AdminCreateShippingOptionType": { "type": "object", "description": "The shipping option type's details.", "x-schemaName": "AdminCreateShippingOptionType", "required": [ "label", "description", "code" ], "properties": { "label": { "type": "string", "title": "label", "description": "The type's label." }, "description": { "type": "string", "title": "description", "description": "The type's description." }, "code": { "type": "string", "title": "code", "description": "The type's code." } } }, "AdminCreateShippingProfile": { "type": "object", "description": "The shipping profile's details.", "x-schemaName": "AdminCreateShippingProfile", "required": [ "name", "type" ], "properties": { "name": { "type": "string", "title": "name", "description": "The shipping profile's name." }, "type": { "type": "string", "title": "type", "description": "The shipping profile's type." }, "metadata": { "type": "object", "description": "The shipping profile's metadata, used to store custom key-value pairs." } } }, "AdminCreateStockLocation": { "type": "object", "description": "The stock location's details.", "x-schemaName": "AdminCreateStockLocation", "required": [ "name" ], "properties": { "name": { "type": "string", "title": "name", "description": "The stock location's name." }, "address_id": { "type": "string", "title": "address_id", "description": "The ID of the stock location's address." }, "address": { "$ref": "#/components/schemas/AdminUpsertStockLocationAddress" }, "metadata": { "type": "object", "description": "The stock location's metadata, used to store custom key-value pairs." } } }, "AdminCreateTaxRate": { "type": "object", "description": "The tax rate's details.", "x-schemaName": "AdminCreateTaxRate", "required": [ "name", "tax_region_id", "code" ], "properties": { "name": { "type": "string", "title": "name", "description": "The tax rate's name.", "example": "VAT" }, "tax_region_id": { "type": "string", "title": "tax_region_id", "description": "The ID of the tax region this rate belongs to." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge.", "example": 10 }, "code": { "type": "string", "title": "code", "description": "The code the tax rate is identified by." }, "rules": { "type": "array", "description": "The tax rate's rules.", "items": { "$ref": "#/components/schemas/AdminCreateTaxRateRule" } }, "is_default": { "type": "boolean", "title": "is_default", "description": "Whether the tax rate is the default in its tax region." }, "is_combinable": { "type": "boolean", "title": "is_combinable", "description": "Whether the tax rate should be combined with parent rates.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates" } }, "metadata": { "type": "object", "description": "The tax rate's metadata, used to store custom key-value pairs." } } }, "AdminCreateTaxRateRule": { "type": "object", "description": "The tax rate rule's details.", "x-schemaName": "AdminCreateTaxRateRule", "required": [ "reference", "reference_id" ], "properties": { "reference": { "type": "string", "title": "reference", "description": "The name of a table in the database that this rule points to.", "example": "product_type" }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of a record in the table specified in reference.", "example": "ptype_123" } } }, "AdminCreateTaxRegion": { "type": "object", "description": "The tax region's details.", "x-schemaName": "AdminCreateTaxRegion", "required": [ "country_code" ], "properties": { "country_code": { "type": "string", "title": "country_code", "description": "The tax region's country code.", "example": "us" }, "province_code": { "type": "string", "title": "province_code", "description": "The tax region's province code." }, "parent_id": { "type": "string", "title": "parent_id", "description": "The ID of the parent tax region." }, "default_tax_rate": { "type": "object", "description": "The tax region's default tax rate.", "required": [ "code", "name" ], "properties": { "rate": { "type": "number", "title": "rate", "description": "The rate to charge.", "example": 10 }, "code": { "type": "string", "title": "code", "description": "The code the tax rate is identified by" }, "name": { "type": "string", "title": "name", "description": "The default tax rate's name.", "example": "VAT" }, "is_combinable": { "type": "boolean", "description": "Whether the tax rate should be combined with parent rates.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates" } }, "metadata": { "type": "object", "description": "The default tax rate's metadata, used to store custom key-value pairs." } } }, "metadata": { "type": "object", "description": "The tax region's metadata, used to store custom key-value pairs." } } }, "AdminCreateVariantInventoryItem": { "type": "object", "description": "The details of the variant-inventory item association.", "x-schemaName": "AdminCreateVariantInventoryItem", "required": [ "inventory_item_id", "required_quantity" ], "properties": { "required_quantity": { "type": "number", "title": "required_quantity", "description": "The quantity of the variant in the inventory item." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The inventory item's ID." } } }, "AdminCreateWorkflowsAsyncResponse": { "type": "object", "description": "The details of changing a workflow execution's step status.", "x-schemaName": "AdminCreateWorkflowsAsyncResponse", "required": [ "transaction_id", "step_id" ], "properties": { "transaction_id": { "type": "string", "title": "transaction_id", "description": "The workflows execution's transaction ID." }, "step_id": { "type": "string", "title": "step_id", "description": "The ID of the step whose status was changed." }, "response": { "description": "Sets the step's response. It accepts any type." }, "compensate_input": { "description": "Sets the compensation function's input. It accepts any response." }, "action": { "type": "string", "description": "Whether to invoke or compensate the step.", "enum": [ "invoke", "compensate" ] } } }, "AdminCreateWorkflowsRun": { "type": "object", "description": "The details of the workflow to execute.", "x-schemaName": "AdminCreateWorkflowsRun", "properties": { "input": { "description": "The input to pass to the workflow. Can be of any type." }, "transaction_id": { "type": "string", "title": "transaction_id", "description": "The ID of the workflow execution's transaction." } } }, "AdminCurrency": { "type": "object", "description": "The currency's currencies.", "x-schemaName": "AdminCurrency", "required": [ "code", "symbol", "symbol_native", "name", "decimal_digits", "rounding", "created_at", "updated_at", "deleted_at" ], "properties": { "code": { "type": "string", "title": "code", "description": "The currency's code.", "example": "usd" }, "symbol": { "type": "string", "title": "symbol", "description": "The currency's symbol.", "example": "$" }, "symbol_native": { "type": "string", "title": "symbol_native", "description": "The currency's native symbol, if different than the symbol.", "example": "$" }, "name": { "type": "string", "title": "name", "description": "The currency's name." }, "decimal_digits": { "type": "number", "title": "decimal_digits", "description": "The number of digits after the decimal for prices in this currency." }, "rounding": { "type": "number", "title": "rounding", "description": "The rounding percision applied on prices in this currency." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The currency's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The currency's update date." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The currency's deletion date." } } }, "AdminCurrencyListResponse": { "type": "object", "description": "The paginated list of currencies.", "x-schemaName": "AdminCurrencyListResponse", "required": [ "limit", "offset", "count", "currencies" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "currencies": { "type": "array", "description": "The list of currencies.", "items": { "$ref": "#/components/schemas/AdminCurrency" } } } }, "AdminCurrencyResponse": { "type": "object", "description": "The currency's details.", "x-schemaName": "AdminCurrencyResponse", "required": [ "currency" ], "properties": { "currency": { "$ref": "#/components/schemas/AdminCurrency" } } }, "AdminCustomer": { "type": "object", "description": "The customer's details.", "x-schemaName": "AdminCustomer", "required": [ "has_account", "addresses", "id", "email", "default_billing_address_id", "default_shipping_address_id", "company_name", "first_name", "last_name" ], "properties": { "id": { "type": "string", "title": "id", "description": "The customer's ID." }, "has_account": { "type": "boolean", "title": "has_account", "description": "Whether the customer is registered." }, "groups": { "type": "array", "description": "The customer's groups.", "items": { "$ref": "#/components/schemas/AdminCustomerGroup" } }, "email": { "type": "string", "title": "email", "description": "The customer's email.", "format": "email" }, "default_billing_address_id": { "type": "string", "title": "default_billing_address_id", "description": "The ID of the address used as the default billing address." }, "default_shipping_address_id": { "type": "string", "title": "default_shipping_address_id", "description": "The ID of the address used as the default shipping address." }, "company_name": { "type": "string", "title": "company_name", "description": "The customer's company name." }, "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "addresses": { "type": "array", "description": "The customer's addresses.", "items": { "$ref": "#/components/schemas/AdminCustomerAddress" } }, "phone": { "type": "string", "title": "phone", "description": "The customer's phone." }, "metadata": { "type": "object", "description": "The customer's metadata, used to store custom key-value pairs." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created this customer, if available." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The customer's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The customer's update date." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The customer's deletion date." } } }, "AdminCustomerAddress": { "type": "object", "description": "The customer's address.", "x-schemaName": "AdminCustomerAddress", "required": [ "id", "address_name", "is_default_shipping", "is_default_billing", "customer_id", "company", "first_name", "last_name", "address_1", "address_2", "city", "country_code", "province", "postal_code", "phone", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "address_name": { "type": "string", "title": "address_name", "description": "The address's name." }, "is_default_shipping": { "type": "boolean", "title": "is_default_shipping", "description": "Whether the address is the default shipping address." }, "is_default_billing": { "type": "boolean", "title": "is_default_billing", "description": "Whether the address is the default billing address." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that this address belongs to." }, "company": { "type": "string", "title": "company", "description": "The customer's company." }, "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "metadata": { "type": "object", "description": "The address's metadata, used to store custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The address's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The address's update date." } } }, "AdminCustomerAddressResponse": { "type": "object", "description": "The address's details.", "x-schemaName": "AdminCustomerAddressResponse", "required": [ "address" ], "properties": { "address": { "$ref": "#/components/schemas/AdminCustomerAddress" } } }, "AdminCustomerGroup": { "type": "object", "description": "The customer group's details.", "x-schemaName": "AdminCustomerGroup", "required": [ "customers", "id", "name", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The customer group's ID." }, "name": { "type": "string", "title": "name", "description": "The customer group's name." }, "customers": { "type": "array", "description": "The customer group's customers.", "items": { "type": "object" } }, "metadata": { "type": "object", "description": "The customer group's metadata, used to store custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The customer group's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The customer group's update date." } } }, "AdminCustomerGroupResponse": { "type": "object", "description": "The customer group's details.", "x-schemaName": "AdminCustomerGroupResponse", "required": [ "customer_group" ], "properties": { "customer_group": { "$ref": "#/components/schemas/AdminCustomerGroup" } } }, "AdminCustomerInGroupFilters": { "type": "object", "description": "Filters to apply on customers to retrieve their groups.", "x-schemaName": "AdminCustomerInGroupFilters", "properties": { "id": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a customer's ID." }, { "type": "array", "description": "Filter by customer IDs.", "items": { "type": "string", "title": "id", "description": "A customer's ID." } } ] }, "email": { "oneOf": [ { "type": "string", "title": "email", "description": "Filter by a customer's email.", "format": "email" }, { "type": "array", "description": "Filter by customer emails.", "items": { "type": "string", "title": "email", "description": "A customer's email.", "format": "email" } }, { "type": "object", "description": "Apply filters on the customer's email.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } ] }, "default_billing_address_id": { "oneOf": [ { "type": "string", "title": "default_billing_address_id", "description": "Filter by the ID of a customer's default billing address." }, { "type": "array", "description": "Filter by the IDs of a customers' default billing address.", "items": { "type": "string", "title": "default_billing_address_id", "description": "The ID of a customer's default billing address." } } ] }, "default_shipping_address_id": { "oneOf": [ { "type": "string", "title": "default_shipping_address_id", "description": "Filter by the ID of a customer's default shipping address." }, { "type": "array", "description": "Filter by the IDs of a customers' default shipping address.", "items": { "type": "string", "title": "default_shipping_address_id", "description": "The ID of a customer's default shipping address." } } ] }, "company_name": { "oneOf": [ { "type": "string", "title": "company_name", "description": "Filter by a customer's company name." }, { "type": "array", "description": "Filter by customers' company names.", "items": { "type": "string", "title": "company_name", "description": "A company name." } } ] }, "first_name": { "oneOf": [ { "type": "string", "title": "first_name", "description": "Filter by a customer's first name." }, { "type": "array", "description": "Filter by customers' first names.", "items": { "type": "string", "title": "first_name", "description": "A first name." } } ] }, "last_name": { "oneOf": [ { "type": "string", "title": "last_name", "description": "Filter by a customer's last name." }, { "type": "array", "description": "Filter by customers' last names.", "items": { "type": "string", "title": "last_name", "description": "A last name." } } ] }, "created_by": { "oneOf": [ { "type": "string", "title": "created_by", "description": "Filter by the ID of a user to retrieve the groups of the customers they created." }, { "type": "array", "description": "Filter by the ID of users to retrieve the groups of the customers they created.", "items": { "type": "string", "title": "created_by", "description": "A user's ID." } } ] }, "created_at": { "type": "object", "description": "Filter the customer's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, "updated_at": { "type": "object", "description": "Filter the customer's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, "deleted_at": { "type": "object", "description": "Filter the customer's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by an exact match.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } } }, "AdminCustomerResponse": { "type": "object", "description": "The customer's details.", "x-schemaName": "AdminCustomerResponse", "required": [ "customer" ], "properties": { "customer": { "$ref": "#/components/schemas/AdminCustomer" } } }, "AdminDeletePaymentCollectionResponse": { "type": "object", "description": "The result of deleting the payment collection.", "x-schemaName": "AdminDeletePaymentCollectionResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment collection's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the object that was deleted.", "default": "payment-collection" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the object was deleted." } } }, "AdminDraftOrder": { "type": "object", "description": "The draft order's details.", "x-schemaName": "AdminDraftOrder", "required": [ "payment_collections", "items", "shipping_methods", "status", "currency_code", "id", "version", "region_id", "customer_id", "sales_channel_id", "email", "payment_status", "fulfillment_status", "summary", "created_at", "updated_at", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "payment_collections": { "type": "array", "description": "The draft order's payment collections.", "items": { "$ref": "#/components/schemas/AdminPaymentCollection" } }, "fulfillments": { "type": "array", "description": "The draft order's fulfillments.", "items": { "$ref": "#/components/schemas/AdminOrderFulfillment" } }, "sales_channel": { "$ref": "#/components/schemas/AdminSalesChannel" }, "customer": { "$ref": "#/components/schemas/AdminCustomer" }, "shipping_address": { "$ref": "#/components/schemas/AdminOrderAddress" }, "billing_address": { "$ref": "#/components/schemas/AdminOrderAddress" }, "items": { "type": "array", "description": "The draft order's items.", "items": { "$ref": "#/components/schemas/AdminOrderLineItem" } }, "shipping_methods": { "type": "array", "description": "The draft order's shipping methods.", "items": { "$ref": "#/components/schemas/AdminOrderShippingMethod" } }, "status": { "type": "string", "title": "status", "description": "The draft order's status." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The draft order's currency code.", "example": "usd" }, "id": { "type": "string", "title": "id", "description": "The draft order's ID." }, "version": { "type": "number", "title": "version", "description": "The draft order's version." }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the region associated with the draft order." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that the draft order belongs to." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the sales channel that the draft order is placed in." }, "email": { "type": "string", "title": "email", "description": "The customer email associated with the draft order.", "format": "email" }, "display_id": { "type": "number", "title": "display_id", "description": "The draft order's display ID." }, "payment_status": { "type": "string", "description": "The draft order's payment status.", "enum": [ "not_paid", "awaiting", "authorized", "partially_authorized", "canceled", "captured", "partially_captured", "partially_refunded", "refunded", "requires_action" ] }, "fulfillment_status": { "type": "string", "description": "The draft order's fulfillment status.", "enum": [ "canceled", "not_fulfilled", "partially_fulfilled", "fulfilled", "partially_shipped", "shipped", "partially_delivered", "delivered" ] }, "transactions": { "type": "array", "description": "The draft order's transactions.", "items": { "$ref": "#/components/schemas/BaseOrderTransaction" } }, "summary": { "$ref": "#/components/schemas/BaseOrderSummary" }, "metadata": { "type": "object", "description": "The draft order's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the draft order was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the draft order was updated." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The total of the draft order's items including taxes, excluding promotions." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The total of the draft order's items excluding taxes, including promotions." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The tax total of the draft order's items excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The total of the draft order's items including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The total of the draft order's items excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The tax total of the draft order's items including promotions." }, "original_total": { "type": "number", "title": "original_total", "description": "The draft order's total excluding promotions, including taxes." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The draft order's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The draft order's tax total, excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The draft order's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The draft order's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The draft order's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The draft order's discount or promotions total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The tax total of draft order's discount or promotion." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The draft order's gift card total." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The tax total of the draft order's gift card." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The draft order's shipping total including taxes and promotions." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The draft order's shipping total excluding taxes, including promotions." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The tax total of the draft order's shipping." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The draft order's shipping total including taxes, excluding promotions." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The draft order's shipping total excluding taxes, including promotions." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The tax total of the draft order's shipping excluding promotions." } } }, "AdminDraftOrderListResponse": { "type": "object", "description": "The list of draft orders with pagination fields.", "x-schemaName": "AdminDraftOrderListResponse", "required": [ "limit", "offset", "count", "draft_orders" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items retrieved." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total count of items available." }, "draft_orders": { "type": "array", "description": "The list of draft orders.", "items": { "$ref": "#/components/schemas/AdminDraftOrder" } } } }, "AdminDraftOrderResponse": { "type": "object", "description": "The draft order's details.", "x-schemaName": "AdminDraftOrderResponse", "required": [ "draft_order" ], "properties": { "draft_order": { "$ref": "#/components/schemas/AdminDraftOrder" } } }, "AdminExchange": { "type": "object", "description": "The exchange's details.", "x-schemaName": "AdminExchange", "required": [ "id", "order_id", "created_at", "updated_at", "canceled_at", "deleted_at", "additional_items", "return_items" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the exchange is created for." }, "return_items": { "type": "array", "description": "The items returned (inbound) by the exchange.", "items": { "$ref": "#/components/schemas/AdminReturnItem" } }, "additional_items": { "type": "array", "description": "The new items (outbound) sent by the exchange.", "items": { "$ref": "#/components/schemas/BaseExchangeItem" } }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer notifications when the exchange is updated." }, "difference_due": { "type": "number", "title": "difference_due", "description": "The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer." }, "return": { "$ref": "#/components/schemas/AdminReturn" }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated exchange." }, "id": { "type": "string", "title": "id", "description": "The exchange's ID." }, "display_id": { "type": "string", "title": "display_id", "description": "The exchange's display ID." }, "shipping_methods": { "type": "array", "description": "The shipping methods used to send the new (outbound) items.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethod" } }, "transactions": { "type": "array", "description": "The exchange's transactions.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions" }, "items": { "$ref": "#/components/schemas/BaseOrderTransaction" } }, "metadata": { "type": "object", "description": "The exchange's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date that the exchange was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date that the exchange was updated." }, "order_version": { "type": "string", "title": "order_version", "description": "The version of the order once the exchange is applied." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the exchange." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the exchange was canceled.", "format": "date-time" }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the exchange was deleted." }, "order": { "$ref": "#/components/schemas/BaseOrder" }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether variants that are out-of-stock can still be added as additional or outbound items." } } }, "AdminExchangeDeleteResponse": { "type": "object", "description": "The details of deleting an exchange.", "x-schemaName": "AdminExchangeDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The exchange's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "exchange" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the exchange was deleted." } } }, "AdminExchangeOrderResponse": { "type": "object", "description": "The exchange's details.", "x-schemaName": "AdminExchangeOrderResponse", "required": [ "order", "exchange" ], "properties": { "order": { "$ref": "#/components/schemas/Order" }, "exchange": { "$ref": "#/components/schemas/AdminExchange" } } }, "AdminExchangePreviewResponse": { "type": "object", "description": "A preview of the order once the exchange is applied.", "x-schemaName": "AdminExchangePreviewResponse", "required": [ "order_preview", "exchange" ], "properties": { "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" }, "exchange": { "$ref": "#/components/schemas/AdminExchange" } } }, "AdminExchangeRequestResponse": { "type": "object", "description": "The details of a requested exchange.", "x-schemaName": "AdminExchangeRequestResponse", "required": [ "return", "order_preview", "exchange" ], "properties": { "return": { "$ref": "#/components/schemas/AdminReturn" }, "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" }, "exchange": { "$ref": "#/components/schemas/AdminExchange" } } }, "AdminExchangeResponse": { "type": "object", "description": "The exchange's details.", "x-schemaName": "AdminExchangeResponse", "required": [ "exchange" ], "properties": { "exchange": { "$ref": "#/components/schemas/AdminExchange" } } }, "AdminExchangeReturnResponse": { "type": "object", "description": "The details of an exchange's return.", "x-schemaName": "AdminExchangeReturnResponse", "required": [ "order_preview", "return" ], "properties": { "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" }, "return": { "$ref": "#/components/schemas/AdminReturn" } } }, "AdminExportProductResponse": { "type": "object", "description": "The details of the product export.", "x-schemaName": "AdminExportProductResponse", "required": [ "transaction_id" ], "properties": { "transaction_id": { "type": "string", "title": "transaction_id", "description": "The ID of the workflow execution's transaction. Use it to check the status of the export by sending a GET request to `/admin/workflows-executions/export-products/:transaction-id`" } } }, "AdminFile": { "type": "object", "description": "A file's details.", "x-schemaName": "AdminFile", "required": [ "id", "url" ], "properties": { "id": { "type": "string", "title": "id", "description": "The file's ID." }, "url": { "type": "string", "title": "url", "description": "The file's URL." } } }, "AdminFileListResponse": { "type": "object", "description": "The list of uploaded files.", "x-schemaName": "AdminFileListResponse", "required": [ "files" ], "properties": { "files": { "type": "array", "description": "The list of uploaded files.", "items": { "$ref": "#/components/schemas/AdminFile" } } } }, "AdminFileResponse": { "type": "object", "description": "A file's details.", "x-schemaName": "AdminFileResponse", "required": [ "file" ], "properties": { "file": { "$ref": "#/components/schemas/AdminFile" } } }, "AdminFulfillment": { "type": "object", "description": "The fulfillment's details.", "x-schemaName": "AdminFulfillment", "required": [ "id", "location_id", "provider_id", "shipping_option_id", "provider", "delivery_address", "items", "labels", "packed_at", "shipped_at", "delivered_at", "canceled_at", "data", "metadata", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The fulfillment's ID." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the fulfillment's items are shipped from." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the fulfillment provider handling this fulfillment." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this fulfillment is created for." }, "provider": { "$ref": "#/components/schemas/AdminFulfillmentProvider" }, "delivery_address": { "$ref": "#/components/schemas/AdminFulfillmentAddress" }, "items": { "type": "array", "description": "The fulfillment's items.", "items": { "$ref": "#/components/schemas/AdminFulfillmentItem" } }, "labels": { "type": "array", "description": "The fulfillment's shipment labels.", "items": { "$ref": "#/components/schemas/AdminFulfillmentLabel" } }, "packed_at": { "type": "string", "title": "packed_at", "description": "The date the fulfillment was packed at." }, "shipped_at": { "type": "string", "title": "shipped_at", "description": "The date the fulfillment was shipped at." }, "delivered_at": { "type": "string", "title": "delivered_at", "description": "The date the fulfillment was delivered at." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the fulfillment was canceled at." }, "data": { "type": "object", "description": "The fulfillment's data, useful for the third-party provider handling the fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "metadata": { "type": "object", "description": "The fulfillment's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the fulfillment was created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the fulfillment was updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the fulfillment was deleted at." } } }, "AdminFulfillmentAddress": { "type": "object", "description": "An address's details.", "x-schemaName": "AdminFulfillmentAddress", "required": [ "id", "fulfillment_id", "company", "first_name", "last_name", "address_1", "address_2", "city", "country_code", "province", "postal_code", "phone", "metadata", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "fulfillment_id": { "type": "string", "title": "fulfillment_id", "description": "The ID of the fulfillment that the address belongs to." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code." }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the address was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the address was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the address was deleted." } } }, "AdminFulfillmentItem": { "type": "object", "description": "The details of a fulfillment's item.", "x-schemaName": "AdminFulfillmentItem", "required": [ "id", "title", "quantity", "sku", "barcode", "line_item_id", "inventory_item_id", "fulfillment_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity to be fulfilled." }, "sku": { "type": "string", "title": "sku", "description": "The item's SKU." }, "barcode": { "type": "string", "title": "barcode", "description": "The item's barcode." }, "line_item_id": { "type": "string", "title": "line_item_id", "description": "The ID of the order's line item to be fulfilled." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item of the underlying product variant." }, "fulfillment_id": { "type": "string", "title": "fulfillment_id", "description": "The ID of the fulfillment the item belongs to." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the item was deleted." } } }, "AdminFulfillmentLabel": { "type": "object", "description": "The details of a fulfillmet's shipment label.", "x-schemaName": "AdminFulfillmentLabel", "required": [ "id", "tracking_number", "tracking_url", "label_url", "fulfillment_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The label's ID." }, "tracking_number": { "type": "string", "title": "tracking_number", "description": "The label's tracking number." }, "tracking_url": { "type": "string", "title": "tracking_url", "description": "The label's tracking URL." }, "label_url": { "type": "string", "title": "label_url", "description": "The label's URL." }, "fulfillment_id": { "type": "string", "title": "fulfillment_id", "description": "The ID of the fulfillment the label is associated with." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the label was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the label was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the label was deleted." } } }, "AdminFulfillmentProvider": { "type": "object", "description": "The fulfillment provider's details.", "x-schemaName": "AdminFulfillmentProvider", "required": [ "id", "is_enabled" ], "properties": { "id": { "type": "string", "title": "id", "description": "The provider's ID." }, "is_enabled": { "type": "boolean", "title": "is_enabled", "description": "The provider's is enabled." } } }, "AdminFulfillmentProviderListResponse": { "type": "object", "description": "The paginated list of fulfillment providers.", "x-schemaName": "AdminFulfillmentProviderListResponse", "required": [ "limit", "offset", "count", "fulfillment_providers" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total count of items." }, "fulfillment_providers": { "type": "array", "description": "The list of fulfillment providers.", "items": { "$ref": "#/components/schemas/AdminFulfillmentProvider" } } } }, "AdminFulfillmentProviderOption": { "type": "object", "description": "The fulfillment option's details.", "x-schemaName": "AdminFulfillmentProviderOption", "required": [ "id", "is_return" ], "properties": { "id": { "type": "string", "title": "id", "description": "The fulfillment option's ID." }, "is_return": { "type": "boolean", "title": "is_return", "description": "Whether the fulfillment option is used for returns." } } }, "AdminFulfillmentProviderOptionsListResponse": { "type": "object", "description": "The paginated list of fulfillment options.", "x-schemaName": "AdminFulfillmentProviderOptionsListResponse", "required": [ "limit", "offset", "count", "fulfillment_options" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "fulfillment_options": { "type": "array", "description": "The list of fulfillment options.", "items": { "$ref": "#/components/schemas/AdminFulfillmentProviderOption" } } } }, "AdminFulfillmentResponse": { "type": "object", "description": "A fulfillment's details.", "x-schemaName": "AdminFulfillmentResponse", "required": [ "fulfillment" ], "properties": { "fulfillment": { "$ref": "#/components/schemas/AdminFulfillment" } } }, "AdminFulfillmentSet": { "type": "object", "description": "The service zone's fulfillment set.", "x-schemaName": "AdminFulfillmentSet", "required": [ "id", "name", "type", "location", "service_zones", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The fulfillment set's ID." }, "name": { "type": "string", "title": "name", "description": "The fulfillment set's name." }, "type": { "type": "string", "title": "type", "description": "The fulfillment set's type." }, "location": { "$ref": "#/components/schemas/AdminStockLocation" }, "service_zones": { "type": "array", "description": "The fulfillment set's service zones.", "items": { "$ref": "#/components/schemas/AdminServiceZone" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The fulfillment set's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The fulfillment set's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The fulfillment set's deleted at." } } }, "AdminFulfillmentSetDeleteResponse": { "type": "object", "description": "The deletion details.", "x-schemaName": "AdminFulfillmentSetDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The fulfillment set's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "fulfillment_set" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the fulfillment set was deleted." } } }, "AdminFulfillmentSetResponse": { "type": "object", "description": "The fulfillment set's details.", "x-schemaName": "AdminFulfillmentSetResponse", "required": [ "fulfillment_set" ], "properties": { "fulfillment_set": { "$ref": "#/components/schemas/AdminFulfillmentSet" } } }, "AdminGeoZone": { "type": "object", "description": "The geo zone's geo zones.", "x-schemaName": "AdminGeoZone", "required": [ "id", "type", "country_code", "province_code", "city", "postal_expression", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The geo zone's ID." }, "type": { "type": "string", "description": "The geo zone's type.", "enum": [ "country", "province", "city", "zip" ] }, "country_code": { "type": "string", "title": "country_code", "description": "The geo zone's country code." }, "province_code": { "type": "string", "title": "province_code", "description": "The geo zone's province code." }, "city": { "type": "string", "title": "city", "description": "The geo zone's city." }, "postal_expression": { "type": "object", "description": "The geo zone's postal expression." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The geo zone's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The geo zone's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The geo zone's deleted at." } } }, "AdminImportProductRequest": { "type": "object", "description": "The import's details.", "x-schemaName": "AdminImportProductRequest", "required": [ "file" ], "properties": { "file": { "type": "object", "description": "A File to upload.", "externalDocs": { "url": "https://developer.mozilla.org/en-US/docs/Web/API/File", "description": "Learn more about the File API" }, "title": "file" } } }, "AdminImportProductResponse": { "type": "object", "description": "The import process's details.", "x-schemaName": "AdminImportProductResponse", "required": [ "transaction_id", "summary" ], "properties": { "transaction_id": { "type": "string", "title": "transaction_id", "description": "The ID of the workflow execution's transaction. This is useful to confirm the import using the `/admin/products/:transaction-id/import` API route." }, "summary": { "type": "object", "description": "The import's summary.", "required": [ "toCreate", "toUpdate" ], "properties": { "toCreate": { "type": "number", "title": "toCreate", "description": "The number of products that will be created by this import." }, "toUpdate": { "type": "number", "title": "toUpdate", "description": "The number of products that will be updated by this import." } } } } }, "AdminInventoryItem": { "type": "object", "description": "The inventory item's details.", "x-schemaName": "AdminInventoryItem", "required": [ "id", "requires_shipping" ], "properties": { "id": { "type": "string", "title": "id", "description": "The inventory item's ID." }, "sku": { "type": "string", "title": "sku", "description": "The inventory item's sku." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The inventory item's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The inventory item's HS code." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the inventory item requires shipping." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The inventory item's MID code." }, "material": { "type": "string", "title": "material", "description": "The inventory item's material." }, "weight": { "type": "number", "title": "weight", "description": "The inventory item's weight." }, "length": { "type": "number", "title": "length", "description": "The inventory item's length." }, "height": { "type": "number", "title": "height", "description": "The inventory item's height." }, "width": { "type": "number", "title": "width", "description": "The inventory item's width." }, "title": { "type": "string", "title": "title", "description": "The inventory item's title." }, "description": { "type": "string", "title": "description", "description": "The inventory item's description." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The thumbnail URL of the inventory item." }, "metadata": { "type": "object", "description": "Custom key-value pairs, used to store additional information about the inventory item." }, "location_levels": { "type": "array", "description": "The inventory item's location levels.", "items": { "$ref": "#/components/schemas/AdminInventoryLevel" } } } }, "AdminInventoryItemResponse": { "type": "object", "description": "The inventory item's details.", "x-schemaName": "AdminInventoryItemResponse", "required": [ "inventory_item" ], "properties": { "inventory_item": { "$ref": "#/components/schemas/AdminInventoryItem" } } }, "AdminInventoryLevel": { "type": "object", "description": "The location level's location levels.", "x-schemaName": "AdminInventoryLevel", "required": [ "id", "created_at", "updated_at", "deleted_at", "inventory_item_id", "location_id", "stocked_quantity", "reserved_quantity", "incoming_quantity", "metadata", "available_quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The location level's ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The location level's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The location level's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The location level's deleted at." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The location level's inventory item id." }, "location_id": { "type": "string", "title": "location_id", "description": "The location level's location id." }, "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The location level's stocked quantity." }, "reserved_quantity": { "type": "number", "title": "reserved_quantity", "description": "The location level's reserved quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The location level's incoming quantity." }, "metadata": { "type": "object", "description": "The location level's metadata." }, "inventory_item": { "type": "object" }, "available_quantity": { "type": "number", "title": "available_quantity", "description": "The location level's available quantity." } } }, "AdminInvite": { "type": "object", "description": "The invite's details.", "x-schemaName": "AdminInvite", "required": [ "id", "email", "accepted", "token", "expires_at", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The invite's ID." }, "email": { "type": "string", "title": "email", "description": "The invite's email.", "format": "email" }, "accepted": { "type": "boolean", "title": "accepted", "description": "Whether the invite has been accepted." }, "token": { "type": "string", "title": "token", "description": "The invite's token." }, "expires_at": { "type": "string", "title": "expires_at", "description": "The invite's expiry date.", "format": "date-time" }, "metadata": { "type": "object", "description": "The invite's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the invite was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the invite was updated." } } }, "AdminInviteResponse": { "type": "object", "description": "The invite's details.", "x-schemaName": "AdminInviteResponse", "required": [ "invite" ], "properties": { "invite": { "$ref": "#/components/schemas/AdminInvite" } } }, "AdminLinkPriceListProducts": { "type": "object", "description": "The products removal details.", "properties": { "remove": { "type": "array", "description": "The products to remove from the price list.", "items": { "type": "string", "title": "remove", "description": "The ID of a product." } } }, "x-schemaName": "AdminLinkPriceListProducts" }, "AdminNotification": { "type": "object", "description": "The notification's details.", "x-schemaName": "AdminNotification", "required": [ "id", "to", "channel", "template", "provider_id", "created_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The notification's ID." }, "to": { "type": "string", "title": "to", "description": "Where to send the notification to. For example, if `channel` is `email`, this can be an email number." }, "channel": { "type": "string", "title": "channel", "description": "Through which channel is the notification sent through.", "example": "email" }, "template": { "type": "string", "title": "template", "description": "The ID of the template in a third-party service used as the notification's shape." }, "data": { "type": "object", "description": "Data payload to send with the notification." }, "trigger_type": { "type": "string", "title": "trigger_type", "description": "What triggered this notification.", "example": "order.created" }, "resource_id": { "type": "string", "title": "resource_id", "description": "The ID of the associated resource. For example, if the notification was triggered because an order was created, this would be the ID of the order." }, "resource_type": { "type": "string", "title": "resource_type", "description": "The type of the resource that triggered the notification.", "example": "order" }, "receiver_id": { "type": "string", "title": "receiver_id", "description": "The ID of the user or customer that's receiving this notification." }, "original_notification_id": { "type": "string", "title": "original_notification_id", "description": "The ID of the original notification, if this notification is resent." }, "external_id": { "type": "string", "title": "external_id", "description": "The ID of the notification in an external or third-party system." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the provider used to send the notification." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the notification was created." } } }, "AdminNotificationListResponse": { "type": "object", "description": "The paginated list of notifications.", "x-schemaName": "AdminNotificationListResponse", "required": [ "limit", "offset", "count", "notifications" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total count of items." }, "notifications": { "type": "array", "description": "The list of notifications.", "items": { "$ref": "#/components/schemas/AdminNotification" } } } }, "AdminNotificationResponse": { "type": "object", "description": "The notification's details.", "x-schemaName": "AdminNotificationResponse", "required": [ "notification" ], "properties": { "notification": { "$ref": "#/components/schemas/AdminNotification" } } }, "AdminOrder": { "type": "object", "description": "The order's details.", "x-schemaName": "AdminOrder", "required": [ "payment_collections", "items", "shipping_methods", "status", "currency_code", "id", "version", "region_id", "customer_id", "sales_channel_id", "email", "payment_status", "fulfillment_status", "summary", "created_at", "updated_at", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "payment_collections": { "type": "array", "description": "The order's payment collections.", "items": { "$ref": "#/components/schemas/AdminPaymentCollection" } }, "fulfillments": { "type": "array", "description": "The order's fulfillments.", "items": { "$ref": "#/components/schemas/AdminOrderFulfillment" } }, "sales_channel": { "$ref": "#/components/schemas/AdminSalesChannel" }, "customer": { "$ref": "#/components/schemas/AdminCustomer" }, "shipping_address": { "$ref": "#/components/schemas/AdminOrderAddress" }, "billing_address": { "$ref": "#/components/schemas/AdminOrderAddress" }, "id": { "type": "string", "title": "id", "description": "The order's ID." }, "version": { "type": "number", "title": "version", "description": "The order's version." }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the region associated with the order." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that placed the order." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the sales channel the order is placed in." }, "email": { "type": "string", "title": "email", "description": "The email of the customer that placed the order.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The order's currency code." }, "display_id": { "type": "number", "title": "display_id", "description": "The order's display ID." }, "items": { "type": "array", "description": "The order's items.", "items": { "$ref": "#/components/schemas/AdminOrderLineItem" } }, "shipping_methods": { "type": "array", "description": "The order's shipping methods.", "items": { "$ref": "#/components/schemas/AdminOrderShippingMethod" } }, "payment_status": { "type": "string", "description": "The order's payment status.", "enum": [ "canceled", "not_paid", "awaiting", "authorized", "partially_authorized", "captured", "partially_captured", "partially_refunded", "refunded", "requires_action" ] }, "fulfillment_status": { "type": "string", "description": "The order's fulfillment status.", "enum": [ "canceled", "not_fulfilled", "partially_fulfilled", "fulfilled", "partially_shipped", "shipped", "partially_delivered", "delivered" ] }, "transactions": { "type": "array", "description": "The order's transactions.", "items": { "$ref": "#/components/schemas/BaseOrderTransaction" } }, "summary": { "$ref": "#/components/schemas/BaseOrderSummary" }, "metadata": { "type": "object", "description": "The order's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the order was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the order was updated." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The total of the order's items including taxes, excluding promotions." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The total of the order's items excluding taxes, including promotions." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The tax total of the order's items excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The total of the order's items including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The total of the order's items excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The tax total of the order's items including promotions." }, "original_total": { "type": "number", "title": "original_total", "description": "The order's total excluding promotions, including taxes." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The order's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The order's tax total, excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The order's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The order's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The order's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The order's discount or promotions total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The tax total of order's discount or promotion." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The order's gift card total." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The tax total of the order's gift card." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The order's shipping total including taxes and promotions." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The tax total of the order's shipping." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The order's shipping total including taxes, excluding promotions." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The tax total of the order's shipping excluding promotions." }, "status": { "type": "string", "title": "status", "description": "The order's status." } } }, "AdminOrderAddress": { "type": "object", "description": "An order address.", "x-schemaName": "AdminOrderAddress", "required": [ "id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer this address belongs to." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "country": { "$ref": "#/components/schemas/AdminRegionCountry" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the address was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the address was updated." } } }, "AdminOrderChange": { "type": "object", "description": "The order change's details.", "x-schemaName": "AdminOrderChange", "required": [ "order", "claim", "return_order", "exchange", "actions", "status", "id", "version", "metadata", "created_at", "updated_at", "order_id", "canceled_at", "return_id", "exchange_id", "claim_id", "requested_by", "requested_at", "confirmed_by", "confirmed_at", "declined_by", "declined_reason", "declined_at", "canceled_by" ], "properties": { "id": { "type": "string", "title": "id", "description": "The order change's ID." }, "version": { "type": "number", "title": "version", "description": "The order change's version. This will be the order's version when the change is applied." }, "change_type": { "type": "string", "description": "The order change's type.", "enum": [ "return", "exchange", "claim", "edit" ] }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this change applies on." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated return." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the associated exchange." }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the associated claim." }, "order": { "$ref": "#/components/schemas/AdminOrder" }, "return_order": { "$ref": "#/components/schemas/AdminReturn" }, "exchange": { "$ref": "#/components/schemas/AdminExchange" }, "claim": { "$ref": "#/components/schemas/AdminClaim" }, "actions": { "type": "array", "description": "The order change's actions.", "items": { "$ref": "#/components/schemas/AdminOrderChangeAction" } }, "status": { "type": "string", "description": "The order change's status.", "enum": [ "canceled", "requested", "pending", "confirmed", "declined" ] }, "requested_by": { "type": "string", "title": "requested_by", "description": "The ID of the user that requested the change." }, "requested_at": { "type": "string", "title": "requested_at", "description": "The date the order change was requested.", "format": "date-time" }, "confirmed_by": { "type": "string", "title": "confirmed_by", "description": "The ID of the user that confirmed the order change." }, "confirmed_at": { "type": "string", "title": "confirmed_at", "description": "The date the order change was confirmed.", "format": "date-time" }, "declined_by": { "type": "string", "title": "declined_by", "description": "The ID of the user that declined the order change." }, "declined_reason": { "type": "string", "title": "declined_reason", "description": "The reason the order change was declined." }, "metadata": { "type": "object", "description": "The order change's metadata, can hold custom key-value pairs." }, "declined_at": { "type": "string", "title": "declined_at", "description": "The date the order change was declined.", "format": "date-time" }, "canceled_by": { "type": "string", "title": "canceled_by", "description": "The ID of the user that canceled the order change." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the order change was canceled.", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the order change was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the order change was updated." } } }, "AdminOrderChangeAction": { "type": "object", "description": "The order change action's details.", "x-schemaName": "AdminOrderChangeAction", "required": [ "order_change", "order", "id", "created_at", "updated_at", "order_id", "internal_note", "return_id", "exchange_id", "claim_id", "order_change_id", "reference", "reference_id", "action", "details" ], "properties": { "id": { "type": "string", "title": "id", "description": "The action's ID." }, "order_change_id": { "type": "string", "title": "order_change_id", "description": "The ID of the order change that the action belongs to." }, "order_change": { "type": "object" }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the associated change is for." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated return." }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the associated claim." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the associated exchange." }, "order": { "$ref": "#/components/schemas/AdminOrder" }, "reference": { "type": "string", "title": "reference", "description": "The name of the table this action applies on.", "enum": [ "claim", "exchange", "return", "order_shipping_method" ] }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of the record in the referenced table." }, "action": { "type": "string", "description": "The applied action.", "enum": [ "CANCEL_RETURN_ITEM", "FULFILL_ITEM", "DELIVER_ITEM", "CANCEL_ITEM_FULFILLMENT", "ITEM_ADD", "ITEM_REMOVE", "ITEM_UPDATE", "RECEIVE_DAMAGED_RETURN_ITEM", "RECEIVE_RETURN_ITEM", "RETURN_ITEM", "SHIPPING_ADD", "SHIPPING_REMOVE", "SHIP_ITEM", "WRITE_OFF_ITEM", "REINSTATE_ITEM" ] }, "details": { "type": "object", "description": "The action's details.", "example": { "reference_id": 123, "quantity": 1 } }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note that's viewed only by admin users." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the action was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the action was updated." } } }, "AdminOrderChangesResponse": { "type": "object", "description": "The details of an order's changes.", "x-schemaName": "AdminOrderChangesResponse", "required": [ "order_changes" ], "properties": { "order_changes": { "type": "array", "description": "An order's changes.", "items": { "$ref": "#/components/schemas/AdminOrderChange" } } } }, "AdminOrderEditPreviewResponse": { "type": "object", "description": "The preview of an order edit.", "x-schemaName": "AdminOrderEditPreviewResponse", "required": [ "order_preview" ], "properties": { "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" } } }, "AdminOrderEditResponse": { "type": "object", "description": "An order edit's details.", "x-schemaName": "AdminOrderEditResponse", "required": [ "order_change" ], "properties": { "order_change": { "$ref": "#/components/schemas/AdminOrderChange" } } }, "AdminOrderFulfillment": { "type": "object", "description": "The fulfillment's details.", "x-schemaName": "AdminOrderFulfillment", "required": [ "id", "location_id", "packed_at", "shipped_at", "delivered_at", "canceled_at", "requires_shipping", "data", "provider_id", "shipping_option_id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The fulfillment's ID." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the items are fulfilled from." }, "packed_at": { "type": "string", "title": "packed_at", "description": "The date the items were packed.", "format": "date-time" }, "shipped_at": { "type": "string", "title": "shipped_at", "description": "The date the items were shipped.", "format": "date-time" }, "delivered_at": { "type": "string", "title": "delivered_at", "description": "The date the items were delivered.", "format": "date-time" }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the items were canceled.", "format": "date-time" }, "data": { "type": "object", "description": "Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the fulfillment provider used to handle the fulfillment." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "metadata": { "type": "object", "description": "The fulfillment's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the fulfillment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the fulfillment was updated." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the fulfillment requires shipping." } } }, "AdminOrderItem": { "type": "object", "description": "The order item's details.", "x-schemaName": "AdminOrderItem", "required": [ "order_id", "item_id", "version", "history", "item" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this item belongs to." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the associated line item." }, "version": { "type": "number", "title": "version", "description": "The order item's version." }, "history": { "type": "object", "description": "The order item's history.", "required": [ "version" ], "properties": { "version": { "type": "object", "description": "The version changes of the item.", "required": [ "from", "to" ], "properties": { "from": { "type": "number", "title": "from", "description": "The original version." }, "to": { "type": "number", "title": "to", "description": "The new version." } } } } }, "item": { "$ref": "#/components/schemas/AdminOrderLineItem" } } }, "AdminOrderLineItem": { "type": "object", "description": "The item's details.", "x-schemaName": "AdminOrderLineItem", "required": [ "title", "id", "metadata", "created_at", "updated_at", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type_id", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "detail", "refundable_total", "refundable_total_per_unit" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The URL of the item's thumbnail." }, "variant": { "$ref": "#/components/schemas/AdminProductVariant" }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated variant." }, "product": { "$ref": "#/components/schemas/AdminProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the associated product." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The ID of the collection the item's product belongs to." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant SKU." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The values of the item variant's options.", "example": { "Color": "Blue" } }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the item requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "Whether the item is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the item is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "$ref": "#/components/schemas/BaseOrderLineItemTaxLine" } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "$ref": "#/components/schemas/BaseOrderLineItemAdjustment" } }, "detail": { "type": "object" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes of the item, excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The total taxes of the item, including promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's total excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The total taxes of the item, including promotions." }, "total": { "type": "number", "title": "total", "description": "The item's total, including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The tax total of the item including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discount amount of the item." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The total taxes applied on the discounted amount." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The total refundable amount of the item's total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The total refundable amount of the item's total for a single quantity." }, "product_type_id": { "type": "string", "title": "product_type_id", "description": "The ID of the associated product's type." } } }, "AdminOrderPreview": { "type": "object", "description": "A preview of an order if a change, such as exchange, return, edit, or claim is applied on it.", "x-schemaName": "AdminOrderPreview", "required": [ "return_requested_total", "order_change", "status", "currency_code", "id", "version", "region_id", "customer_id", "sales_channel_id", "email", "payment_collections", "payment_status", "fulfillment_status", "summary", "created_at", "updated_at", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "return_requested_total": { "type": "number", "title": "return_requested_total", "description": "The total of the requested return." }, "order_change": { "$ref": "#/components/schemas/AdminOrderChange" }, "items": { "type": "array", "description": "The order's items.", "items": { "allOf": [ { "type": "object", "description": "An order's item.", "x-schemaName": "BaseOrderLineItem", "required": [ "id", "title", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "detail", "created_at", "updated_at", "metadata", "original_total", "original_subtotal", "original_tax_total", "item_total", "item_subtotal", "item_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "refundable_total", "refundable_total_per_unit" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The URL of the item's thumbnail." }, "variant": { "$ref": "#/components/schemas/BaseProductVariant" }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated variant." }, "product": { "$ref": "#/components/schemas/AdminProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the associated product." }, "product_title": { "type": "string", "title": "product_title", "description": "The title of the item's product." }, "product_description": { "type": "string", "title": "product_description", "description": "The description of the item's product." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The subtitle of the item's product." }, "product_type": { "type": "string", "title": "product_type", "description": "The ID of type of the item's product." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The ID of collection of the item's product." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The handle of the item's product." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The SKU of the item's variant." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The barcode of the item's variant." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The title of the item's variant." }, "variant_option_values": { "type": "object", "description": "The option values of the item's variant as key-value pairs. The key is the title of an option, and the value is the option's value." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the item requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "Whether the item is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the item's price includes taxes." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "$ref": "#/components/schemas/BaseOrderLineItemTaxLine" } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "$ref": "#/components/schemas/BaseOrderLineItemAdjustment" } }, "detail": { "$ref": "#/components/schemas/BaseOrderItemDetail" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The tax total of the item excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's total for a single unit including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's total for a single unit excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The tax total for a single unit of the item including promotions." }, "total": { "type": "number", "title": "total", "description": "The item's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The tax total of the item including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total of the item's discount / promotion." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The tax total of the item's discount / promotion" }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The total refundable amount of the item's total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The total refundable amount of the item's total for a single unit." } } }, { "type": "object", "description": "An order's item.", "properties": { "actions": { "type": "array", "description": "The actions applied on an item.", "items": { "type": "object", "description": "The action's details.", "x-schemaName": "BaseOrderChangeAction" } } } } ] } }, "shipping_methods": { "type": "array", "description": "The order's shipping methods.", "items": { "allOf": [ { "type": "object", "description": "The shipping method's details.", "x-schemaName": "BaseOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this shipping method belongs to." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the shipping method's amount is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this method was created from." }, "data": { "type": "object", "description": "The data relevant for the fulfillment provider to process this shipment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts#data-property" } }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethodTaxLine" } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethodAdjustment" } }, "original_total": { "oneOf": [ { "type": "string", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." }, { "type": "number", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." } ] }, "original_subtotal": { "oneOf": [ { "type": "string", "title": "original_subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, { "type": "number", "title": "original_subtotal", "description": "The shipping method's total excluding taxes, including promotions." } ] }, "original_tax_total": { "oneOf": [ { "type": "string", "title": "original_tax_total", "description": "The tax total of the shipping method excluding promotions." }, { "type": "number", "title": "original_tax_total", "description": "The tax total of the shipping method excluding promotions." } ] }, "total": { "oneOf": [ { "type": "string", "title": "total", "description": "The shipping method's total including taxes and promotions." }, { "type": "number", "title": "total", "description": "The shipping method's total including taxes and promotions." } ] }, "subtotal": { "oneOf": [ { "type": "string", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, { "type": "number", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." } ] }, "tax_total": { "oneOf": [ { "type": "string", "title": "tax_total", "description": "The tax total of the shipping method including promotions." }, { "type": "number", "title": "tax_total", "description": "The tax total of the shipping method including promotions." } ] }, "discount_total": { "oneOf": [ { "type": "string", "title": "discount_total", "description": "The total of the shipping method's promotion." }, { "type": "number", "title": "discount_total", "description": "The total of the shipping method's promotion." } ] }, "discount_tax_total": { "oneOf": [ { "type": "string", "title": "discount_tax_total", "description": "The tax total of the shipping method's promotion." }, { "type": "number", "title": "discount_tax_total", "description": "The shipping method's discount tax total." } ] }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method was updated." } } }, { "type": "object", "description": "The shipping method's details.", "properties": { "actions": { "type": "array", "description": "The actions applied on the shipping method.", "items": { "type": "object", "description": "The action's details.", "x-schemaName": "BaseOrderChangeAction" } } } } ] } }, "currency_code": { "type": "string", "title": "currency_code", "description": "The order's currency code." }, "version": { "type": "number", "title": "version", "description": "The order's version when this preview is applied." }, "id": { "type": "string", "title": "id", "description": "The order's ID." }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the order's associated region." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that placed the order." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the sales channel that the order was placed in." }, "email": { "type": "string", "title": "email", "description": "The email of the customer that placed the order.", "format": "email" }, "display_id": { "type": "number", "title": "display_id", "description": "The order's display ID." }, "shipping_address": { "$ref": "#/components/schemas/AdminOrderAddress" }, "billing_address": { "$ref": "#/components/schemas/AdminOrderAddress" }, "payment_collections": { "type": "array", "description": "The order's payment collections.", "items": { "$ref": "#/components/schemas/AdminPaymentCollection" } }, "payment_status": { "type": "string", "description": "The order's payment status.", "enum": [ "canceled", "not_paid", "awaiting", "authorized", "partially_authorized", "captured", "partially_captured", "partially_refunded", "refunded", "requires_action" ] }, "fulfillments": { "type": "array", "description": "The order's fulfillments.", "items": { "$ref": "#/components/schemas/AdminOrderFulfillment" } }, "fulfillment_status": { "type": "string", "description": "The order's fulfillment status.", "enum": [ "canceled", "not_fulfilled", "partially_fulfilled", "fulfilled", "partially_shipped", "shipped", "partially_delivered", "delivered" ] }, "transactions": { "type": "array", "description": "The order's transactions.", "items": { "$ref": "#/components/schemas/BaseOrderTransaction" } }, "summary": { "$ref": "#/components/schemas/BaseOrderSummary" }, "metadata": { "type": "object", "description": "The order's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the order was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the order was updated." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The total of the order's items including taxes, excluding promotions." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The total of the order's items excluding taxes, including promotions." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The tax total of the order's items excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The total of the order's items including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The total of the order's items excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The tax total of the order's items including promotions." }, "original_total": { "type": "number", "title": "original_total", "description": "The order's total excluding promotions, including taxes." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The order's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The order's tax total, excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The order's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The order's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The order's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The order's discount or promotions total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The tax total of order's discount or promotion." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The order's gift card total." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The tax total of the order's gift card." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The order's shipping total including taxes and promotions." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The tax total of the order's shipping." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The order's shipping total including taxes, excluding promotions." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The tax total of the order's shipping excluding promotions." }, "customer": { "$ref": "#/components/schemas/AdminCustomer" }, "sales_channel": { "$ref": "#/components/schemas/AdminSalesChannel" }, "status": { "type": "string", "title": "status", "description": "The order's status." } } }, "AdminOrderPreviewResponse": { "type": "object", "description": "The preview of an order.", "x-schemaName": "AdminOrderPreviewResponse", "required": [ "order" ], "properties": { "order": { "$ref": "#/components/schemas/AdminOrderPreview" } } }, "AdminOrderResponse": { "type": "object", "description": "An order's details.", "x-schemaName": "AdminOrderResponse", "required": [ "order" ], "properties": { "order": { "$ref": "#/components/schemas/AdminOrder" } } }, "AdminOrderReturnResponse": { "type": "object", "description": "The order return details.", "x-schemaName": "AdminOrderReturnResponse", "required": [ "order", "return" ], "properties": { "order": { "$ref": "#/components/schemas/Order" }, "return": { "$ref": "#/components/schemas/AdminReturn" } } }, "AdminOrderShippingMethod": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "AdminOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the shipping method belongs to." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the shipping method's amount includes applied taxes." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this method was created from." }, "data": { "type": "object", "description": "The shipping method's data, useful for fulfillment provider handling its fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethodTaxLine" } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethodAdjustment" } }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's total taxes excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discounts applied on the shipping method." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The taxes applied on the discount amount." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method was updated." }, "detail": { "$ref": "#/components/schemas/BaseOrderShippingDetail" } } }, "AdminPayment": { "type": "object", "description": "The payment's details.", "x-schemaName": "AdminPayment", "required": [ "id", "amount", "currency_code", "provider_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment's ID." }, "amount": { "type": "number", "title": "amount", "description": "The payment's amount." }, "authorized_amount": { "type": "number", "title": "authorized_amount", "description": "The amount authorized of the payment." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment's currency code." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the payment provider used to process this payment." }, "data": { "type": "object", "description": "The payment's data, useful for processing by the payment provider.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment#whats-a-payment" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the payment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the payment was updated." }, "captured_at": { "type": "string", "format": "date-time", "title": "captured_at", "description": "The date the payment was captured." }, "canceled_at": { "type": "string", "format": "date-time", "title": "canceled_at", "description": "The date the payment was canceled." }, "captured_amount": { "type": "number", "title": "captured_amount", "description": "The captured amount of the payment." }, "refunded_amount": { "type": "number", "title": "captured_amount", "description": "The refunded amount of the payment." }, "captures": { "type": "array", "description": "The details of payment captures.", "items": { "$ref": "#/components/schemas/BaseCapture" } }, "refunds": { "type": "array", "description": "The details of payment refunds.", "items": { "$ref": "#/components/schemas/AdminRefund" } }, "payment_collection": { "type": "object" }, "payment_session": { "$ref": "#/components/schemas/AdminPaymentSession" } } }, "AdminPaymentCollection": { "type": "object", "description": "The payment collection's details.", "x-schemaName": "AdminPaymentCollection", "required": [ "payment_providers", "id", "currency_code", "amount", "status" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment collection's ID." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment collection's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The total amount to be paid." }, "authorized_amount": { "type": "number", "title": "authorized_amount", "description": "The total authorized amount of the collection's payments." }, "captured_amount": { "type": "number", "title": "captured_amount", "description": "The total captured amount of the collection's payments." }, "refunded_amount": { "type": "number", "title": "refunded_amount", "description": "The total refunded amount of the collection's payments." }, "completed_at": { "type": "string", "format": "date-time", "title": "completed_at", "description": "The date the payment collection was completed." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the payment collection was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the payment collection was updated." }, "metadata": { "type": "object", "description": "The payment collection's metadata, can hold custom key-value pairs." }, "status": { "type": "string", "description": "The payment collection's status.", "enum": [ "canceled", "not_paid", "awaiting", "authorized", "partially_authorized" ] }, "payment_providers": { "type": "array", "description": "The payment provider used to process the collection's payments and sessions.", "items": { "$ref": "#/components/schemas/AdminPaymentProvider" } }, "payment_sessions": { "type": "array", "description": "The payment collection's payment sessions.", "items": { "$ref": "#/components/schemas/AdminPaymentSession" } }, "payments": { "type": "array", "description": "The payment collection's payments.", "items": { "$ref": "#/components/schemas/AdminPayment" } } } }, "AdminPaymentCollectionResponse": { "type": "object", "description": "The payment collection's details.", "x-schemaName": "AdminPaymentCollectionResponse", "required": [ "payment_collection" ], "properties": { "payment_collection": { "$ref": "#/components/schemas/AdminPaymentCollection" } } }, "AdminPaymentProvider": { "type": "object", "description": "The payment provider's details.", "x-schemaName": "AdminPaymentProvider", "required": [ "is_enabled", "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment provider's ID." }, "is_enabled": { "type": "boolean", "title": "is_enabled", "description": "Whether the payment provider is enabled." } } }, "AdminPaymentResponse": { "type": "object", "description": "The payment's details.", "x-schemaName": "AdminPaymentResponse", "required": [ "payment" ], "properties": { "payment": { "$ref": "#/components/schemas/AdminPayment" } } }, "AdminPaymentSession": { "type": "object", "description": "The payment session's details.", "x-schemaName": "AdminPaymentSession", "properties": { "id": { "type": "string", "title": "id", "description": "The payment session's ID." }, "amount": { "type": "number", "title": "amount", "description": "The payment session's amount." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment session's currency code.", "example": "usd" }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the payment provider processing this session." }, "data": { "type": "object", "description": "The payment session's data, useful for the payment provider processing the payment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment-session#data-property" } }, "context": { "type": "object", "description": "The context around the payment, such as the customer's details.", "example": { "customer": { "id": "cus_123" } } }, "status": { "type": "string", "description": "The payment session's status.", "enum": [ "authorized", "captured", "canceled", "pending", "requires_more", "error" ] }, "authorized_at": { "type": "string", "title": "authorized_at", "description": "The date the payment session was authorized.", "format": "date-time" }, "payment_collection": { "type": "object" }, "payment": { "$ref": "#/components/schemas/BasePayment" } }, "required": [ "id", "amount", "currency_code", "provider_id", "data", "status" ] }, "AdminPostCancelClaimReqSchema": { "type": "object", "description": "The details of canceling a claim.", "x-schemaName": "AdminPostCancelClaimReqSchema", "properties": { "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer a notification about the claim's cancelation." } } }, "AdminPostCancelExchangeReqSchema": { "type": "object", "description": "The details of canceling an exchange.", "x-schemaName": "AdminPostCancelExchangeReqSchema", "properties": { "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send a notification to the customer about the exchange's cancelation." } } }, "AdminPostCancelReturnReqSchema": { "type": "object", "description": "The details of canceling a return.", "x-schemaName": "AdminPostCancelReturnReqSchema", "properties": { "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer a notification about the return's cancelation." } } }, "AdminPostClaimItemsReqSchema": { "type": "object", "description": "The details of the order items to add to the claim.", "x-schemaName": "AdminPostClaimItemsReqSchema", "properties": { "items": { "type": "array", "description": "The item's details.", "items": { "type": "object", "description": "An item's details.", "required": [ "id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the order's item." }, "quantity": { "type": "number", "title": "quantity", "description": "The quantity of the order's item to add to the claim." }, "reason": { "type": "string", "description": "The reason the item is claimed.", "enum": [ "missing_item", "wrong_item", "production_failure", "other" ] }, "description": { "type": "string", "title": "description", "description": "The item's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note that's only viewed by admin users." } } } } } }, "AdminPostClaimsAddItemsReqSchema": { "type": "object", "description": "The details of the outbound items to add to the claim.", "x-schemaName": "AdminPostClaimsAddItemsReqSchema", "properties": { "items": { "type": "array", "description": "The outbound item's details.", "items": { "type": "object", "description": "An item's details.", "required": [ "variant_id", "quantity" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated product variant." }, "quantity": { "type": "number", "title": "quantity", "description": "The quantity to send to the customer." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." } } } } } }, "AdminPostClaimsItemsActionReqSchema": { "type": "object", "description": "The details to update in the item.", "x-schemaName": "AdminPostClaimsItemsActionReqSchema", "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the return reason associated with the item." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note that's only viewed by admin users." } } }, "AdminPostClaimsShippingActionReqSchema": { "type": "object", "description": "The details to update in the shipping method.", "x-schemaName": "AdminPostClaimsShippingActionReqSchema", "properties": { "custom_amount": { "type": "number", "title": "custom_amount", "description": "The shipping method's custom amount." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note only viewed by admin users." }, "metadata": { "type": "object", "description": "The claim's metadata, can hold custom key-value pairs." } } }, "AdminPostClaimsShippingReqSchema": { "type": "object", "description": "The details of the shipping method used to ship outbound items.", "x-schemaName": "AdminPostClaimsShippingReqSchema", "required": [ "shipping_option_id" ], "properties": { "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "custom_amount": { "type": "number", "title": "custom_amount", "description": "Set a custom price for the shipping method." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note only viewed by admin users." }, "metadata": { "type": "object", "description": "The claim's metadata, can hold custom key-value pairs." } } }, "AdminPostExchangesAddItemsReqSchema": { "type": "object", "description": "The details of outbound items.", "x-schemaName": "AdminPostExchangesAddItemsReqSchema", "properties": { "items": { "type": "array", "description": "The details of outbound items.", "items": { "type": "object", "description": "An item's details.", "required": [ "variant_id", "quantity" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated product variant." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether the item can be added even if it's not in stock." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." } } } } } }, "AdminPostExchangesItemsActionReqSchema": { "type": "object", "description": "The details to update in an outbound item.", "x-schemaName": "AdminPostExchangesItemsActionReqSchema", "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note only viewed by admin users." } } }, "AdminPostExchangesRequestItemsReturnActionReqSchema": { "type": "object", "description": "The details to update in an inbound (returned) item.", "x-schemaName": "AdminPostExchangesRequestItemsReturnActionReqSchema", "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the associated return reason." }, "metadata": { "type": "object", "description": "The exchange's metadata, can hold custom key-value pairs." } } }, "AdminPostExchangesReturnRequestItemsReqSchema": { "type": "object", "description": "The details of the inbound (return) items.", "x-schemaName": "AdminPostExchangesReturnRequestItemsReqSchema", "properties": { "items": { "type": "array", "description": "The details of the inbound (return) items.", "items": { "type": "object", "description": "An item's details.", "required": [ "id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the order's item." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "description": { "type": "string", "title": "description", "description": "The item's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the return reason to associate with the item." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." } } } } } }, "AdminPostExchangesShippingActionReqSchema": { "type": "object", "description": "The details of the shipping method to update.", "x-schemaName": "AdminPostExchangesShippingActionReqSchema", "properties": { "custom_amount": { "type": "number", "title": "custom_amount", "description": "The shipping method's custom amount." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed by admin users only." }, "metadata": { "type": "object", "description": "The exchange's metadata, can hold custom key-value pairs." } } }, "AdminPostExchangesShippingReqSchema": { "type": "object", "description": "The outbound shipping method's details.", "x-schemaName": "AdminPostExchangesShippingReqSchema", "required": [ "shipping_option_id" ], "properties": { "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "custom_amount": { "type": "number", "title": "custom_amount", "description": "Set a custom amount for the shipping method." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed by admin users only." }, "metadata": { "type": "object", "description": "The exchange's metadata, can hold custom key-value pairs." } } }, "AdminPostOrderClaimsReqSchema": { "type": "object", "description": "The claim's details.", "x-schemaName": "AdminPostOrderClaimsReqSchema", "required": [ "type", "order_id" ], "properties": { "type": { "type": "string", "description": "The claim's type.", "enum": [ "refund", "replace" ] }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the claim is created for." }, "description": { "type": "string", "title": "description", "description": "The claim's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the associated return reason." }, "metadata": { "type": "object", "description": "The claim's metadata, can hold custom key-value pairs." } } }, "AdminPostOrderEditsAddItemsReqSchema": { "type": "object", "description": "The details of items to be edited.", "x-schemaName": "AdminPostOrderEditsAddItemsReqSchema", "properties": { "items": { "type": "array", "description": "The details of items to be edited.", "items": { "type": "object", "description": "An item's details.", "required": [ "variant_id", "quantity" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated product variant." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether the item can be added even if there's no available invenotory quantity of the variant." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." } } } } } }, "AdminPostOrderEditsItemsActionReqSchema": { "type": "object", "description": "The details to update in the item.", "x-schemaName": "AdminPostOrderEditsItemsActionReqSchema", "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." } } }, "AdminPostOrderEditsReqSchema": { "type": "object", "description": "The order edit's details.", "x-schemaName": "AdminPostOrderEditsReqSchema", "required": [ "order_id" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this edit is for." }, "description": { "type": "string", "title": "description", "description": "The order edit's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "metadata": { "type": "object", "description": "The order edit's metadata, can hold custom key-value pairs." } } }, "AdminPostOrderEditsShippingActionReqSchema": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "AdminPostOrderEditsShippingActionReqSchema", "properties": { "custom_amount": { "type": "number", "title": "custom_amount", "description": "Set a custom price for the shipping method." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "metadata": { "type": "object", "description": "The order edit's metadata, can hold custom key-value pairs." } } }, "AdminPostOrderEditsShippingReqSchema": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "AdminPostOrderEditsShippingReqSchema", "required": [ "shipping_option_id" ], "properties": { "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "custom_amount": { "type": "number", "title": "custom_amount", "description": "Set a custom price for the shipping method." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." } } }, "AdminPostOrderEditsUpdateItemQuantityReqSchema": { "type": "object", "description": "The order item's details to update.", "x-schemaName": "AdminPostOrderEditsUpdateItemQuantityReqSchema", "required": [ "quantity" ], "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." } } }, "AdminPostOrderExchangesReqSchema": { "type": "object", "description": "The exchange's details.", "x-schemaName": "AdminPostOrderExchangesReqSchema", "required": [ "order_id" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this exchange is created for." }, "description": { "type": "string", "title": "description", "description": "The exchange's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "metadata": { "type": "object", "description": "The exchange's metadata, can hold custom key-value pairs." } } }, "AdminPostReceiveReturnsReqSchema": { "type": "object", "description": "The return receival details.", "x-schemaName": "AdminPostReceiveReturnsReqSchema", "properties": { "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "description": { "type": "string", "title": "description", "description": "The return's description." }, "metadata": { "type": "object", "description": "The return's metadata, can hold custom key-value pairs." } } }, "AdminPostReturnsConfirmRequestReqSchema": { "type": "object", "description": "The confirmation's details.", "x-schemaName": "AdminPostReturnsConfirmRequestReqSchema", "properties": { "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer a notification about the confirmation." } } }, "AdminPostReturnsDismissItemsActionReqSchema": { "type": "object", "description": "The details to update of the damaged item.", "x-schemaName": "AdminPostReturnsDismissItemsActionReqSchema", "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." } } }, "AdminPostReturnsReceiveItemsActionReqSchema": { "type": "object", "description": "The details of the received item.", "x-schemaName": "AdminPostReturnsReceiveItemsActionReqSchema", "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." } } }, "AdminPostReturnsReceiveItemsReqSchema": { "type": "object", "description": "The items details.", "x-schemaName": "AdminPostReturnsReceiveItemsReqSchema", "properties": { "items": { "type": "array", "description": "The items details.", "items": { "type": "object", "description": "An item's details.", "required": [ "id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the item in the order." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "description": { "type": "string", "title": "description", "description": "The item's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." } } } } } }, "AdminPostReturnsReqSchema": { "type": "object", "description": "The return's details.", "x-schemaName": "AdminPostReturnsReqSchema", "required": [ "order_id" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the return belongs to." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the items are returned to." }, "description": { "type": "string", "title": "description", "description": "The return's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer a notification about the created return." }, "metadata": { "type": "object", "description": "The return's metadata, can hold custom key-value pairs." } } }, "AdminPostReturnsRequestItemsActionReqSchema": { "type": "object", "description": "The details to update in the item.", "x-schemaName": "AdminPostReturnsRequestItemsActionReqSchema", "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the associated return reason." }, "metadata": { "type": "object", "description": "The claim's metadata, can hold custom key-value pairs." } } }, "AdminPostReturnsRequestItemsReqSchema": { "type": "object", "description": "The items' details.", "x-schemaName": "AdminPostReturnsRequestItemsReqSchema", "properties": { "items": { "type": "array", "description": "The items' details.", "items": { "type": "object", "description": "An item's details.", "required": [ "id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "description": { "type": "string", "title": "description", "description": "The item's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the associated return reason." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." } } } } } }, "AdminPostReturnsReturnReqSchema": { "type": "object", "description": "The return's details.", "x-schemaName": "AdminPostReturnsReturnReqSchema", "properties": { "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location to return items to." }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether the customer should receive notifications about updates to the return." }, "metadata": { "type": "object", "description": "The return's metadata, can hold custom key-value pairs." } } }, "AdminPostReturnsShippingActionReqSchema": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "AdminPostReturnsShippingActionReqSchema", "properties": { "custom_amount": { "type": "number", "title": "custom_amount", "description": "Set a custom price for the shipping method." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "metadata": { "type": "object", "description": "The return's metadata, can hold custom key-value pairs." } } }, "AdminPostReturnsShippingReqSchema": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "AdminPostReturnsShippingReqSchema", "required": [ "shipping_option_id" ], "properties": { "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "custom_amount": { "type": "number", "title": "custom_amount", "description": "Set the price of the shipping method." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note viewed only by admin users." }, "metadata": { "type": "object", "description": "The exchange's metadata, can hold custom key-value pairs." } } }, "AdminPrice": { "type": "object", "description": "The price's details.", "x-schemaName": "AdminPrice", "required": [ "id", "title", "currency_code", "amount", "raw_amount", "min_quantity", "max_quantity", "price_set_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price's ID." }, "title": { "type": "string", "title": "title", "description": "The price's title." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code.", "example": "usd" }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "raw_amount": { "type": "object", "description": "The price's raw amount." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity that must be available in the cart for the price to be applied." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity allowed to be available in the cart for the price to be applied." }, "price_set_id": { "type": "string", "title": "price_set_id", "description": "The ID of the associated price set." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the price was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the price was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the price was deleted." } } }, "AdminPriceList": { "type": "object", "description": "The price list's details.", "x-schemaName": "AdminPriceList", "required": [ "id", "title", "description", "rules", "starts_at", "ends_at", "status", "type", "prices", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price list's ID." }, "title": { "type": "string", "title": "title", "description": "The price list's title." }, "description": { "type": "string", "title": "description", "description": "The price list's description." }, "rules": { "type": "object", "description": "The price list's rules." }, "starts_at": { "type": "string", "title": "starts_at", "description": "The date the price list starts." }, "ends_at": { "type": "string", "title": "ends_at", "description": "The date the price list ends." }, "status": { "type": "string", "description": "The price list's status.", "enum": [ "draft", "active" ] }, "type": { "type": "string", "description": "The price list's type.", "enum": [ "sale", "override" ] }, "prices": { "type": "array", "description": "The price list's prices.", "items": { "$ref": "#/components/schemas/AdminPriceListPrice" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the price list was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the price list was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the price list was deleted." } } }, "AdminPriceListBatchResponse": { "type": "object", "description": "The details of the created, updated, and deleted prices in a price list.", "x-schemaName": "AdminPriceListBatchResponse", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "type": "array", "description": "The created prices.", "items": { "$ref": "#/components/schemas/AdminPrice" } }, "updated": { "type": "array", "description": "The updated prices.", "items": { "$ref": "#/components/schemas/AdminPrice" } }, "deleted": { "type": "object", "description": "The details of the deleted prices.", "required": [ "ids", "object", "deleted" ], "properties": { "ids": { "type": "array", "description": "The IDs of the deleted prices.", "items": { "type": "string", "title": "ids", "description": "A price's ID." } }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "price" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the prices were deleted." } } } } }, "AdminPriceListDeleteResponse": { "type": "object", "description": "The details of the deleted price list.", "x-schemaName": "AdminPriceListDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price list's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "price_list" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the price list was deleted." } } }, "AdminPriceListListResponse": { "type": "object", "description": "The paginated list of price lists.", "x-schemaName": "AdminPriceListListResponse", "required": [ "limit", "offset", "count", "price_lists" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "price_lists": { "type": "array", "description": "The list of price lists.", "items": { "$ref": "#/components/schemas/AdminPriceList" } } } }, "AdminPriceListPrice": { "type": "object", "description": "The details of a price list's price.", "x-schemaName": "AdminPriceListPrice", "required": [ "variant_id", "rules", "id", "title", "currency_code", "amount", "raw_amount", "min_quantity", "max_quantity", "price_set_id", "created_at", "updated_at", "deleted_at" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the product variant this price list is for." }, "rules": { "type": "object", "description": "The price's rules." }, "id": { "type": "string", "title": "id", "description": "The price's ID." }, "title": { "type": "string", "title": "title", "description": "The price's title." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code.", "example": "usd" }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "raw_amount": { "type": "object", "description": "The price's raw amount." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity that must be available in the cart for the price to be applied." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity allowed to be available in the cart for the price to be applied." }, "price_set_id": { "type": "string", "title": "price_set_id", "description": "The ID of the price set this price belongs to." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the price was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the price was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the price was deleted." } } }, "AdminPriceListResponse": { "type": "object", "description": "The price list's details.", "x-schemaName": "AdminPriceListResponse", "required": [ "price_list" ], "properties": { "price_list": { "$ref": "#/components/schemas/AdminPriceList" } } }, "AdminPricePreference": { "type": "object", "description": "The price preference's details.", "x-schemaName": "AdminPricePreference", "required": [ "id", "attribute", "value", "is_tax_inclusive", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price preference's ID." }, "attribute": { "type": "string", "title": "attribute", "description": "The price preference's attribute.", "example": "region_id" }, "value": { "type": "string", "title": "value", "description": "The price preference's value.", "example": "reg_123" }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether prices matching this preference include taxes." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the price preference was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the price preference was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the price preference was deleted." } } }, "AdminPricePreferenceDeleteResponse": { "type": "object", "description": "The details of the deleted price preference.", "x-schemaName": "AdminPricePreferenceDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price preference's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "price_preference" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the price preference was deleted." } } }, "AdminPricePreferenceListResponse": { "type": "object", "description": "The paginated list of price preferences.", "x-schemaName": "AdminPricePreferenceListResponse", "required": [ "limit", "offset", "count", "price_preferences" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total count of items." }, "price_preferences": { "type": "array", "description": "The list of price preferences.", "items": { "$ref": "#/components/schemas/AdminPricePreference" } } } }, "AdminPricePreferenceResponse": { "type": "object", "description": "The price preference's details.", "x-schemaName": "AdminPricePreferenceResponse", "required": [ "price_preference" ], "properties": { "price_preference": { "$ref": "#/components/schemas/AdminPricePreference" } } }, "AdminProduct": { "type": "object", "description": "The product's details.", "x-schemaName": "AdminProduct", "required": [ "variants", "type", "options", "images", "length", "title", "status", "description", "id", "created_at", "updated_at", "subtitle", "thumbnail", "handle", "is_giftcard", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "discountable", "external_id", "deleted_at" ], "properties": { "collection": { "$ref": "#/components/schemas/AdminCollection" }, "categories": { "type": "array", "description": "The product's categories.", "items": { "$ref": "#/components/schemas/AdminProductCategory" } }, "sales_channels": { "type": "array", "description": "The sales channels that the product is available in.", "items": { "$ref": "#/components/schemas/AdminSalesChannel" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "$ref": "#/components/schemas/AdminProductVariant" } }, "type": { "$ref": "#/components/schemas/AdminProductType" }, "tags": { "type": "array", "description": "The product's tags.", "items": { "$ref": "#/components/schemas/AdminProductTag" } }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "options": { "type": "array", "description": "The product's options.", "items": { "$ref": "#/components/schemas/AdminProductOption" } }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "id": { "type": "string", "title": "id", "description": "The product's ID." }, "metadata": { "type": "object", "description": "The product's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the product was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the product was updated." }, "handle": { "type": "string", "title": "handle", "description": "The product's unique handle." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "Whether the product is a gift card." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's MID code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The ID of the collection that the product belongs to." }, "type_id": { "type": "string", "title": "type_id", "description": "The ID of the product's type." }, "images": { "type": "array", "description": "The product's images.", "items": { "$ref": "#/components/schemas/AdminProductImage" } }, "discountable": { "type": "boolean", "title": "discountable", "description": "Whether discounts can be applied on the product." }, "external_id": { "type": "string", "title": "external_id", "description": "The ID of a product in an external system, such as an ERP or CMS." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the product was deleted." }, "shipping_profile": { "$ref": "#/components/schemas/AdminShippingProfile" } } }, "AdminProductCategory": { "type": "object", "description": "The product category's details.", "x-schemaName": "AdminProductCategory", "required": [ "category_children", "parent_category", "name", "description", "id", "created_at", "updated_at", "handle", "deleted_at", "is_active", "is_internal", "rank", "parent_category_id" ], "properties": { "category_children": { "type": "array", "description": "The category's children.", "items": { "type": "object" } }, "parent_category": { "type": "object" }, "products": { "type": "array", "description": "The category's products.", "items": { "type": "object" } }, "name": { "type": "string", "title": "name", "description": "The category's name." }, "description": { "type": "string", "title": "description", "description": "The category's description." }, "id": { "type": "string", "title": "id", "description": "The category's ID." }, "metadata": { "type": "object", "description": "The category's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the category was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the category was updated." }, "handle": { "type": "string", "title": "handle", "description": "The category's unique handle." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the category was deleted." }, "is_active": { "type": "boolean", "title": "is_active", "description": "Whether the category is active. If disabled, the category isn't shown in the storefront." }, "is_internal": { "type": "boolean", "title": "is_internal", "description": "Whether the category is internal. If enabled, the category is only seen by admin users." }, "rank": { "type": "number", "title": "rank", "description": "The category's rank among sibling categories." }, "parent_category_id": { "type": "string", "title": "parent_category_id", "description": "The ID of the category's parent." } } }, "AdminProductCategoryDeleteResponse": { "type": "object", "description": "The details of deleting the category.", "x-schemaName": "AdminProductCategoryDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product category's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "product_category" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the product category was deleted." } } }, "AdminProductCategoryListResponse": { "type": "object", "description": "The paginated list of product categories.", "x-schemaName": "AdminProductCategoryListResponse", "required": [ "limit", "offset", "count", "product_categories" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "product_categories": { "type": "array", "description": "The list of product categories.", "items": { "$ref": "#/components/schemas/AdminProductCategory" } } } }, "AdminProductCategoryResponse": { "type": "object", "description": "The product category's details.", "x-schemaName": "AdminProductCategoryResponse", "required": [ "product_category" ], "properties": { "product_category": { "$ref": "#/components/schemas/AdminProductCategory" } } }, "AdminProductDeleteResponse": { "type": "object", "description": "The details of the product deletion.", "x-schemaName": "AdminProductDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "product" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the product was deleted." } } }, "AdminProductImage": { "type": "object", "description": "The image's details.", "x-schemaName": "AdminProductImage", "properties": { "id": { "type": "string", "title": "id", "description": "The image's ID." }, "url": { "type": "string", "title": "url", "description": "The image's URL." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the image was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the image was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the image was deleted." }, "metadata": { "type": "object", "description": "The image's metadata, can hold custom key-value pairs." }, "rank": { "type": "number", "title": "rank", "description": "The image's rank among sibling images." } }, "required": [ "id", "url", "rank" ] }, "AdminProductOption": { "type": "object", "description": "The product option's details.", "x-schemaName": "AdminProductOption", "required": [ "id", "title" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product option's ID." }, "title": { "type": "string", "title": "title", "description": "The product option's title." }, "product": { "type": "object" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the product this option belongs to." }, "values": { "type": "array", "description": "The product option's values.", "items": { "type": "object" } }, "metadata": { "type": "object", "description": "The product option's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the product option was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the product option was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the product option was deleted." } } }, "AdminProductOptionDeleteResponse": { "type": "object", "description": "The details of the product option deletion.", "x-schemaName": "AdminProductOptionDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product option's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "product_option" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the product option was deleted." }, "parent": { "$ref": "#/components/schemas/AdminProduct" } } }, "AdminProductOptionResponse": { "type": "object", "description": "The product option's details.", "x-schemaName": "AdminProductOptionResponse", "required": [ "product_option" ], "properties": { "product_option": { "$ref": "#/components/schemas/AdminProductOption" } } }, "AdminProductOptionValue": { "type": "object", "description": "The product option value's details.", "x-schemaName": "AdminProductOptionValue", "required": [ "id", "value" ], "properties": { "id": { "type": "string", "title": "id", "description": "The value's ID." }, "value": { "type": "string", "title": "value", "description": "The value." }, "option": { "$ref": "#/components/schemas/AdminProductOption" }, "option_id": { "type": "string", "title": "option_id", "description": "The ID of the option this value belongs to." }, "metadata": { "type": "object", "description": "The value's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the value was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the value was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the value was deleted." } } }, "AdminProductResponse": { "type": "object", "description": "The product's details.", "x-schemaName": "AdminProductResponse", "required": [ "product" ], "properties": { "product": { "$ref": "#/components/schemas/AdminProduct" } } }, "AdminProductTag": { "type": "object", "description": "The product tag's details.", "x-schemaName": "AdminProductTag", "required": [ "id", "value", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tag's ID." }, "value": { "type": "string", "title": "value", "description": "The tag's value." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tag was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tag was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the tag was deleted." }, "metadata": { "type": "object", "description": "The tag's metadata, can hold custom key-value pairs." } } }, "AdminProductTagDeleteResponse": { "type": "object", "description": "The details of the product tag deletion.", "x-schemaName": "AdminProductTagDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product tag's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "product_tag" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the product tag was deleted." } } }, "AdminProductTagListResponse": { "type": "object", "description": "The paginated list of product tags.", "x-schemaName": "AdminProductTagListResponse", "required": [ "limit", "offset", "count", "product_tags" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "product_tags": { "type": "array", "description": "The list of product tags.", "items": { "$ref": "#/components/schemas/AdminProductTag" } } } }, "AdminProductTagResponse": { "type": "object", "description": "The product tag's details.", "x-schemaName": "AdminProductTagResponse", "required": [ "product_tag" ], "properties": { "product_tag": { "$ref": "#/components/schemas/AdminProductTag" } } }, "AdminProductType": { "type": "object", "description": "The product type's details.", "x-schemaName": "AdminProductType", "required": [ "id", "value", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The type's ID." }, "value": { "type": "string", "title": "value", "description": "The type's value." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the type was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the type was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the type was deleted." }, "metadata": { "type": "object", "description": "The type's metadata, can hold custom key-value pairs." } } }, "AdminProductTypeDeleteResponse": { "type": "object", "description": "The details of the product type deletion.", "x-schemaName": "AdminProductTypeDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product type's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "product_type" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the product type was deleted." } } }, "AdminProductTypeListResponse": { "type": "object", "description": "The paginated list of product types.", "x-schemaName": "AdminProductTypeListResponse", "required": [ "limit", "offset", "count", "product_types" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "product_types": { "type": "array", "description": "The list of product types.", "items": { "$ref": "#/components/schemas/AdminProductType" } } } }, "AdminProductTypeResponse": { "type": "object", "description": "The product type's details.", "x-schemaName": "AdminProductTypeResponse", "required": [ "product_type" ], "properties": { "product_type": { "$ref": "#/components/schemas/AdminProductType" } } }, "AdminProductVariant": { "type": "object", "description": "The product variant's details.", "x-schemaName": "AdminProductVariant", "required": [ "prices", "options", "id", "title", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory", "hs_code", "origin_country", "mid_code", "material", "weight", "length", "height", "width", "created_at", "updated_at", "deleted_at" ], "properties": { "prices": { "type": "array", "description": "The variant's prices.", "items": { "$ref": "#/components/schemas/AdminPrice" } }, "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "sku": { "type": "string", "title": "sku", "description": "The variant's SKU." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's EAN code." }, "upc": { "type": "string", "title": "upc", "description": "The variant's UPC." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether the variant can be ordered even if it's out of stock." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock." }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's HS code." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's MID code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's rank among its sibling variants." }, "options": { "type": "array", "description": "The variant's option values.", "items": { "$ref": "#/components/schemas/AdminProductOptionValue" } }, "product": { "type": "object" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the product that the variant belongs to." }, "calculated_price": { "$ref": "#/components/schemas/BaseCalculatedPriceSet" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the variant was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the variant was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the variant was deleted." }, "metadata": { "type": "object", "description": "The variant's metadata, can hold custom key-value pairs." }, "inventory_items": { "type": "array", "description": "The variant's inventory items.", "items": { "$ref": "#/components/schemas/AdminProductVariantInventoryItemLink" } } } }, "AdminProductVariantDeleteResponse": { "type": "object", "description": "The details of the product variant's deletion.", "x-schemaName": "AdminProductVariantDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product variant's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object." }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the product variant was deleted.", "default": "variant" }, "parent": { "$ref": "#/components/schemas/AdminProduct" } } }, "AdminProductVariantInventoryBatchResponse": { "type": "object", "description": "The created, updated, and deleted associations between variants and inventory items.", "x-schemaName": "AdminProductVariantInventoryBatchResponse", "required": [ "created", "updated", "deleted" ], "properties": { "created": { "oneOf": [ { "$ref": "#/components/schemas/AdminProductVariantInventoryLink" }, { "type": "array", "description": "The created associations between product variants and inventory items.", "items": { "type": "object", "description": "A created association between a product variant and an inventory item.", "x-schemaName": "AdminProductVariantInventoryLink", "required": [ "productService", "inventoryService" ], "properties": { "productService": { "type": "object", "description": "The product variant's details.", "required": [ "variant_id" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the product variant." } } }, "inventoryService": { "type": "object", "description": "The inventory item's details.", "required": [ "inventory_item_id" ], "properties": { "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item." } } } } } } ] }, "updated": { "oneOf": [ { "$ref": "#/components/schemas/AdminProductVariantInventoryLink" }, { "type": "array", "description": "The updated associations between product variants and inventory items.", "items": { "type": "object", "description": "An updated association between a product variant and an inventory item.", "x-schemaName": "AdminProductVariantInventoryLink", "required": [ "productService", "inventoryService" ], "properties": { "productService": { "type": "object", "description": "The product variant's details.", "required": [ "variant_id" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the product variant." } } }, "inventoryService": { "type": "object", "description": "The inventory item's details.", "required": [ "inventory_item_id" ], "properties": { "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item." } } } } } } ] }, "deleted": { "oneOf": [ { "$ref": "#/components/schemas/AdminProductVariantInventoryLink" }, { "type": "array", "description": "The deleted associations between product variants and inventory items.", "items": { "type": "object", "description": "An deleted association between a product variant and an inventory item.", "x-schemaName": "AdminProductVariantInventoryLink", "required": [ "productService", "inventoryService" ], "properties": { "productService": { "type": "object", "description": "The product variant's details.", "required": [ "variant_id" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the product variant." } } }, "inventoryService": { "type": "object", "description": "The inventory item's details.", "required": [ "inventory_item_id" ], "properties": { "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item." } } } } } } ] } } }, "AdminProductVariantInventoryItemLink": { "type": "object", "description": "An association between a product variant and an inventory item.", "x-schemaName": "AdminProductVariantInventoryItemLink", "required": [ "id", "variant_id", "inventory_item_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the association." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The associated product variant's ID." }, "variant": { "type": "object" }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The associated inventory item's ID." }, "inventory": { "$ref": "#/components/schemas/AdminInventoryItem" } } }, "AdminProductVariantInventoryLink": { "type": "object", "description": "The details of an association between a product variant and an inventory item.", "x-schemaName": "AdminProductVariantInventoryLink", "required": [ "Product", "Inventory" ], "properties": { "Product": { "type": "object", "description": "The product variant's details.", "required": [ "variant_id" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the product variant." } } }, "Inventory": { "type": "object", "description": "The inventory item's details.", "required": [ "inventory_item_id" ], "properties": { "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item." } } } } }, "AdminProductVariantInventoryLinkDeleteResponse": { "type": "object", "description": "The details of the deleted associated between a product variant and an inventory item.", "x-schemaName": "AdminProductVariantInventoryLinkDeleteResponse", "required": [ "id", "object", "deleted", "parent" ], "properties": { "id": { "$ref": "#/components/schemas/AdminProductVariantInventoryLink" }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "variant-inventory-item-link" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the association was deleted." }, "parent": { "$ref": "#/components/schemas/AdminProductVariant" } } }, "AdminProductVariantResponse": { "type": "object", "description": "The product variant's details.", "x-schemaName": "AdminProductVariantResponse", "required": [ "variant" ], "properties": { "variant": { "$ref": "#/components/schemas/AdminProductVariant" } } }, "AdminPromotion": { "type": "object", "description": "The promotion's details.", "x-schemaName": "AdminPromotion", "required": [ "id", "created_at", "updated_at", "deleted_at" ], "properties": { "application_method": { "$ref": "#/components/schemas/AdminApplicationMethod" }, "rules": { "type": "array", "description": "The promotion's rules.", "items": { "$ref": "#/components/schemas/AdminPromotionRule" } }, "id": { "type": "string", "title": "id", "description": "The promotion's ID." }, "code": { "type": "string", "title": "code", "description": "The promotion's code.", "example": "OFF50" }, "type": { "type": "string", "description": "The promotion's type.", "enum": [ "standard", "buyget" ] }, "is_automatic": { "type": "boolean", "title": "is_automatic", "description": "Whether the promotion is applied on a cart automatically if it matches the promotion's rules." }, "campaign_id": { "type": "string", "title": "campaign_id", "description": "The ID of the campaign this promotion belongs to." }, "campaign": { "$ref": "#/components/schemas/AdminCampaign" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the promotion was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the promotion was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the promotion was deleted." }, "status": { "type": "string", "description": "The promotion's status.", "enum": [ "draft", "active", "inactive" ] } } }, "AdminPromotionResponse": { "type": "object", "description": "The promotion's details.", "x-schemaName": "AdminPromotionResponse", "required": [ "promotion" ], "properties": { "promotion": { "$ref": "#/components/schemas/AdminPromotion" } } }, "AdminPromotionRule": { "type": "object", "description": "The promotion rule's details.", "x-schemaName": "AdminPromotionRule", "required": [ "id", "values" ], "properties": { "id": { "type": "string", "title": "id", "description": "The promotion rule's ID." }, "description": { "type": "string", "title": "description", "description": "The promotion rule's description." }, "attribute": { "type": "string", "title": "attribute", "description": "The promotion rule's attribute.", "example": "customer_group_id" }, "operator": { "type": "string", "description": "The rule's operator.", "enum": [ "gt", "lt", "eq", "ne", "in", "lte", "gte" ] }, "values": { "type": "array", "description": "The rule's values.", "example": [ "cusgroup_123" ], "items": { "$ref": "#/components/schemas/BasePromotionRuleValue" } } } }, "AdminRefund": { "type": "object", "description": "The refund's details.", "x-schemaName": "AdminRefund", "required": [ "id", "amount", "created_at", "payment" ], "properties": { "id": { "type": "string", "title": "id", "description": "The refund's ID." }, "amount": { "type": "number", "title": "amount", "description": "The refund's amount." }, "refund_reason_id": { "type": "string", "title": "refund_reason_id", "description": "The ID of the refund reason." }, "note": { "type": "string", "title": "note", "description": "More details about the refund." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the refund was created." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the refund." }, "payment": { "$ref": "#/components/schemas/BasePayment" }, "refund_reason": { "$ref": "#/components/schemas/RefundReason" } } }, "AdminRefundReason": { "type": "object", "description": "The refund reason's details.", "x-schemaName": "AdminRefundReason", "required": [ "id", "label", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The refund reason's ID." }, "label": { "type": "string", "title": "label", "description": "The refund reason's label." }, "description": { "type": "string", "title": "description", "description": "The refund reason's description." }, "metadata": { "type": "object", "description": "The refund reason's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the refund reason was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the refund reason was updated." } } }, "AdminRegion": { "type": "object", "description": "The region's details.", "x-schemaName": "AdminRegion", "required": [ "name", "currency_code", "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The region's ID." }, "name": { "type": "string", "title": "name", "description": "The region's name." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The region's currency code.", "example": "usd" }, "automatic_taxes": { "type": "boolean", "title": "automatic_taxes", "description": "Whether taxes are applied automatically during checkout." }, "countries": { "type": "array", "description": "The region's countries.", "items": { "$ref": "#/components/schemas/AdminRegionCountry" } }, "payment_providers": { "type": "array", "description": "The region's payment providers.", "items": { "$ref": "#/components/schemas/AdminPaymentProvider" } }, "metadata": { "type": "object", "description": "The region's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the region was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the region was updated." } } }, "AdminRegionCountry": { "type": "object", "description": "The country's details.", "x-schemaName": "AdminRegionCountry", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The country's ID." }, "iso_2": { "type": "string", "title": "iso_2", "description": "The country's iso 2.", "example": "us" }, "iso_3": { "type": "string", "title": "iso_3", "description": "The country's iso 3.", "example": "usa" }, "num_code": { "type": "string", "title": "num_code", "description": "The country's num code.", "example": 840 }, "name": { "type": "string", "title": "name", "description": "The country's name." }, "display_name": { "type": "string", "title": "display_name", "description": "The country's display name." } } }, "AdminRegionResponse": { "type": "object", "description": "The region's details.", "x-schemaName": "AdminRegionResponse", "required": [ "region" ], "properties": { "region": { "$ref": "#/components/schemas/AdminRegion" } } }, "AdminReservation": { "type": "object", "description": "The reservation's details.", "x-schemaName": "AdminReservation", "required": [ "id", "line_item_id", "location_id", "quantity", "external_id", "description", "inventory_item_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The reservation's ID." }, "line_item_id": { "type": "string", "title": "line_item_id", "description": "The ID of the line item this reservation is for." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the quantity is reserved from." }, "quantity": { "type": "number", "title": "quantity", "description": "The reservation's quantity." }, "external_id": { "type": "string", "title": "external_id", "description": "An ID in an external system" }, "description": { "type": "string", "title": "description", "description": "The reservation's description." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the inventory item this reservation is associated with." }, "inventory_item": { "$ref": "#/components/schemas/AdminInventoryItem" }, "metadata": { "type": "object", "description": "The reservation's metadata, can hold custom key-value pairs." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created this reservation." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date this reservation was deleted." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date this reservation was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date this reservation was updated." } } }, "AdminReservationResponse": { "type": "object", "description": "The reservation's details.", "x-schemaName": "AdminReservationResponse", "required": [ "reservation" ], "properties": { "reservation": { "$ref": "#/components/schemas/AdminReservation" } } }, "AdminReturn": { "type": "object", "description": "The return's details.", "x-schemaName": "AdminReturn", "required": [ "items", "id", "order_id", "order_version", "display_id", "received_at", "created_at", "canceled_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return's ID." }, "status": { "type": "string", "description": "The return's status.", "enum": [ "canceled", "requested", "received", "partially_received" ] }, "refund_amount": { "type": "number", "title": "refund_amount", "description": "The amount refunded by this return." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "items": { "type": "array", "description": "The return's items.", "items": { "$ref": "#/components/schemas/AdminReturnItem" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the return was created." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the return was canceled.", "format": "date-time" }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The return's exchange id." }, "location_id": { "type": "string", "title": "location_id", "description": "The return's location id." }, "claim_id": { "type": "string", "title": "claim_id", "description": "The return's claim id." }, "order_version": { "type": "number", "title": "order_version", "description": "The return's order version." }, "display_id": { "type": "number", "title": "display_id", "description": "The return's display id." }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether the customer should receive notifications about the return's updates." }, "received_at": { "type": "string", "title": "received_at", "description": "The date the return was received." } } }, "AdminReturnItem": { "type": "object", "description": "The return item's details.", "x-schemaName": "AdminReturnItem", "required": [ "id", "quantity", "received_quantity", "damaged_quantity", "item_id", "return_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return item's ID." }, "quantity": { "type": "number", "title": "quantity", "description": "The return item's quantity." }, "received_quantity": { "type": "number", "title": "received_quantity", "description": "The received quantity of the item. This quantity is added to the stocked inventory quantity of the item." }, "damaged_quantity": { "type": "number", "title": "damaged_quantity", "description": "The received damaged quantity of the item, which isn't added to the stocked inventory quantity of the item." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the return reason associated with the item." }, "note": { "type": "string", "title": "note", "description": "A note about why the item was returned." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the associated order item." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the return this return item belongs to." }, "metadata": { "type": "object", "description": "The return item's metadata, can hold custom key-value pairs." } } }, "AdminReturnPreviewResponse": { "type": "object", "description": "The details of a return and a preview of the order once the return is applied.", "x-schemaName": "AdminReturnPreviewResponse", "required": [ "order_preview", "return" ], "properties": { "order_preview": { "$ref": "#/components/schemas/AdminOrderPreview" }, "return": { "$ref": "#/components/schemas/AdminReturn" } } }, "AdminReturnReason": { "type": "object", "description": "The return reason's details.", "x-schemaName": "AdminReturnReason", "required": [ "id", "value", "label", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return reason's ID." }, "value": { "type": "string", "title": "value", "description": "The return reason's value." }, "label": { "type": "string", "title": "label", "description": "The return reason's label." }, "description": { "type": "string", "title": "description", "description": "The return reason's description." }, "metadata": { "type": "object", "description": "The return reason's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the return reason was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the return reason was updated." } } }, "AdminReturnReasonDeleteResponse": { "type": "object", "description": "The details of the return reason deletion.", "x-schemaName": "AdminReturnReasonDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return reason's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "return_reason" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the return reason was deleted." } } }, "AdminReturnReasonListResponse": { "type": "object", "description": "The paginated list of return reasons.", "x-schemaName": "AdminReturnReasonListResponse", "required": [ "limit", "offset", "count", "return_reasons" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "return_reasons": { "type": "array", "description": "The list of return reasons.", "items": { "$ref": "#/components/schemas/AdminReturnReason" } } } }, "AdminReturnReasonResponse": { "type": "object", "description": "The return reason's details.", "x-schemaName": "AdminReturnReasonResponse", "required": [ "return_reason" ], "properties": { "return_reason": { "$ref": "#/components/schemas/AdminReturnReason" } } }, "AdminReturnResponse": { "type": "object", "description": "The return's details.", "x-schemaName": "AdminReturnResponse", "required": [ "return" ], "properties": { "return": { "$ref": "#/components/schemas/AdminReturn" } } }, "AdminRevokeApiKey": { "type": "object", "description": "The details of revoking the API key.", "x-schemaName": "AdminRevokeApiKey", "properties": { "revoke_in": { "type": "number", "title": "revoke_in", "description": "The time in seconds to revoke the API key after. If not set, the API key is revoked immediately." } } }, "AdminRuleAttributeOption": { "type": "object", "description": "The details of a potential rule attribute.", "x-schemaName": "AdminRuleAttributeOption", "required": [ "id", "value", "label", "operators" ], "properties": { "id": { "type": "string", "title": "id", "description": "The rule attribute's ID, which is a rule's `attribute` it refers to.", "example": "customer_group" }, "value": { "type": "string", "title": "value", "description": "The rule attribute's value.", "example": "customer.groups.id" }, "label": { "type": "string", "title": "label", "description": "The rule attribute option's label.", "example": "Customer Group" }, "operators": { "type": "array", "description": "The attribute's operators.", "items": { "$ref": "#/components/schemas/BaseRuleOperatorOptions" } } } }, "AdminRuleValueOption": { "type": "object", "description": "The details of a potential rule value.", "x-schemaName": "AdminRuleValueOption", "required": [ "value", "label" ], "properties": { "value": { "type": "string", "title": "value", "description": "The rule value's value.", "example": "reg_123" }, "label": { "type": "string", "title": "label", "description": "The rule value's label.", "example": "Europe Region" } } }, "AdminSalesChannel": { "type": "object", "description": "The sales channel's details.", "x-schemaName": "AdminSalesChannel", "required": [ "id", "name", "description", "is_disabled", "metadata", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The sales channel's ID." }, "name": { "type": "string", "title": "name", "description": "The sales channel's name." }, "description": { "type": "string", "title": "description", "description": "The sales channel's description." }, "is_disabled": { "type": "boolean", "title": "is_disabled", "description": "Whether the sales channel is disabled." }, "metadata": { "type": "object", "description": "The sales channel's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the sales channel was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the sales channel was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the sales channel was deleted." } } }, "AdminSalesChannelDeleteResponse": { "type": "object", "description": "The details of deleting a sales channel.", "x-schemaName": "AdminSalesChannelDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The sales channel's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "sales-channel" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the sales channel was deleted." } } }, "AdminSalesChannelResponse": { "type": "object", "description": "The sales channel's details.", "x-schemaName": "AdminSalesChannelResponse", "required": [ "sales_channel" ], "properties": { "sales_channel": { "$ref": "#/components/schemas/AdminSalesChannel" } } }, "AdminServiceZone": { "type": "object", "description": "The shipping option's service zone.", "x-schemaName": "AdminServiceZone", "required": [ "id", "name", "fulfillment_set_id", "fulfillment_set", "geo_zones", "shipping_options", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The service zone's ID." }, "name": { "type": "string", "title": "name", "description": "The service zone's name." }, "fulfillment_set_id": { "type": "string", "title": "fulfillment_set_id", "description": "The service zone's fulfillment set id." }, "fulfillment_set": { "type": "object" }, "geo_zones": { "type": "array", "description": "The service zone's geo zones.", "items": { "$ref": "#/components/schemas/AdminGeoZone" } }, "shipping_options": { "type": "array", "description": "The service zone's shipping options.", "items": { "$ref": "#/components/schemas/AdminShippingOption" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The service zone's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The service zone's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The service zone's deleted at." } } }, "AdminServiceZoneDeleteResponse": { "type": "object", "description": "The details of the service zone deletion.", "x-schemaName": "AdminServiceZoneDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The service zone's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "service_zone" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the service zone was deleted." }, "parent": { "$ref": "#/components/schemas/AdminFulfillmentSet" } } }, "AdminServiceZoneResponse": { "type": "object", "description": "The service zone's details.", "x-schemaName": "AdminServiceZoneResponse", "required": [ "service_zone" ], "properties": { "service_zone": { "$ref": "#/components/schemas/AdminServiceZone" } } }, "AdminShippingOption": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "AdminShippingOption", "required": [ "id", "name", "price_type", "service_zone_id", "service_zone", "provider_id", "provider", "shipping_option_type_id", "type", "shipping_profile_id", "shipping_profile", "rules", "prices", "data", "metadata", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping option's ID." }, "name": { "type": "string", "title": "name", "description": "The shipping option's name." }, "price_type": { "type": "string", "description": "The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.", "enum": [ "calculated", "flat" ] }, "service_zone_id": { "type": "string", "title": "service_zone_id", "description": "The ID of the service zone this option belongs to." }, "service_zone": { "type": "object" }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the provider handling fulfillments created from this shipping option." }, "provider": { "$ref": "#/components/schemas/AdminFulfillmentProvider" }, "shipping_option_type_id": { "type": "string", "title": "shipping_option_type_id", "description": "The ID of the associated shipping option type." }, "type": { "$ref": "#/components/schemas/AdminShippingOptionType" }, "shipping_profile_id": { "type": "string", "title": "shipping_profile_id", "description": "The ID of the associated shipping profile." }, "shipping_profile": { "$ref": "#/components/schemas/AdminShippingProfile" }, "rules": { "type": "array", "description": "The shipping option's rules.", "items": { "$ref": "#/components/schemas/AdminShippingOptionRule" } }, "prices": { "type": "array", "description": "The shipping option's prices. If the `price_type` is `calculated`, this array will be empty since the price is calculated by the fulfillment provider during checkout.", "items": { "$ref": "#/components/schemas/AdminShippingOptionPrice" } }, "data": { "type": "object", "description": "The shipping option's data, useful for the fulfillment provider handling fulfillments created from this option.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "metadata": { "type": "object", "description": "The shipping option's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping option was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping option was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the shipping option was deleted." } } }, "AdminShippingOptionDeleteResponse": { "type": "object", "description": "The details of the shipping option's deletion.", "x-schemaName": "AdminShippingOptionDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping option's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "shipping_option" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the shipping option was deleted." } } }, "AdminShippingOptionPrice": { "type": "object", "description": "The details of the shipping option's price.", "x-schemaName": "AdminShippingOptionPrice", "required": [ "price_rules", "rules_count", "id", "title", "currency_code", "amount", "raw_amount", "min_quantity", "max_quantity", "price_set_id", "created_at", "updated_at", "deleted_at" ], "properties": { "price_rules": { "type": "array", "description": "The price's rules.", "items": { "$ref": "#/components/schemas/AdminShippingOptionPriceRule" } }, "rules_count": { "type": "number", "title": "rules_count", "description": "The number of rules the price has." }, "id": { "type": "string", "title": "id", "description": "The price's ID." }, "title": { "type": "string", "title": "title", "description": "The price's title." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The price's currency code.", "example": "usd" }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "raw_amount": { "type": "object", "description": "The price's raw amount." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity required in the cart for this price to apply." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity that the cart's items must not surpass for this price to apply." }, "price_set_id": { "type": "string", "title": "price_set_id", "description": "The ID of the price set this price belongs to." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the price was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the price was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the price was deleted." } } }, "AdminShippingOptionPriceRule": { "type": "object", "description": "The details of a shipping option price's rule.", "x-schemaName": "AdminShippingOptionPriceRule", "required": [ "id", "value", "operator", "attribute", "price_id", "priority", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price rule's ID." }, "value": { "oneOf": [ { "type": "string", "title": "value", "description": "The price rule's value." }, { "type": "number", "title": "value", "description": "The price rule's value." } ], "description": "The price rule's value." }, "operator": { "type": "string", "description": "The price rule's operator.", "enum": [ "gt", "lt", "eq", "ne", "in", "lte", "gte", "nin" ] }, "attribute": { "type": "string", "title": "attribute", "description": "The price rule's attribute." }, "price_id": { "type": "string", "title": "price_id", "description": "The ID of the price this rule applies to." }, "priority": { "type": "number", "title": "priority", "description": "The price rule's priority." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the price rule was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the price rule was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the price rule was deleted." } } }, "AdminShippingOptionResponse": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "AdminShippingOptionResponse", "required": [ "shipping_option" ], "properties": { "shipping_option": { "$ref": "#/components/schemas/AdminShippingOption" } } }, "AdminShippingOptionRule": { "type": "object", "description": "The shipping option rule's details.", "x-schemaName": "AdminShippingOptionRule", "required": [ "id", "attribute", "operator", "value", "shipping_option_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping option rule's ID." }, "attribute": { "type": "string", "title": "attribute", "description": "The shipping option rule's attribute.", "example": "is_return" }, "operator": { "type": "string", "description": "The rule's operator.", "enum": [ "gt", "lt", "eq", "ne", "in", "lte", "gte", "nin" ] }, "value": { "type": "string", "title": "value" }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this rule is for." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping option rule was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping option rule was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the shipping option rule was deleted." } } }, "AdminShippingOptionType": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "AdminShippingOptionType", "required": [ "id", "label", "description", "code", "shipping_option_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping option's ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping option was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping option was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the shipping option was deleted." }, "label": { "type": "string", "title": "label", "description": "The type's label." }, "description": { "type": "string", "title": "description", "description": "The type's description." }, "code": { "type": "string", "title": "code", "description": "The type's code." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The type's shipping option id." } } }, "AdminShippingProfile": { "type": "object", "description": "The shipping profile's details..", "x-schemaName": "AdminShippingProfile", "properties": { "id": { "type": "string", "title": "id", "description": "The shipping profile's ID." }, "name": { "type": "string", "title": "name", "description": "The shipping profile's name." }, "type": { "type": "string", "title": "type", "description": "The shipping profile's type." }, "metadata": { "type": "object", "description": "The shipping profile's metadata, holds custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping profile was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping profile was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the shipping profile was deleted." } }, "required": [ "id", "name", "type", "metadata", "created_at", "updated_at", "deleted_at" ] }, "AdminShippingProfileDeleteResponse": { "type": "object", "description": "The details of the shipping profile's deletion.", "x-schemaName": "AdminShippingProfileDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping profile's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "shipping_profile" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the shipping profile was deleted." } } }, "AdminShippingProfileResponse": { "type": "object", "description": "The shipping profile's details.", "x-schemaName": "AdminShippingProfileResponse", "required": [ "shipping_profile" ], "properties": { "shipping_profile": { "$ref": "#/components/schemas/AdminShippingProfile" } } }, "AdminStockLocation": { "type": "object", "description": "The stock location's details.", "x-schemaName": "AdminStockLocation", "required": [ "id", "name", "address_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The location's ID." }, "name": { "type": "string", "title": "name", "description": "The location's name." }, "address_id": { "type": "string", "title": "address_id", "description": "The ID of the associated address." }, "address": { "$ref": "#/components/schemas/AdminStockLocationAddress" }, "sales_channels": { "type": "array", "description": "The sales channels associated with the location.", "items": { "$ref": "#/components/schemas/AdminSalesChannel" } }, "fulfillment_providers": { "type": "array", "description": "The fulfillment providers associated with the location.", "items": { "$ref": "#/components/schemas/AdminFulfillmentProvider" } }, "fulfillment_sets": { "type": "array", "description": "The fulfillment sets associated with the location.", "items": { "type": "object" } } } }, "AdminStockLocationAddress": { "type": "object", "description": "The details of the stock location address.", "x-schemaName": "AdminStockLocationAddress", "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "province": { "type": "string", "title": "province", "description": "The address's province." } }, "required": [ "id", "address_1", "address_2", "company", "country_code", "city", "phone", "postal_code", "province" ] }, "AdminStockLocationDeleteResponse": { "type": "object", "description": "The details of the stock location's deletion.", "x-schemaName": "AdminStockLocationDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The stock location's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "stock_location" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the stock location was deleted." } } }, "AdminStockLocationListResponse": { "type": "object", "description": "The paginated list of stock locations.", "x-schemaName": "AdminStockLocationListResponse", "required": [ "limit", "offset", "count", "stock_locations" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "stock_locations": { "type": "array", "description": "The list of stock locations.", "items": { "$ref": "#/components/schemas/AdminStockLocation" } } } }, "AdminStockLocationResponse": { "type": "object", "description": "The stock location's details.", "x-schemaName": "AdminStockLocationResponse", "required": [ "stock_location" ], "properties": { "stock_location": { "$ref": "#/components/schemas/AdminStockLocation" } } }, "AdminStore": { "type": "object", "description": "The store's details.", "x-schemaName": "AdminStore", "required": [ "id", "name", "supported_currencies", "default_sales_channel_id", "default_region_id", "default_location_id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The store's ID." }, "name": { "type": "string", "title": "name", "description": "The store's name." }, "supported_currencies": { "type": "array", "description": "The store's supported currencies.", "items": { "$ref": "#/components/schemas/AdminStoreCurrency" } }, "default_sales_channel_id": { "type": "string", "title": "default_sales_channel_id", "description": "The ID of the sales channel used by default in the store." }, "default_region_id": { "type": "string", "title": "default_region_id", "description": "The ID of the region used by default in the store." }, "default_location_id": { "type": "string", "title": "default_location_id", "description": "The ID of the stock location used by default in the store." }, "metadata": { "type": "object", "description": "The store's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the store was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the store was updated." } } }, "AdminStoreCurrency": { "type": "object", "description": "The details of a store's currency.", "x-schemaName": "AdminStoreCurrency", "required": [ "id", "currency_code", "store_id", "is_default", "currency", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The currency's ID." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The currency's code.", "example": "usd" }, "store_id": { "type": "string", "title": "store_id", "description": "The ID of the store this currency belongs to." }, "is_default": { "type": "boolean", "title": "is_default", "description": "Whether this currency is the default in the store." }, "currency": { "$ref": "#/components/schemas/AdminCurrency" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the currency was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the currency was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the currency was deleted." } } }, "AdminStoreListResponse": { "type": "object", "description": "The paginated list of stores.", "x-schemaName": "AdminStoreListResponse", "required": [ "limit", "offset", "count", "stores" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "stores": { "type": "array", "description": "The list of stores.", "items": { "$ref": "#/components/schemas/AdminStore" } } } }, "AdminStoreResponse": { "type": "object", "description": "The store's details.", "x-schemaName": "AdminStoreResponse", "required": [ "store" ], "properties": { "store": { "$ref": "#/components/schemas/AdminStore" } } }, "AdminTaxRate": { "type": "object", "description": "The tax rate's details.", "x-schemaName": "AdminTaxRate", "required": [ "id", "rate", "code", "name", "metadata", "tax_region_id", "is_combinable", "is_default", "created_at", "updated_at", "deleted_at", "created_by", "tax_region", "rules" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tax rate's ID." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge.", "example": 10 }, "code": { "type": "string", "title": "code", "description": "The code the tax rate is identified by." }, "name": { "type": "string", "title": "name", "description": "The tax rate's name." }, "metadata": { "type": "object", "description": "The tax rate's metadata, can hold custom key-value pairs." }, "tax_region_id": { "type": "string", "title": "tax_region_id", "description": "The ID of the tax region this rate belongs to." }, "is_combinable": { "type": "boolean", "title": "is_combinable", "description": "Whether the tax rate should be combined with parent rates.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates" } }, "is_default": { "type": "boolean", "title": "is_default", "description": "Whether this tax rate is the default in the tax region." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax rate was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax rate was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the tax rate was deleted." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the tax rate." }, "tax_region": { "$ref": "#/components/schemas/AdminTaxRegion" }, "rules": { "type": "array", "description": "The tax rate's rules.", "items": { "$ref": "#/components/schemas/AdminTaxRateRule" } } } }, "AdminTaxRateDeleteResponse": { "type": "object", "description": "The details of the tax rate deletion.", "x-schemaName": "AdminTaxRateDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tax rate's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "tax_rate" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the tax rate was deleted." } } }, "AdminTaxRateResponse": { "type": "object", "description": "The tax rate's details.", "x-schemaName": "AdminTaxRateResponse", "required": [ "tax_rate" ], "properties": { "tax_rate": { "$ref": "#/components/schemas/AdminTaxRate" } } }, "AdminTaxRateRule": { "type": "object", "description": "The tax rate rule's details.", "x-schemaName": "AdminTaxRateRule", "required": [ "reference", "reference_id" ], "properties": { "reference": { "type": "string", "title": "reference", "description": "The name of the table this rule references.", "example": "product_type" }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of a record in the table that this rule references.", "example": "ptyp_1" } } }, "AdminTaxRegion": { "type": "object", "description": "The tax region's details.", "x-schemaName": "AdminTaxRegion", "required": [ "id", "country_code", "province_code", "metadata", "parent_id", "created_at", "updated_at", "deleted_at", "created_by", "tax_rates", "parent", "children" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tax region's ID." }, "country_code": { "type": "string", "title": "country_code", "description": "The tax region's country code.", "example": "us" }, "province_code": { "type": "string", "title": "province_code", "description": "The tax region's province code." }, "metadata": { "type": "object", "description": "The tax region's metadata, can hold custom key-value pairs." }, "parent_id": { "type": "string", "title": "parent_id", "description": "The ID of the parent tax region." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax region was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax region was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the tax region was deleted." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the tax region." }, "tax_rates": { "type": "array", "description": "The tax region's rates.", "items": { "type": "object" } }, "parent": { "type": "object" }, "children": { "type": "array", "description": "The tax region's children.", "items": { "type": "object" } } } }, "AdminTaxRegionDeleteResponse": { "type": "object", "description": "The details of the tax region deletion.", "x-schemaName": "AdminTaxRegionDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tax region's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "tax_region" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the tax region was deleted." } } }, "AdminTaxRegionResponse": { "type": "object", "description": "The tax region's details.", "x-schemaName": "AdminTaxRegionResponse", "required": [ "tax_region" ], "properties": { "tax_region": { "$ref": "#/components/schemas/AdminTaxRegion" } } }, "AdminTransferOrder": { "type": "object", "description": "The details of the request to transfer the order.", "x-schemaName": "AdminTransferOrder", "required": [ "customer_id" ], "properties": { "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer to transfer the order to." }, "description": { "type": "string", "title": "description", "description": "The description of the order transfer, which can be shown to the customer receiving the order transfer request." }, "internal_note": { "type": "string", "title": "internal_note", "description": "An internal note viewable only by admin users." } } }, "AdminUpdateApiKey": { "type": "object", "description": "The details to update in an API key.", "x-schemaName": "AdminUpdateApiKey", "required": [ "title" ], "properties": { "title": { "type": "string", "title": "title", "description": "The API key's title." } } }, "AdminUpdateCollection": { "type": "object", "description": "The details to update in a collection.", "x-schemaName": "AdminUpdateCollection", "properties": { "title": { "type": "string", "title": "title", "description": "The collection's title." }, "handle": { "type": "string", "title": "handle", "description": "The collection's handle." }, "metadata": { "type": "object", "description": "The collection's metadata, can hold custom key-value pairs." } } }, "AdminUpdateCustomerGroup": { "type": "object", "description": "The details to update in a customer group.", "x-schemaName": "AdminUpdateCustomerGroup", "properties": { "name": { "type": "string", "title": "name", "description": "The customer group's name." }, "metadata": { "type": "object", "description": "The customer group's metadata, can hold custom key-value pairs." } } }, "AdminUpdateDraftOrder": { "type": "object", "description": "The data to update in the draft order.", "x-schemaName": "AdminUpdateDraftOrder", "properties": { "email": { "type": "string", "title": "email", "description": "The customer email associated with the draft order.", "format": "email" }, "shipping_address": { "type": "object", "description": "The draft order's shipping address.", "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The shipping address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The shipping address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The shipping address's phone." }, "company": { "type": "string", "title": "company", "description": "The shipping address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The first address line." }, "address_2": { "type": "string", "title": "address_2", "description": "The second address line." }, "city": { "type": "string", "title": "city", "description": "The shipping address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The shipping address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The shipping address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The shipping address's postal code." }, "metadata": { "type": "object", "description": "The shipping address's metadata, can hold custom key-value pairs." } } }, "billing_address": { "type": "object", "description": "The draft order's billing address.", "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The billing address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The billing address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The billing address's phone." }, "company": { "type": "string", "title": "company", "description": "The billing address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The first address line." }, "address_2": { "type": "string", "title": "address_2", "description": "The second address line." }, "city": { "type": "string", "title": "city", "description": "The billing address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The billing address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The billing address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The billing address's postal code." }, "metadata": { "type": "object", "description": "The billing address's metadata, can hold custom key-value pairs." } } }, "metadata": { "type": "object", "description": "The draft order's metadata, can hold custom key-value pairs." } } }, "AdminUpdateOrder": { "type": "object", "description": "The details to update in the order.", "x-schemaName": "AdminUpdateOrder", "properties": { "email": { "type": "string", "title": "email", "description": "The order's email.", "format": "email" }, "shipping_address": { "type": "object", "description": "The order's shipping address.", "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." } } }, "billing_address": { "type": "object", "description": "The order's billing address.", "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." } } }, "metadata": { "type": "object", "description": "The order's metadata, can hold custom key-value pairs." } } }, "AdminUpdatePriceList": { "type": "object", "description": "the details to update in a price list.", "x-schemaName": "AdminUpdatePriceList", "properties": { "title": { "type": "string", "title": "title", "description": "The price list's title." }, "description": { "type": "string", "title": "description", "description": "The price list's description." }, "starts_at": { "type": "string", "title": "starts_at", "description": "The date the price list starts." }, "ends_at": { "type": "string", "title": "ends_at", "description": "The date the price list ends." }, "status": { "type": "string", "description": "The price list's status.", "enum": [ "active", "draft" ] }, "type": { "type": "string", "description": "The price list's type.", "enum": [ "sale", "override" ] }, "rules": { "type": "object", "description": "The price list's rules.", "example": { "customer_group_id": [ "cusgrp_123" ] } } } }, "AdminUpdatePricePreference": { "type": "object", "description": "The details to update in the price preference.", "x-schemaName": "AdminUpdatePricePreference", "properties": { "attribute": { "type": "string", "title": "attribute", "description": "The price preference's attribute.", "example": "region_id" }, "value": { "type": "string", "title": "value", "description": "The price preference's value.", "example": "reg_123" }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether prices are tax inclusive for this price preference." } } }, "AdminUpdateProduct": { "type": "object", "description": "The product's details.", "x-schemaName": "AdminUpdateProduct", "properties": { "title": { "type": "string", "title": "title", "description": "The product's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "Whether the product is a gift card." }, "discountable": { "type": "boolean", "title": "discountable", "description": "Whether discounts can be applied on the product." }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "The image's details.", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "url", "description": "The image's URL." } } } }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail URL." }, "handle": { "type": "string", "title": "handle", "description": "The product's unique handle." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "type_id": { "type": "string", "title": "type_id", "description": "The ID of the product's type." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The ID of the product's collection." }, "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object", "description": "The product's category.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The category's ID." } } } }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "The product's tag.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tag's ID." } } } }, "options": { "type": "array", "description": "The product's options.", "items": { "$ref": "#/components/schemas/AdminUpdateProductOption" } }, "variants": { "type": "array", "description": "The product's variants. You can add new variants or update existing ones, passing their IDs in the object.", "items": { "oneOf": [ { "$ref": "#/components/schemas/AdminCreateProductVariant" }, { "$ref": "#/components/schemas/AdminUpdateProductVariant" } ] } }, "sales_channels": { "type": "array", "description": "The sales channels that the product is available in.", "items": { "type": "object", "description": "The sales channel's details.", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The sales channel's ID." } } } }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's MID code." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "metadata": { "type": "object", "description": "The product's metadata, can hold custom key-value pairs." }, "external_id": { "type": "string", "title": "external_id", "description": "The ID of the product in an external or third-party system." } } }, "AdminUpdateProductOption": { "type": "object", "description": "The details to update in a product option.", "x-schemaName": "AdminUpdateProductOption", "properties": { "title": { "type": "string", "title": "title", "description": "The option's title." }, "values": { "type": "array", "description": "The option's values.", "items": { "type": "string", "title": "values", "description": "An option value." } } } }, "AdminUpdateProductVariant": { "type": "object", "description": "The properties to update of a product variant.", "x-schemaName": "AdminUpdateProductVariant", "properties": { "title": { "type": "string", "title": "title", "description": "The product variant's title." }, "sku": { "type": "string", "title": "sku", "description": "The product variant's SKU." }, "ean": { "type": "string", "title": "ean", "description": "The product variant's EAN." }, "upc": { "type": "string", "title": "upc", "description": "The product variant's UPC." }, "barcode": { "type": "string", "title": "barcode", "description": "The product variant's barcode." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product variant's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product variant's MID code." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether customers can order the variant even if it's not in stock." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The product variant's rank among its siblings." }, "weight": { "type": "number", "title": "weight", "description": "The product variant's weight." }, "length": { "type": "number", "title": "length", "description": "The product variant's length." }, "height": { "type": "number", "title": "height", "description": "The product variant's height." }, "width": { "type": "number", "title": "width", "description": "The product variant's width." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product variant's origin country." }, "material": { "type": "string", "title": "material", "description": "The product variant's material." }, "metadata": { "type": "object", "description": "The product variant's metadata, can hold custom key-value pairs." }, "prices": { "type": "array", "description": "The product variant's prices.", "items": { "$ref": "#/components/schemas/AdminCreateProductVariantPrice" } }, "options": { "type": "object", "description": "The product variant's options." } } }, "AdminUpdatePromotionRule": { "type": "object", "description": "The properties to update in a buy rule.", "required": [ "id", "values" ], "properties": { "id": { "type": "string", "title": "id", "description": "The buy rule's ID." }, "operator": { "type": "string", "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.", "enum": [ "gte", "lte", "gt", "lt", "eq", "ne", "in" ] }, "description": { "type": "string", "title": "description", "description": "The buy rule's description." }, "attribute": { "type": "string", "title": "attribute", "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.", "example": "items.product.id" }, "values": { "oneOf": [ { "type": "string", "title": "values", "description": "The attribute's value.", "example": "prod_123" }, { "type": "array", "description": "The allowed attribute values.", "items": { "type": "string", "title": "values", "description": "An attribute value.", "example": "prod_123" } } ] } }, "x-schemaName": "AdminUpdatePromotionRule" }, "AdminUpdateReturnReason": { "type": "object", "description": "The details to update in a return reason.", "x-schemaName": "AdminUpdateReturnReason", "properties": { "label": { "type": "string", "title": "label", "description": "The return reason's label." }, "value": { "type": "string", "title": "value", "description": "The return reason's value." }, "description": { "type": "string", "title": "description", "description": "The return reason's description." }, "metadata": { "type": "object", "description": "The return reason's metadata, can hold custom key-value pairs." } }, "required": [ "value", "label" ] }, "AdminUpdateSalesChannel": { "type": "object", "description": "The properties to update in the sales channel.", "x-schemaName": "AdminUpdateSalesChannel", "properties": { "name": { "type": "string", "title": "name", "description": "The sales channel's name." }, "description": { "type": "string", "title": "description", "description": "The sales channel's description." }, "is_disabled": { "type": "boolean", "title": "is_disabled", "description": "Whether the sales channel is disabled." }, "metadata": { "type": "object", "description": "The sales channel's metadata, can hold custom key-value pairs." } } }, "AdminUpdateShippingOptionRule": { "type": "object", "description": "The properties to update in the shipping option rule.", "required": [ "id", "operator", "attribute", "value" ], "properties": { "id": { "type": "string", "title": "id", "description": "The rule's ID." }, "operator": { "type": "string", "description": "The operator used to check whether a rule applies.", "enum": [ "in", "eq", "ne", "gt", "gte", "lt", "lte", "nin" ] }, "attribute": { "type": "string", "title": "attribute", "description": "The name of a property or table that the rule applies to.", "example": "customer_group" }, "value": { "oneOf": [ { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" }, { "type": "array", "description": "Values of the attribute that enable this rule.", "items": { "type": "string", "title": "value", "description": "A value of the attribute that enables this rule.", "example": "cusgroup_123" } } ] } }, "x-schemaName": "AdminUpdateShippingOptionRule" }, "AdminUpdateStockLocation": { "type": "object", "description": "The properties to update in a stock location.", "x-schemaName": "AdminUpdateStockLocation", "properties": { "name": { "type": "string", "title": "name", "description": "The stock location's name." }, "address": { "type": "object", "description": "The stock location's address. Pass this property if you're creating a new address to associate with the location.", "required": [ "address_1", "country_code" ], "properties": { "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "province": { "type": "string", "title": "province", "description": "The address's province." } } }, "address_id": { "type": "string", "title": "address_id", "description": "The ID of an existing stock location address to associate the stock location with." }, "metadata": { "type": "object", "description": "The stock location's metadata, can hold custom key-value pairs." } } }, "AdminUpdateStore": { "type": "object", "description": "The properties to update in a store.", "x-schemaName": "AdminUpdateStore", "properties": { "name": { "type": "string", "title": "name", "description": "The store's name." }, "supported_currencies": { "type": "array", "description": "The store's supported currencies.", "items": { "type": "object", "description": "A store currency.", "required": [ "currency_code" ], "properties": { "currency_code": { "type": "string", "title": "currency_code", "description": "The currency's code.", "example": "usd" }, "is_default": { "type": "boolean", "title": "is_default", "description": "Whether the currency is the default in the store." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether prices using this currency are tax inclusive." } } } }, "default_sales_channel_id": { "type": "string", "title": "default_sales_channel_id", "description": "The ID of the default sales channel in the store." }, "default_region_id": { "type": "string", "title": "default_region_id", "description": "The ID of the default region in the store." }, "default_location_id": { "type": "string", "title": "default_location_id", "description": "The ID of the default stock location in the store." }, "metadata": { "type": "object", "description": "The store's metadata, can hold custom key-value pairs." } } }, "AdminUpdateTaxRate": { "type": "object", "description": "The properties to update in the tax rate.", "x-schemaName": "AdminUpdateTaxRate", "properties": { "rate": { "type": "number", "title": "rate", "description": "The rate to charge." }, "code": { "type": "string", "title": "code", "description": "The code that the tax rate is identified by." }, "rules": { "type": "array", "description": "The tax rate's rules.", "items": { "type": "object", "description": "A tax rate rule.", "required": [ "reference", "reference_id" ], "properties": { "reference": { "type": "string", "title": "reference", "description": "The name of the table this rule references.", "example": "product_type" }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of the record in the table that the rule references.", "example": "ptyp_123" } } } }, "name": { "type": "string", "title": "name", "description": "The tax rate's name." }, "is_default": { "type": "boolean", "title": "is_default", "description": "Whether the tax rate is the default in the store." }, "is_combinable": { "type": "boolean", "title": "is_combinable", "description": "Whether the tax rate should be combined with parent rates.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates" } }, "metadata": { "type": "object", "description": "The tax rate's metadata, can hold custom key-value pairs." } } }, "AdminUpdateTaxRegion": { "type": "object", "description": "The details to update in a tax region.", "x-schemaName": "AdminUpdateTaxRegion", "properties": { "province_code": { "type": "string", "title": "province_code", "description": "The tax region's province code." }, "metadata": { "type": "object", "description": "The tax region's metadata, can hold custom key-value pairs." } } }, "AdminUpdateUser": { "type": "object", "description": "The properties to update in a user.", "x-schemaName": "AdminUpdateUser", "properties": { "first_name": { "type": "string", "title": "first_name", "description": "The user's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The user's last name." }, "avatar_url": { "type": "string", "title": "avatar_url", "description": "The URL of the user's avatar." }, "metadata": { "type": "object", "description": "The user's metadata, can hold custom key-value pairs." } } }, "AdminUpdateVariantInventoryItem": { "type": "object", "description": "The properties to update of the variant's inventory item association.", "x-schemaName": "AdminUpdateVariantInventoryItem", "required": [ "required_quantity" ], "properties": { "required_quantity": { "type": "number", "title": "required_quantity", "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`." } } }, "AdminUpsertStockLocationAddress": { "type": "object", "description": "The details of the stock location address to create.", "x-schemaName": "AdminUpsertStockLocationAddress", "required": [ "address_1", "country_code" ], "properties": { "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "usd" }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "province": { "type": "string", "title": "province", "description": "The address's province." } } }, "AdminUser": { "type": "object", "description": "The user's details.", "x-schemaName": "AdminUser", "required": [ "id", "email", "first_name", "last_name", "avatar_url", "metadata", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The user's ID." }, "email": { "type": "string", "title": "email", "description": "The user's email.", "format": "email" }, "first_name": { "type": "string", "title": "first_name", "description": "The user's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The user's last name." }, "avatar_url": { "type": "string", "title": "avatar_url", "description": "The URL of the user's avatar." }, "metadata": { "type": "object", "description": "The user's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the user was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the user was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the user was deleted." } } }, "AdminUserDeleteResponse": { "type": "object", "description": "The details of the deleted user.", "x-schemaName": "AdminUserDeleteResponse", "required": [ "id", "object", "deleted" ], "properties": { "id": { "type": "string", "title": "id", "description": "The user's ID." }, "object": { "type": "string", "title": "object", "description": "The name of the deleted object.", "default": "user" }, "deleted": { "type": "boolean", "title": "deleted", "description": "Whether the user was deleted." } } }, "AdminUserListResponse": { "type": "object", "description": "The paginated list of users.", "x-schemaName": "AdminUserListResponse", "required": [ "limit", "offset", "count", "users" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "users": { "type": "array", "description": "The list of users.", "items": { "$ref": "#/components/schemas/AdminUser" } } } }, "AdminUserResponse": { "type": "object", "description": "The user's details.", "x-schemaName": "AdminUserResponse", "required": [ "user" ], "properties": { "user": { "$ref": "#/components/schemas/AdminUser" } } }, "AdminWorkflowExecution": { "type": "object", "description": "The workflows execution's details.", "x-schemaName": "AdminWorkflowExecution", "required": [ "id", "workflow_id", "transaction_id", "execution", "context", "state", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The workflow execution's ID." }, "workflow_id": { "type": "string", "title": "workflow_id", "description": "The ID of the workflow." }, "transaction_id": { "type": "string", "title": "transaction_id", "description": "The workflow execution's transaction ID." }, "execution": { "$ref": "#/components/schemas/AdminWorkflowExecutionExecution" }, "context": { "$ref": "#/components/schemas/WorkflowExecutionContext" }, "state": { "type": "string", "description": "The workflow execution's state.", "enum": [ "not_started", "invoking", "waiting_to_compensate", "compensating", "done", "reverted", "failed" ] }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the workflow execution was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the workflow execution was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the workflow execution was deleted." } } }, "AdminWorkflowExecutionExecution": { "type": "object", "description": "The workflow execution's steps details.", "x-schemaName": "AdminWorkflowExecutionExecution", "required": [ "steps" ], "properties": { "steps": { "type": "object", "description": "The execution's steps. Each object key is a step ID, and the value is the object whose properties are shown below.", "required": [ "id", "invoke", "definition", "compensate", "depth", "startedAt" ], "additionalProperties": { "type": "object", "properties": { "id": { "type": "string", "title": "id", "description": "The step's ID." }, "invoke": { "type": "object", "description": "The state of the step's invokation function.", "x-schemaName": "WorkflowExecutionFn", "properties": { "state": { "type": "string", "description": "The invokation step's state.", "enum": [ "not_started", "invoking", "compensating", "done", "reverted", "failed", "dormant", "skipped", "skipped_failure", "timeout" ] }, "status": { "type": "string", "description": "The invokation step's state.", "enum": [ "idle", "ok", "waiting_response", "temp_failure", "permanent_failure" ] } }, "required": [ "state", "status" ] }, "definition": { "type": "object", "description": "The step's definition details.", "x-schemaName": "WorkflowExecutionDefinition", "properties": { "async": { "type": "boolean", "title": "async", "description": "Whether the step is async." }, "compensateAsync": { "type": "boolean", "title": "compensateAsync", "description": "Whether the compensation function of the step is async." }, "noCompensation": { "type": "boolean", "title": "noCompensation", "description": "Whether the step doesn't have a compensation function." }, "continueOnPermanentFailure": { "type": "boolean", "title": "continueOnPermanentFailure", "description": "Whether the step continues executing even if its status is changed to failed." }, "maxRetries": { "type": "number", "title": "maxRetries", "description": "The maximum number of times to retry the step." }, "noWait": { "type": "boolean", "title": "noWait", "description": "Whether the workflow shouldn't wait for the step to finish before moving to the next step.", "default": false }, "retryInterval": { "type": "number", "title": "retryInterval", "description": "The interval in seconds between retry attempts when the step fails." }, "retryIntervalAwaiting": { "type": "number", "title": "retryIntervalAwaiting", "description": "The interval in seconds to retry a step even if its status is `waiting_response`." }, "saveResponse": { "type": "boolean", "title": "saveResponse", "description": "Whether the step's response is stored." }, "timeout": { "type": "number", "title": "timeout", "description": "The maximum time in seconds to wait for this step to complete. If the step exceeds this time, the step's state is changed to `timeout`, but the step continues executing." } } }, "compensate": { "type": "object", "description": "The state of the step's compensation function.", "x-schemaName": "WorkflowExecutionFn", "properties": { "state": { "type": "string", "description": "The compensation function's state.", "enum": [ "not_started", "invoking", "compensating", "done", "reverted", "failed", "dormant", "skipped", "skipped_failure", "timeout" ] }, "status": { "type": "string", "description": "The compensation function's status.", "enum": [ "idle", "ok", "waiting_response", "temp_failure", "permanent_failure" ] } }, "required": [ "state", "status" ] }, "depth": { "type": "number", "title": "depth", "description": "The step's depth in the workflow's execution." }, "startedAt": { "type": "number", "title": "startedAt", "description": "The timestamp the step started executing." } } } } } }, "AdminWorkflowExecutionResponse": { "type": "object", "description": "The workflow execution's details.", "x-schemaName": "AdminWorkflowExecutionResponse", "required": [ "workflow_execution" ], "properties": { "workflow_execution": { "$ref": "#/components/schemas/AdminWorkflowExecution" } } }, "ApiKeyResponse": { "type": "object", "description": "The API key's details.", "x-schemaName": "ApiKeyResponse", "required": [ "id", "token", "redacted", "title", "type", "last_used_at", "created_by", "created_at", "revoked_by", "revoked_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The API key's ID." }, "token": { "type": "string", "title": "token", "description": "The API key's token." }, "redacted": { "type": "string", "title": "redacted", "description": "The redacted form of the API key's token. This is useful when showing portion of the token. For example `sk_...123`." }, "title": { "type": "string", "title": "title", "description": "The API key's title." }, "type": { "type": "string", "description": "The API key's type. `secret` API keys are used for authenticating admin users, and `publishable` API key are used for storefronts and similar clients to scope requests to sales channels.", "enum": [ "secret", "publishable" ] }, "last_used_at": { "type": "string", "title": "last_used_at", "description": "The date the API key was last used.", "format": "date-time" }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the API key." }, "created_at": { "type": "string", "title": "created_at", "description": "The date the API key was created.", "format": "date-time" }, "revoked_by": { "type": "string", "title": "revoked_by", "description": "The ID of the user that revoked the API key." }, "revoked_at": { "type": "string", "title": "revoked_at", "description": "The date the API key was revoked.", "format": "date-time" } } }, "AuthAdminSessionResponse": { "type": "object", "description": "The authenticated user's details.", "x-schemaName": "AuthAdminSessionResponse", "required": [ "user" ], "properties": { "user": { "title": "user", "description": "The logged-in user.", "$ref": "#/components/schemas/AdminUser" } } }, "AuthCallbackResponse": { "type": "object", "description": "The authentication's details.", "x-schemaName": "AuthCallbackResponse", "required": [ "location" ], "properties": { "location": { "type": "string", "title": "location", "description": "The location to redirect the user to for further authentication with the third-party provider." } } }, "AuthResponse": { "type": "object", "description": "The authentication's details.", "x-schemaName": "AuthResponse", "required": [ "token" ], "properties": { "token": { "type": "string", "title": "token", "description": "The JWT token used for registration or authentication." } } }, "AuthStoreSessionResponse": { "type": "object", "description": "The authenticated customer's details.", "x-schemaName": "AuthStoreSessionResponse", "required": [ "user" ], "properties": { "user": { "title": "user", "description": "The logged-in customer.", "$ref": "#/components/schemas/StoreCustomer" } } }, "BaseCalculatedPriceSet": { "type": "object", "description": "The calculated price's details.", "x-schemaName": "BaseCalculatedPriceSet", "required": [ "id", "calculated_amount", "original_amount", "original_amount_with_tax", "original_amount_without_tax", "currency_code" ], "properties": { "id": { "type": "string", "title": "id", "description": "The calculated price's ID." }, "is_calculated_price_price_list": { "type": "boolean", "title": "is_calculated_price_price_list", "description": "Whether the calculated price belongs to a price list." }, "is_calculated_price_tax_inclusive": { "type": "boolean", "title": "is_calculated_price_tax_inclusive", "description": "Whether the calculated price is tax inclusive." }, "calculated_amount": { "type": "number", "title": "calculated_amount", "description": "The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer." }, "calculated_amount_with_tax": { "type": "number", "title": "calculated_amount_with_tax", "description": "The calculated price's amount with taxes applied." }, "calculated_amount_without_tax": { "type": "number", "title": "calculated_amount_without_tax", "description": "The calculated price's amount without taxes applied." }, "is_original_price_price_list": { "type": "boolean", "title": "is_original_price_price_list", "description": "Whether the original price belongs to a price list." }, "is_original_price_tax_inclusive": { "type": "boolean", "title": "is_original_price_tax_inclusive", "description": "Whether the original price is tax inclusive." }, "original_amount": { "type": "number", "title": "original_amount", "description": "The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The calculated price's currency code.", "example": "usd" }, "calculated_price": { "type": "object", "description": "The calculated price's details." }, "original_price": { "type": "object", "description": "The original price's details." }, "original_amount_with_tax": { "type": "number", "title": "original_amount_with_tax", "description": "The amount of the original price with taxes applied." }, "original_amount_without_tax": { "type": "number", "title": "original_amount_without_tax", "description": "The amount of the original price without taxes." } } }, "BaseCapture": { "type": "object", "description": "The details of a captured payment.", "x-schemaName": "BaseCapture", "required": [ "id", "amount", "created_at", "payment" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment capture's ID." }, "amount": { "type": "number", "title": "amount", "description": "The captured amount." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the capture was created." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that captured the payment." }, "payment": { "type": "object" } } }, "BaseCart": { "type": "object", "description": "The item's cart.", "x-schemaName": "BaseCart", "required": [ "id", "currency_code", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The cart's ID." }, "region": { "$ref": "#/components/schemas/BaseRegion" }, "region_id": { "type": "string", "title": "region_id", "description": "The cart's region id." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The cart's customer id." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The cart's sales channel id." }, "email": { "type": "string", "title": "email", "description": "The cart's email.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The cart's currency code." }, "shipping_address": { "$ref": "#/components/schemas/BaseCartAddress" }, "billing_address": { "$ref": "#/components/schemas/BaseCartAddress" }, "items": { "type": "array", "description": "The cart's items.", "items": { "type": "object" } }, "shipping_methods": { "type": "array", "description": "The cart's shipping methods.", "items": { "$ref": "#/components/schemas/BaseCartShippingMethod" } }, "payment_collection": { "$ref": "#/components/schemas/BasePaymentCollection" }, "metadata": { "type": "object", "description": "The cart's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The cart's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The cart's updated at." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The cart's original item total." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The cart's original item subtotal." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The cart's original item tax total." }, "item_total": { "type": "number", "title": "item_total", "description": "The cart's item total." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The cart's item subtotal." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The cart's item tax total." }, "original_total": { "type": "number", "title": "original_total", "description": "The cart's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The cart's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The cart's original tax total." }, "total": { "type": "number", "title": "total", "description": "The cart's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The cart's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The cart's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The cart's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The cart's discount tax total." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The cart's gift card total." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The cart's gift card tax total." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The cart's shipping total." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The cart's shipping subtotal." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The cart's shipping tax total." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The cart's original shipping total." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The cart's original shipping subtotal." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The cart's original shipping tax total." } } }, "BaseCartAddress": { "type": "object", "description": "The cart's shipping address.", "x-schemaName": "BaseCartAddress" }, "BaseCartLineItem": { "type": "object", "description": "The tax line's item.", "x-schemaName": "BaseCartLineItem", "required": [ "id", "title", "quantity", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "cart", "cart_id", "original_total", "original_subtotal", "original_tax_total", "item_total", "item_subtotal", "item_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "product": { "$ref": "#/components/schemas/BaseProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The item's product id." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The item's product collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant": { "$ref": "#/components/schemas/BaseProductVariant" }, "variant_id": { "type": "string", "title": "variant_id", "description": "The item's variant id." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant sku." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The item's variant option values." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "The item's requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "The item's is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The item's is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The item's compare at unit price." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "type": "object" } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "$ref": "#/components/schemas/BaseLineItemAdjustment" } }, "cart": { "$ref": "#/components/schemas/BaseCart" }, "cart_id": { "type": "string", "title": "cart_id", "description": "The item's cart id." }, "metadata": { "type": "object", "description": "The item's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The item's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The item's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The item's deleted at." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The item's original tax total." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's item total." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's item subtotal." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The item's item tax total." }, "total": { "type": "number", "title": "total", "description": "The item's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The item's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The item's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The item's discount tax total." } } }, "BaseCartShippingMethod": { "type": "object", "description": "A cart's shipping method.", "x-schemaName": "BaseCartShippingMethod", "required": [ "id", "cart_id", "name", "amount", "is_tax_inclusive", "created_at", "updated_at", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the cart this shipping method belongs to." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the shipping method's amount is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this method was created from." }, "data": { "type": "object", "description": "The shipping method's data, useful for fulfillment handling by third-party services.", "externalDocs": { "url": "https://docs.medusajs.com/resources/commerce-modules/cart/concepts#data-property" } }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "$ref": "#/components/schemas/BaseShippingMethodTaxLine" } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments, such as applied promotions.", "items": { "$ref": "#/components/schemas/BaseShippingMethodAdjustment" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method was updated." }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes applied on the shipping method's amount including promotions." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total amount including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total amount excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The total taxes applied on the shipping method's amount including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total amount discounted." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The taxes applied on the discounted amount." } } }, "BaseClaimItem": { "type": "object", "description": "The claim item's details.", "x-schemaName": "BaseClaimItem", "required": [ "id", "claim_id", "order_id", "item_id", "quantity", "reason", "raw_quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The claim item's ID." }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the claim this item belongs to." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this item belongs to." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item in the order." }, "quantity": { "type": "number", "title": "quantity", "description": "The quantity claimed." }, "reason": { "type": "string", "description": "The claim's reason.", "enum": [ "missing_item", "wrong_item", "production_failure", "other" ] }, "raw_quantity": { "type": "object", "description": "The quantity claimed.", "properties": { "value": { "oneOf": [ { "type": "string", "title": "value", "description": "The raw quantity's value." }, { "type": "number", "title": "value", "description": "The raw quantity's value." } ] } }, "required": [ "value" ] }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the claim was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the claim was updated." } } }, "BaseCollection": { "type": "object", "description": "The product collection's details.", "x-schemaName": "BaseCollection", "required": [ "id", "title", "handle", "created_at", "updated_at", "deleted_at", "metadata" ], "properties": { "id": { "type": "string", "title": "id", "description": "The collection's ID." }, "title": { "type": "string", "title": "title", "description": "The collection's title." }, "handle": { "type": "string", "title": "handle", "description": "The collection's handle." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The collection's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The collection's update date." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The collection's deletion date." }, "products": { "type": "array", "description": "The collection's products.", "items": { "type": "object" } }, "metadata": { "type": "object", "description": "The collection's metadata, used to store custom key-value pairs." } } }, "BaseExchangeItem": { "type": "object", "description": "The item's details.", "x-schemaName": "BaseExchangeItem", "required": [ "id", "exchange_id", "order_id", "item_id", "quantity", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the exchange this item belongs to." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this item belongs to." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item in the order." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." } } }, "BaseFulfillmentProvider": { "type": "object", "description": "The fulfillment provider's details.", "x-schemaName": "BaseFulfillmentProvider", "required": [ "id", "is_enabled" ], "properties": { "id": { "type": "string", "title": "id", "description": "The provider's ID." }, "is_enabled": { "type": "boolean", "title": "is_enabled", "description": "Whether the provider is enabled." } } }, "BaseLineItemAdjustment": { "type": "object", "description": "The adjustment's details.", "x-schemaName": "BaseLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "cart_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object" }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item this adjustment applies on." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the cart this adjustment belongs to." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the promotion applied by this adjustment." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } } }, "BaseLineItemTaxLine": { "type": "object", "description": "The tax line's details", "x-schemaName": "BaseLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "$ref": "#/components/schemas/BaseCartLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item the tax line applies on." }, "total": { "type": "number", "title": "total", "description": "The item's total, including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal excluding taxes, including promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the associated tax rate." }, "code": { "type": "string", "title": "code", "description": "The code the tax rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } } }, "BaseOrder": { "type": "object", "description": "The order's details.", "x-schemaName": "BaseOrder", "required": [ "id", "version", "region_id", "customer_id", "sales_channel_id", "email", "currency_code", "status", "items", "shipping_methods", "payment_status", "fulfillment_status", "summary", "created_at", "updated_at", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "payment_collections": { "type": "array", "description": "The order's payment collections.", "items": { "$ref": "#/components/schemas/BasePaymentCollection" } }, "fulfillments": { "type": "array", "description": "The order's fulfillments.", "items": { "$ref": "#/components/schemas/BaseOrderFulfillment" } }, "shipping_address": { "$ref": "#/components/schemas/BaseOrderAddress" }, "billing_address": { "$ref": "#/components/schemas/BaseOrderAddress" }, "id": { "type": "string", "title": "id", "description": "The order's ID." }, "version": { "type": "number", "title": "version", "description": "The order's version." }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the region associated with the order." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that placed the order." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the sales channel the order is placed in." }, "email": { "type": "string", "title": "email", "description": "The email of the customer that placed the order.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The order's currency code." }, "display_id": { "type": "number", "title": "display_id", "description": "The order's display ID." }, "items": { "type": "array", "description": "The order's items.", "items": { "$ref": "#/components/schemas/BaseOrderLineItem" } }, "shipping_methods": { "type": "array", "description": "The order's shipping methods.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethod" } }, "payment_status": { "type": "string", "description": "The order's payment status.", "enum": [ "canceled", "not_paid", "awaiting", "authorized", "partially_authorized", "captured", "partially_captured", "partially_refunded", "refunded", "requires_action" ] }, "fulfillment_status": { "type": "string", "description": "The order's fulfillment status.", "enum": [ "canceled", "not_fulfilled", "partially_fulfilled", "fulfilled", "partially_shipped", "shipped", "partially_delivered", "delivered" ] }, "transactions": { "type": "array", "description": "The order's transactions.", "items": { "$ref": "#/components/schemas/BaseOrderTransaction" } }, "summary": { "$ref": "#/components/schemas/BaseOrderSummary" }, "metadata": { "type": "object", "description": "The order's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the order was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the order was updated." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The total of the order's items including taxes, excluding promotions." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The total of the order's items excluding taxes, including promotions." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The tax total of the order's items excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The total of the order's items including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The total of the order's items excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The tax total of the order's items including promotions." }, "original_total": { "type": "number", "title": "original_total", "description": "The order's total excluding promotions, including taxes." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The order's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The order's tax total, excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The order's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The order's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The order's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The order's discount or promotions total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The tax total of order's discount or promotion." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The order's gift card total." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The tax total of the order's gift card." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The order's shipping total including taxes and promotions." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The tax total of the order's shipping." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The order's shipping total including taxes, excluding promotions." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The tax total of the order's shipping excluding promotions." }, "status": { "type": "string", "title": "status", "description": "The order's status." } } }, "BaseOrderAddress": { "type": "object", "description": "An order address.", "x-schemaName": "BaseOrderAddress", "required": [ "id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer this address belongs to." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the address was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the address was updated." } } }, "BaseOrderFulfillment": { "type": "object", "description": "The fulfillment's details.", "x-schemaName": "BaseOrderFulfillment", "required": [ "id", "location_id", "packed_at", "shipped_at", "delivered_at", "canceled_at", "requires_shipping", "data", "provider_id", "shipping_option_id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The fulfillment's ID." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the items are fulfilled from." }, "packed_at": { "type": "string", "title": "packed_at", "description": "The date the items were packed.", "format": "date-time" }, "shipped_at": { "type": "string", "title": "shipped_at", "description": "The date the items were shipped.", "format": "date-time" }, "delivered_at": { "type": "string", "title": "delivered_at", "description": "The date the items were delivered.", "format": "date-time" }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the items were canceled.", "format": "date-time" }, "data": { "type": "object", "description": "Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the fulfillment provider used to handle the fulfillment." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "metadata": { "type": "object", "description": "The fulfillment's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the fulfillment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the fulfillment was updated." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the fulfillment requires shipping." } } }, "BaseOrderItemDetail": { "type": "object", "description": "The item's detail.", "x-schemaName": "BaseOrderItemDetail", "required": [ "id", "item_id", "item", "quantity", "fulfilled_quantity", "delivered_quantity", "shipped_quantity", "return_requested_quantity", "return_received_quantity", "return_dismissed_quantity", "written_off_quantity", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "the detail's ID." }, "item_id": { "type": "string", "title": "id", "description": "the ID of the associated line item." }, "item": { "type": "object" }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "fulfilled_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The item's fulfilled quantity." }, "delivered_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The item's delivered quantity." }, "shipped_quantity": { "type": "number", "title": "shipped_quantity", "description": "The item's shipped quantity." }, "return_requested_quantity": { "type": "number", "title": "return_requested_quantity", "description": "The item's quantity that's requested to be returned." }, "return_received_quantity": { "type": "number", "title": "return_received_quantity", "description": "The item's quantity that's returned and added to the underlying variant's stocked quantity." }, "return_dismissed_quantity": { "type": "number", "title": "return_dismissed_quantity", "description": "The item's quantity that's returned but damaged. So, it's not added to the underlying variant's stocked quantity." }, "written_off_quantity": { "type": "number", "title": "written_off_quantity", "description": "The item's quantity that's removed from the order." }, "metadata": { "type": "object", "title": "metadata", "description": "The item's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the detail was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the detail was updated." } } }, "BaseOrderLineItem": { "type": "object", "description": "The item's items.", "x-schemaName": "BaseOrderLineItem", "required": [ "id", "title", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type_id", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "detail", "created_at", "updated_at", "metadata", "original_total", "original_subtotal", "original_tax_total", "item_total", "item_subtotal", "item_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "refundable_total", "refundable_total_per_unit" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The URL of the item's thumbnail." }, "variant": { "$ref": "#/components/schemas/BaseProductVariant" }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated variant." }, "product": { "$ref": "#/components/schemas/BaseProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the associated product." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The ID of the collection the item's product belongs to." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant SKU." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The values of the item variant's options.", "example": { "Color": "Blue" } }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the item requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "Whether the item is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the item is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "$ref": "#/components/schemas/BaseOrderLineItemTaxLine" } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "$ref": "#/components/schemas/BaseOrderLineItemAdjustment" } }, "detail": { "$ref": "#/components/schemas/BaseOrderItemDetail" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes of the item, excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The total taxes of the item, including promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's total excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The total taxes of the item, including promotions." }, "total": { "type": "number", "title": "total", "description": "The item's total, including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The tax total of the item including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discount amount of the item." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The total taxes applied on the discounted amount." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The total refundable amount of the item's total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The total refundable amount of the item's total for a single quantity." }, "product_type_id": { "type": "string", "title": "product_type_id", "description": "The ID of the associated product's type." } } }, "BaseOrderLineItemAdjustment": { "type": "object", "description": "The adjustment's details.", "x-schemaName": "BaseOrderLineItemAdjustment", "properties": { "item": { "type": "object" }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item this adjustment applies to." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the promotion that this applies on the order's item." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } }, "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ] }, "BaseOrderLineItemTaxLine": { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderLineItemTaxLine", "properties": { "item": { "type": "object" }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the associated line item." }, "total": { "type": "number", "title": "total", "description": "The tax line's total including promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal excluding promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the applied tax rate." }, "code": { "type": "string", "title": "code", "description": "The code that the tax rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider used to calculate the tax line." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } }, "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ] }, "BaseOrderShippingDetail": { "type": "object", "description": "Details of changes to a shipping method.", "x-schemaName": "BaseOrderShippingDetail", "required": [ "id", "shipping_method_id", "shipping_method", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the new changes to the shipping method." }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of the shipping method." }, "shipping_method": { "type": "object" }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the associated claim." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the associated exchange." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated return." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method change was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method change was updated." } } }, "BaseOrderShippingMethod": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "BaseOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the shipping method belongs to." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the shipping method's amount includes applied taxes." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this method was created from." }, "data": { "type": "object", "description": "The shipping method's data, useful for fulfillment provider handling its fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethodTaxLine" } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "$ref": "#/components/schemas/BaseOrderShippingMethodAdjustment" } }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's total taxes excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discounts applied on the shipping method." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The taxes applied on the discount amount." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method was updated." }, "detail": { "$ref": "#/components/schemas/BaseOrderShippingDetail" } } }, "BaseOrderShippingMethodAdjustment": { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderShippingMethodAdjustment", "properties": { "shipping_method": { "type": "object" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of the shipping method this adjustment applies on." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the promotion applied by this adjustment." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } }, "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ] }, "BaseOrderShippingMethodTaxLine": { "type": "object", "description": "The tax line's details.", "x-schemaName": "BaseOrderShippingMethodTaxLine", "properties": { "shipping_method": { "type": "object" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of the shipping method this tax line belongs to." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the applied tax rate." }, "code": { "type": "string", "title": "code", "description": "The code that the tax rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider handling the tax calculation." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } }, "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ] }, "BaseOrderSummary": { "type": "object", "description": "The order's summary details.", "x-schemaName": "BaseOrderSummary", "required": [ "pending_difference", "current_order_total", "original_order_total", "transaction_total", "paid_total", "refunded_total", "accounting_total" ], "properties": { "paid_total": { "type": "number", "title": "paid_total", "description": "The total amount paid." }, "refunded_total": { "type": "number", "title": "refunded_total", "description": "The total amount refunded." }, "pending_difference": { "type": "number", "title": "pending_difference", "description": "The difference pending to be processed. If negative, the customer needs a refund. Otherwise, additional payment is required from the customer." }, "current_order_total": { "type": "number", "title": "current_order_total", "description": "The order's current total, could be the total after a change in the order." }, "original_order_total": { "type": "number", "title": "original_order_total", "description": "The order's original total." }, "transaction_total": { "type": "number", "title": "transaction_total", "description": "The total of the transactions made on the order." }, "accounting_total": { "type": "number", "title": "accounting_total", "description": "The order's total without the credit-line total." } } }, "BaseOrderTransaction": { "type": "object", "description": "An order transaction's details.", "x-schemaName": "BaseOrderTransaction", "required": [ "id", "order_id", "amount", "currency_code", "reference", "reference_id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The transaction's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this transaction belongs to." }, "amount": { "type": "number", "title": "amount", "description": "The transaction's amount." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The transaction's currency code.", "example": "usd" }, "reference": { "type": "string", "title": "reference", "description": "The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`.", "enum": [ "capture", "refund" ] }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of the referenced record in the referenced table." }, "metadata": { "type": "object", "description": "The transaction's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date that the transaction was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date that the transaction was updated." } } }, "BasePayment": { "type": "object", "description": "The payment's details.", "x-schemaName": "BasePayment", "required": [ "id", "amount", "currency_code", "provider_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment's ID." }, "amount": { "type": "number", "title": "amount", "description": "The payment's amount." }, "authorized_amount": { "type": "number", "title": "authorized_amount", "description": "The amount authorized of the payment." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment's currency code." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the payment provider used to process this payment." }, "data": { "type": "object", "description": "The payment's data, useful for processing by the payment provider.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment#whats-a-payment" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the payment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the payment was updated." }, "captured_at": { "type": "string", "format": "date-time", "title": "captured_at", "description": "The date the payment was captured." }, "canceled_at": { "type": "string", "format": "date-time", "title": "canceled_at", "description": "The date the payment was canceled." }, "captured_amount": { "type": "number", "title": "captured_amount", "description": "The captured amount of the payment." }, "refunded_amount": { "type": "number", "title": "captured_amount", "description": "The refunded amount of the payment." }, "captures": { "type": "array", "description": "The details of payment captures.", "items": { "$ref": "#/components/schemas/BaseCapture" } }, "refunds": { "type": "array", "description": "The details of payment refunds.", "items": { "$ref": "#/components/schemas/BaseRefund" } }, "payment_collection": { "type": "object" }, "payment_session": { "type": "object" } } }, "BasePaymentCollection": { "type": "object", "description": "The payment collection's details.", "x-schemaName": "BasePaymentCollection", "required": [ "id", "currency_code", "amount", "status", "payment_providers" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment collection's ID." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment collection's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The total amount to be paid." }, "authorized_amount": { "type": "number", "title": "authorized_amount", "description": "The total authorized amount of the collection's payments." }, "captured_amount": { "type": "number", "title": "captured_amount", "description": "The total captured amount of the collection's payments." }, "refunded_amount": { "type": "number", "title": "refunded_amount", "description": "The total refunded amount of the collection's payments." }, "completed_at": { "type": "string", "format": "date-time", "title": "completed_at", "description": "The date the payment collection was completed." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the payment collection was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the payment collection was updated." }, "metadata": { "type": "object", "description": "The payment collection's metadata, can hold custom key-value pairs." }, "status": { "type": "string", "description": "The payment collection's status.", "enum": [ "canceled", "not_paid", "awaiting", "authorized", "partially_authorized", "completed", "failed" ] }, "payment_providers": { "type": "array", "description": "The payment provider used to process the collection's payments and sessions.", "items": { "$ref": "#/components/schemas/BasePaymentProvider" } }, "payment_sessions": { "type": "array", "description": "The payment collection's payment sessions.", "items": { "$ref": "#/components/schemas/BasePaymentSession" } }, "payments": { "type": "array", "description": "The payment collection's payments.", "items": { "$ref": "#/components/schemas/BasePayment" } } } }, "BasePaymentProvider": { "type": "object", "description": "The payment provider's details.", "x-schemaName": "BasePaymentProvider", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment provider's ID." } } }, "BasePaymentSession": { "type": "object", "description": "The payment session's details.", "x-schemaName": "BasePaymentSession", "required": [ "id", "amount", "currency_code", "provider_id", "data", "status" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment session's ID." }, "amount": { "type": "number", "title": "amount", "description": "The payment session's amount." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment session's currency code.", "example": "usd" }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the payment provider processing this session." }, "data": { "type": "object", "description": "The payment session's data, useful for the payment provider processing the payment.", "externalDocs": { "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property" } }, "context": { "type": "object", "description": "The context around the payment, such as the customer's details.", "example": { "customer": { "id": "cus_123" } } }, "status": { "type": "string", "description": "The payment session's status.", "enum": [ "error", "authorized", "canceled", "captured", "pending", "requires_more" ] }, "authorized_at": { "type": "string", "title": "authorized_at", "description": "The date the payment session was authorized.", "format": "date-time" }, "payment_collection": { "type": "object" }, "payment": { "$ref": "#/components/schemas/BasePayment" } } }, "BaseProduct": { "type": "object", "description": "The product's details.", "x-schemaName": "BaseProduct", "required": [ "id", "title", "handle", "subtitle", "description", "is_giftcard", "status", "thumbnail", "width", "weight", "length", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "variants", "options", "images", "discountable", "external_id", "created_at", "updated_at", "deleted_at" ], "properties": { "collection": { "$ref": "#/components/schemas/BaseCollection" }, "categories": { "type": "array", "description": "The product's categories.", "items": { "$ref": "#/components/schemas/BaseProductCategory" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "type": "object" } }, "type": { "$ref": "#/components/schemas/BaseProductType" }, "tags": { "type": "array", "description": "The product's tags.", "items": { "$ref": "#/components/schemas/BaseProductTag" } }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "options": { "type": "array", "description": "The product's options.", "items": { "$ref": "#/components/schemas/BaseProductOption" } }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "id": { "type": "string", "title": "id", "description": "The product's ID." }, "metadata": { "type": "object", "description": "The product's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the product was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the product was updated." }, "handle": { "type": "string", "title": "handle", "description": "The product's unique handle." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "Whether the product is a gift card." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's MID code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The ID of the collection that the product belongs to." }, "type_id": { "type": "string", "title": "type_id", "description": "The ID of the product's type." }, "images": { "type": "array", "description": "The product's images.", "items": { "$ref": "#/components/schemas/BaseProductImage" } }, "discountable": { "type": "boolean", "title": "discountable", "description": "Whether discounts can be applied on the product." }, "external_id": { "type": "string", "title": "external_id", "description": "The ID of a product in an external system, such as an ERP or CMS." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the product was deleted." } } }, "BaseProductCategory": { "type": "object", "description": "The product category's details.", "x-schemaName": "BaseProductCategory", "required": [ "id", "name", "description", "handle", "is_active", "is_internal", "rank", "parent_category_id", "parent_category", "category_children", "created_at", "updated_at", "deleted_at" ], "properties": { "category_children": { "type": "array", "description": "The category's children.", "items": { "$ref": "#/components/schemas/AdminProductCategory" } }, "parent_category": { "$ref": "#/components/schemas/AdminProductCategory" }, "products": { "type": "array", "description": "The category's products.", "items": { "type": "object" } }, "name": { "type": "string", "title": "name", "description": "The category's name." }, "description": { "type": "string", "title": "description", "description": "The category's description." }, "id": { "type": "string", "title": "id", "description": "The category's ID." }, "metadata": { "type": "object", "description": "The category's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the category was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the category was updated." }, "handle": { "type": "string", "title": "handle", "description": "The category's unique handle." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the category was deleted." }, "is_active": { "type": "boolean", "title": "is_active", "description": "Whether the category is active. If disabled, the category isn't shown in the storefront." }, "is_internal": { "type": "boolean", "title": "is_internal", "description": "Whether the category is internal. If enabled, the category is only seen by admin users." }, "rank": { "type": "number", "title": "rank", "description": "The category's rank among sibling categories." }, "parent_category_id": { "type": "string", "title": "parent_category_id", "description": "The ID of the category's parent." } } }, "BaseProductImage": { "type": "object", "description": "The image's details.", "x-schemaName": "BaseProductImage", "properties": { "id": { "type": "string", "title": "id", "description": "The image's ID." }, "url": { "type": "string", "title": "url", "description": "The image's URL." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the image was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the image was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the image was deleted." }, "metadata": { "type": "object", "description": "The image's metadata, can hold custom key-value pairs." }, "rank": { "type": "number", "title": "rank", "description": "The image's rank among its sibling images." } }, "required": [ "id", "url", "rank" ] }, "BaseProductOption": { "type": "object", "description": "The product option's details.", "x-schemaName": "BaseProductOption", "required": [ "id", "title" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product option's ID." }, "title": { "type": "string", "title": "title", "description": "The product option's title." }, "product": { "type": "object" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the product this option belongs to." }, "values": { "type": "array", "description": "The product option's values.", "items": { "$ref": "#/components/schemas/BaseProductOptionValue" } }, "metadata": { "type": "object", "description": "The product option's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the product option was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the product option was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the product option was deleted." } } }, "BaseProductOptionValue": { "type": "object", "description": "The product option value's details.", "x-schemaName": "BaseProductOptionValue", "required": [ "id", "value" ], "properties": { "id": { "type": "string", "title": "id", "description": "The value's ID." }, "value": { "type": "string", "title": "value", "description": "The value." }, "option": { "type": "object" }, "option_id": { "type": "string", "title": "option_id", "description": "The ID of the option this value belongs to." }, "metadata": { "type": "object", "description": "The value's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the value was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the value was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the value was deleted." } } }, "BaseProductTag": { "type": "object", "description": "The product tag's details.", "x-schemaName": "BaseProductTag", "required": [ "id", "value", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The tag's ID." }, "value": { "type": "string", "title": "value", "description": "The tag's value." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tag was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tag was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the tag was deleted." }, "metadata": { "type": "object", "description": "The tag's metadata, can hold custom key-value pairs." } } }, "BaseProductType": { "type": "object", "description": "The product type's details.", "x-schemaName": "BaseProductType", "required": [ "id", "value", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The type's ID." }, "value": { "type": "string", "title": "value", "description": "The type's value." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the type was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the type was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the type was deleted." }, "metadata": { "type": "object", "description": "The type's metadata, can hold custom key-value pairs." } } }, "BaseProductVariant": { "type": "object", "description": "The product variant's details.", "x-schemaName": "BaseProductVariant", "required": [ "id", "title", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory", "hs_code", "origin_country", "mid_code", "material", "weight", "length", "height", "width", "options", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "sku": { "type": "string", "title": "sku", "description": "The variant's SKU." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's EAN code." }, "upc": { "type": "string", "title": "upc", "description": "The variant's UPC." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether the variant can be ordered even if it's out of stock." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock." }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's HS code." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's MID code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's rank among its sibling variants." }, "options": { "type": "array", "description": "The variant's option values.", "items": { "$ref": "#/components/schemas/BaseProductOptionValue" } }, "product": { "$ref": "#/components/schemas/BaseProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the product that the variant belongs to." }, "calculated_price": { "$ref": "#/components/schemas/BaseCalculatedPriceSet" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the variant was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the variant was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the variant was deleted." }, "metadata": { "type": "object", "description": "The variant's metadata, can hold custom key-value pairs." } } }, "BasePromotionRuleValue": { "type": "object", "description": "The rule value's details.", "x-schemaName": "BasePromotionRuleValue", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The value's ID." }, "value": { "type": "string", "title": "value", "description": "The value." } } }, "BaseRefund": { "type": "object", "description": "The refund's details.", "x-schemaName": "BaseRefund", "required": [ "id", "amount", "created_at", "payment" ], "properties": { "id": { "type": "string", "title": "id", "description": "The refund's ID." }, "amount": { "type": "number", "title": "amount", "description": "The refund's amount." }, "refund_reason_id": { "type": "string", "title": "refund_reason_id", "description": "The ID of the refund reason." }, "note": { "type": "string", "title": "note", "description": "More details about the refund." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the refund was created." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the refund." }, "payment": { "type": "object" }, "refund_reason": { "$ref": "#/components/schemas/RefundReason" } } }, "BaseRegion": { "type": "object", "description": "The region's details.", "x-schemaName": "BaseRegion", "required": [ "id", "name", "currency_code" ], "properties": { "id": { "type": "string", "title": "id", "description": "The region's ID." }, "name": { "type": "string", "title": "name", "description": "The region's name." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The region's currency code." }, "automatic_taxes": { "type": "boolean", "title": "automatic_taxes", "description": "The region's automatic taxes." }, "countries": { "type": "array", "description": "The region's countries.", "items": { "$ref": "#/components/schemas/BaseRegionCountry" } }, "payment_providers": { "type": "array", "description": "The region's payment providers.", "items": { "$ref": "#/components/schemas/AdminPaymentProvider" } }, "metadata": { "type": "object", "description": "The region's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The region's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The region's updated at." } } }, "BaseRegionCountry": { "type": "object", "description": "The country's details.", "x-schemaName": "BaseRegionCountry", "properties": { "id": { "type": "string", "title": "id", "description": "The country's ID." }, "iso_2": { "type": "string", "title": "iso_2", "description": "The country's iso 2.", "example": "us" }, "iso_3": { "type": "string", "title": "iso_3", "description": "The country's iso 3.", "example": "usa" }, "num_code": { "type": "string", "title": "num_code", "description": "The country's num code.", "example": 840 }, "name": { "type": "string", "title": "name", "description": "The country's name." }, "display_name": { "type": "string", "title": "display_name", "description": "The country's display name." } }, "required": [ "id" ] }, "BaseRuleOperatorOptions": { "type": "object", "description": "The operator's details.", "x-schemaName": "BaseRuleOperatorOptions", "required": [ "id", "value", "label" ], "properties": { "id": { "type": "string", "title": "id", "description": "The operator's ID.", "example": "in" }, "value": { "type": "string", "title": "value", "description": "The operator's value.", "example": "in" }, "label": { "type": "string", "title": "label", "description": "The operator's label.", "example": "In" } } }, "BaseShippingMethodAdjustment": { "type": "object", "description": "The adjustment's details.", "x-schemaName": "BaseShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "cart_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of the shipping method the adjustment is applied on." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the associated cart." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the promotion applied by this adjustment." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } } }, "BaseShippingMethodTaxLine": { "type": "object", "description": "The tax line's details.", "x-schemaName": "BaseShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of this shipping method the tax line belongs to." }, "total": { "type": "number", "title": "total", "description": "The method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The method's total excluding taxes, including promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the applied tax rate." }, "code": { "type": "string", "title": "code", "description": "The code that the rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider that calculated the taxes." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } } }, "CampaignResponse": { "type": "object", "description": "The campaign's details.", "x-schemaName": "CampaignResponse", "required": [ "id", "name", "description", "currency", "campaign_identifier", "starts_at", "ends_at", "budget" ], "properties": { "id": { "type": "string", "title": "id", "description": "The campaign's ID." }, "name": { "type": "string", "title": "name", "description": "The campaign's name." }, "description": { "type": "string", "title": "description", "description": "The campaign's description." }, "currency": { "type": "string", "title": "currency", "description": "The campaign's currency." }, "campaign_identifier": { "type": "string", "title": "campaign_identifier", "description": "The campaign's campaign identifier." }, "starts_at": { "type": "string", "title": "starts_at", "description": "The campaign's starts at." }, "ends_at": { "type": "string", "title": "ends_at", "description": "The campaign's ends at." }, "budget": { "type": "object", "description": "The campaign's budget.", "required": [ "id", "type", "currency_code", "limit", "used" ], "properties": { "id": { "type": "string", "title": "id", "description": "The budget's ID." }, "type": { "type": "string", "enum": [ "spend", "usage" ] }, "currency_code": { "type": "string", "title": "currency_code", "description": "The budget's currency code." }, "limit": { "type": "number", "title": "limit", "description": "The budget's limit." }, "used": { "type": "number", "title": "used", "description": "The budget's used." } } } } }, "CreateAddress": { "type": "object", "description": "The address to create.", "x-schemaName": "CreateAddress", "properties": { "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer this address belongs to." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." } } }, "CustomerGroupInCustomerFilters": { "type": "object", "description": "Filter by customer groups to get their associated customers.", "x-schemaName": "CustomerGroupInCustomerFilters", "required": [ "id", "name", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "oneOf": [ { "type": "string", "title": "id", "description": "Filter by a group's ID." }, { "type": "array", "description": "Filter by group IDs.", "items": { "type": "string", "title": "id", "description": "A group's ID." } } ] }, "name": { "oneOf": [ { "type": "string", "title": "name", "description": "Filter by a group's name." }, { "type": "array", "description": "Filter by group names.", "items": { "type": "string", "title": "name", "description": "A group's name." } } ] }, "created_at": { "type": "object", "description": "Filter by the group's creation date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, "updated_at": { "type": "object", "description": "Filter by the group's update date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } }, "deleted_at": { "type": "object", "description": "Filter by the group's deletion date.", "properties": { "$and": { "type": "array", "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$and" }, "$or": { "type": "array", "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.", "items": { "type": "object" }, "title": "$or" }, "$eq": { "oneOf": [ { "type": "string", "title": "$eq", "description": "Filter by an exact match." }, { "type": "array", "description": "Filter by exact matches.", "items": { "type": "string", "title": "$eq", "description": "Filter by an exact match." } } ] }, "$ne": { "type": "string", "title": "$ne", "description": "Filter by values not equal to this parameter." }, "$in": { "type": "array", "description": "Filter by values in this array.", "items": { "type": "string", "title": "$in", "description": "Filter by values in this array." } }, "$nin": { "type": "array", "description": "Filter by values not in this array.", "items": { "type": "string", "title": "$nin", "description": "Filter by values not in this array." } }, "$not": { "oneOf": [ { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "object", "description": "Filter by values not matching the conditions in this parameter." }, { "type": "array", "description": "Filter by values not matching the conditions in this parameter.", "items": { "type": "string", "title": "$not", "description": "Filter by values not matching the conditions in this parameter." } } ] }, "$gt": { "type": "string", "title": "$gt", "description": "Filter by values greater than this parameter. Useful for numbers and dates only." }, "$gte": { "type": "string", "title": "$gte", "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only." }, "$lt": { "type": "string", "title": "$lt", "description": "Filter by values less than this parameter. Useful for numbers and dates only." }, "$lte": { "type": "string", "title": "$lte", "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only." }, "$like": { "type": "string", "title": "$like", "description": "Apply a `like` filter. Useful for strings only." }, "$re": { "type": "string", "title": "$re", "description": "Apply a regex filter. Useful for strings only." }, "$ilike": { "type": "string", "title": "$ilike", "description": "Apply a case-insensitive `like` filter. Useful for strings only." }, "$fulltext": { "type": "string", "title": "$fulltext", "description": "Filter to apply on full-text properties." }, "$overlap": { "type": "array", "description": "Filter arrays that have overlapping values with this parameter.", "items": { "type": "string", "title": "$overlap", "description": "Filter arrays that have overlapping values with this parameter." } }, "$contains": { "type": "array", "description": "Filter arrays that contain some of the values of this parameter.", "items": { "type": "string", "title": "$contains", "description": "Filter arrays that contain some of the values of this parameter." } }, "$contained": { "type": "array", "description": "Filter arrays that contain all values of this parameter.", "items": { "type": "string", "title": "$contained", "description": "Filter arrays that contain all values of this parameter." } }, "$exists": { "type": "boolean", "title": "$exists", "description": "Filter by whether a value for this parameter exists (not `null`)." } } } } }, "Error": { "title": "Response Error", "type": "object", "properties": { "code": { "type": "string", "description": "A slug code to indicate the type of the error.", "enum": [ "invalid_state_error", "invalid_request_error", "api_error", "unknown_error" ] }, "message": { "type": "string", "description": "Description of the error that occurred.", "example": "first_name must be a string" }, "type": { "type": "string", "description": "A slug indicating the type of the error.", "enum": [ "QueryRunnerAlreadyReleasedError", "TransactionAlreadyStartedError", "TransactionNotStartedError", "conflict", "unauthorized", "payment_authorization_error", "duplicate_error", "not_allowed", "invalid_data", "not_found", "database_error", "unexpected_state", "invalid_argument", "unknown_error" ] } } }, "InventoryLevel": { "type": "object", "description": "The inventory level's details", "x-schemaName": "InventoryLevel", "required": [ "id", "inventory_item_id", "location_id", "stocked_quantity", "reserved_quantity", "available_quantity", "incoming_quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The inventory level's ID." }, "inventory_item_id": { "type": "string", "title": "inventory_item_id", "description": "The ID of the associated inventory item." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the associated location." }, "stocked_quantity": { "type": "number", "title": "stocked_quantity", "description": "The inventory level's stocked quantity." }, "reserved_quantity": { "type": "number", "title": "reserved_quantity", "description": "The inventory level's reserved quantity." }, "available_quantity": { "type": "number", "title": "available_quantity", "description": "The inventory level's available quantity." }, "incoming_quantity": { "type": "number", "title": "incoming_quantity", "description": "The inventory level's incoming quantity." }, "metadata": { "type": "object", "description": "The inventory level's metadata, can hold custom key-value pairs." } } }, "Order": { "type": "object", "description": "The order change's order.", "x-schemaName": "Order", "required": [ "id", "version", "display_id", "status", "currency_code", "created_at", "updated_at", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_subtotal", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The order's ID." }, "version": { "type": "number", "title": "version", "description": "The order's version." }, "order_change": { "type": "object" }, "status": { "type": "string", "description": "The order's status.", "enum": [ "canceled", "requires_action", "pending", "completed", "draft", "archived" ] }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the region the order belongs to." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that placed the order." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the sales channel the order was placed in." }, "email": { "type": "string", "title": "email", "description": "The email of the customer that placed the order.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The order's currency code.", "example": "usd" }, "shipping_address": { "$ref": "#/components/schemas/OrderAddress" }, "billing_address": { "$ref": "#/components/schemas/OrderAddress" }, "items": { "type": "array", "description": "The order's items.", "items": { "$ref": "#/components/schemas/OrderLineItem" } }, "shipping_methods": { "type": "array", "description": "The order's shipping methods.", "items": { "$ref": "#/components/schemas/OrderShippingMethod" } }, "transactions": { "type": "array", "description": "The order's transactions.", "items": { "$ref": "#/components/schemas/OrderTransaction" } }, "summary": { "type": "object", "description": "The order's summary." }, "metadata": { "type": "object", "description": "The order's metadata, can hold custom key-value pairs." }, "canceled_at": { "type": "string", "format": "date-time", "title": "canceled_at", "description": "The date the order was canceled." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the order was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the order was updated." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The order items' total including taxes, excluding promotions." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The order items' total excluding taxes, including promotions." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The taxes total for order items, excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The order items' total including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The order items' total excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The tax total of the order items including promotions." }, "original_total": { "type": "number", "title": "original_total", "description": "The order's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The order's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The tax total of the order excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The order's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The order's subtotal excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The tax total of the order including promotions." }, "discount_subtotal": { "type": "number", "title": "discount_subtotal", "description": "The total discount excluding taxes." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discount including taxes." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The tax total applied on the discount." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The order's gift card total." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The order's gift card tax total." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The order's shipping total including taxes and promotions." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The total taxes of the order's shipping including taxes." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The order's shipping total including taxes, excluding promotions." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The total taxes of the order's shipping excluding promotions." }, "display_id": { "type": "number", "title": "display_id", "description": "The order's display ID." }, "credit_lines": { "type": "array", "description": "The order's credit lines, useful to add additional payment amounts for an order.", "items": { "$ref": "#/components/schemas/OrderCreditLine" } } } }, "OrderAddress": { "type": "object", "description": "The address's details.", "x-schemaName": "OrderAddress", "required": [ "id", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer the address belongs to." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the address was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the address was updated." } } }, "OrderChange": { "type": "object", "description": "The order change's details.", "x-schemaName": "OrderChange", "required": [ "id", "version", "order_id", "return_id", "exchange_id", "claim_id", "order", "return_order", "exchange", "claim", "actions", "status", "requested_by", "requested_at", "confirmed_by", "confirmed_at", "declined_by", "declined_reason", "metadata", "declined_at", "canceled_by", "canceled_at", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The order change's ID." }, "version": { "type": "number", "title": "version", "description": "The order change's version. This will be the order's version when the change is applied." }, "change_type": { "type": "string", "description": "The order change's type.", "enum": [ "return", "exchange", "claim", "edit" ] }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this change applies on." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated return." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the associated exchange." }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the associated claim." }, "order": { "type": "object" }, "return_order": { "type": "object" }, "exchange": { "$ref": "#/components/schemas/OrderExchange" }, "claim": { "$ref": "#/components/schemas/OrderClaim" }, "actions": { "type": "array", "description": "The order change's actions.", "items": { "$ref": "#/components/schemas/OrderChangeAction" } }, "status": { "type": "string", "description": "The order change's status.", "enum": [ "canceled", "requested", "pending", "confirmed", "declined" ] }, "requested_by": { "type": "string", "title": "requested_by", "description": "The ID of the user that requested the change." }, "requested_at": { "type": "string", "title": "requested_at", "description": "The date the order change was requested.", "format": "date-time" }, "confirmed_by": { "type": "string", "title": "confirmed_by", "description": "The ID of the user that confirmed the order change." }, "confirmed_at": { "type": "string", "title": "confirmed_at", "description": "The date the order change was confirmed.", "format": "date-time" }, "declined_by": { "type": "string", "title": "declined_by", "description": "The ID of the user that declined the order change." }, "declined_reason": { "type": "string", "title": "declined_reason", "description": "The reason the order change was declined." }, "metadata": { "type": "object", "description": "The order change's metadata, can hold custom key-value pairs." }, "declined_at": { "type": "string", "title": "declined_at", "description": "The date the order change was declined.", "format": "date-time" }, "canceled_by": { "type": "string", "title": "canceled_by", "description": "The ID of the user that canceled the order change." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the order change was canceled.", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the order change was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the order change was updated." } } }, "OrderChangeAction": { "type": "object", "description": "The order change action's details.", "x-schemaName": "OrderChangeAction", "required": [ "id", "order_change_id", "order_change", "order_id", "return_id", "claim_id", "exchange_id", "order", "reference", "reference_id", "action", "details", "internal_note", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The action's ID." }, "order_change_id": { "type": "string", "title": "order_change_id", "description": "The ID of the order change that the action belongs to." }, "order_change": { "type": "object" }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the associated change is for." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated return." }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the associated claim." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the associated exchange." }, "order": { "$ref": "#/components/schemas/Order" }, "reference": { "type": "string", "title": "reference", "description": "The name of the table this action applies on.", "enum": [ "claim", "exchange", "return", "order_shipping_method" ] }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of the record in the referenced table." }, "action": { "type": "string", "description": "The applied action.", "enum": [ "CANCEL_RETURN_ITEM", "FULFILL_ITEM", "DELIVER_ITEM", "CANCEL_ITEM_FULFILLMENT", "ITEM_ADD", "ITEM_REMOVE", "ITEM_UPDATE", "RECEIVE_DAMAGED_RETURN_ITEM", "RECEIVE_RETURN_ITEM", "RETURN_ITEM", "SHIPPING_ADD", "SHIPPING_REMOVE", "SHIP_ITEM", "WRITE_OFF_ITEM", "REINSTATE_ITEM" ] }, "details": { "type": "object", "description": "The action's details.", "example": { "reference_id": 123, "quantity": 1 } }, "internal_note": { "type": "string", "title": "internal_note", "description": "A note that's viewed only by admin users." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the action was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the action was updated." } } }, "OrderClaim": { "type": "object", "description": "The order change's claim.", "x-schemaName": "OrderClaim", "required": [ "id", "type", "order_id", "order_version", "display_id", "claim_items", "additional_items", "metadata" ], "properties": { "id": { "type": "string", "title": "id", "description": "The claim's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order associated with the claim." }, "claim_items": { "type": "array", "description": "The order items targetted by the claim.", "items": { "$ref": "#/components/schemas/BaseClaimItem" } }, "additional_items": { "type": "array", "description": "The outbound or new items of the claim.", "items": { "$ref": "#/components/schemas/BaseClaimItem" } }, "return": { "type": "object" }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated return." }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether the customer should be notified about changes in the claim." }, "refund_amount": { "type": "number", "title": "refund_amount", "description": "The amount to be refunded." }, "display_id": { "type": "number", "title": "display_id", "description": "The claim's display ID." }, "shipping_methods": { "type": "array", "description": "The claim's shipping methods.", "items": { "$ref": "#/components/schemas/OrderShippingMethod" } }, "transactions": { "type": "array", "description": "The claim's transactions.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions", "description": "Learn more about transactions of orders and associated models." }, "items": { "$ref": "#/components/schemas/OrderTransaction" } }, "metadata": { "type": "object", "description": "The claim's metadata, used to store custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The claim's creation date." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The claim's update date." }, "type": { "type": "string", "description": "The claim's type.", "enum": [ "replace", "refund" ] }, "order": { "$ref": "#/components/schemas/Order" }, "order_version": { "type": "number", "title": "order_version", "description": "The claim's order version." }, "raw_refund_amount": { "oneOf": [ { "type": "string", "title": "raw_refund_amount", "description": "The claim's raw refund amount." }, { "type": "number", "title": "raw_refund_amount", "description": "The claim's raw refund amount." }, { "type": "string", "title": "raw_refund_amount", "description": "The claim's raw refund amount." }, { "type": "number", "title": "raw_refund_amount", "description": "The claim's raw refund amount." } ] }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the claim." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the claim was deleted." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the claim was canceled.", "format": "date-time" } } }, "OrderCreditLine": { "type": "object", "description": "The credit line's details.", "x-schemaName": "OrderCreditLine", "required": [ "id", "order_id", "order", "amount", "reference", "reference_id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The credit line's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "order": { "type": "object" }, "reference": { "type": "string", "title": "reference", "description": "The table that this credit line references. For example, `payment_collection`." }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of the record in the referenced table. For example, `paycol_123`." }, "metadata": { "type": "object", "description": "The credit line's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the credit line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the credit line was updated." }, "amount": { "type": "number", "title": "amount", "description": "The credit line's amount." } } }, "OrderExchange": { "type": "object", "description": "The order change's exchange.", "x-schemaName": "OrderExchange", "required": [ "id", "order_id", "order_version", "display_id", "additional_items", "metadata" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the exchange is created for." }, "additional_items": { "type": "array", "description": "The new items (outbound) sent by the exchange.", "items": { "$ref": "#/components/schemas/BaseExchangeItem" } }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to send the customer notifications when the exchange is updated." }, "difference_due": { "type": "number", "title": "difference_due", "description": "The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer." }, "return": { "$ref": "#/components/schemas/Return" }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the associated exchange." }, "id": { "type": "string", "title": "id", "description": "The exchange's ID." }, "display_id": { "type": "number", "title": "display_id", "description": "The exchange's display ID." }, "shipping_methods": { "type": "array", "description": "The shipping methods used to send the new (outbound) items.", "items": { "$ref": "#/components/schemas/OrderShippingMethod" } }, "transactions": { "type": "array", "description": "The exchange's transactions.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions" }, "items": { "$ref": "#/components/schemas/OrderTransaction" } }, "metadata": { "type": "object", "description": "The exchange's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date that the exchange was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date that the exchange was updated." }, "order": { "$ref": "#/components/schemas/Order" }, "order_version": { "type": "number", "title": "order_version", "description": "The version of the order when the exchange is applied." }, "raw_difference_due": { "oneOf": [ { "type": "string", "title": "raw_difference_due", "description": "The exchange's raw difference due." }, { "type": "number", "title": "raw_difference_due", "description": "The exchange's raw difference due." }, { "type": "string", "title": "raw_difference_due", "description": "The exchange's raw difference due." }, { "type": "number", "title": "raw_difference_due", "description": "The exchange's raw difference due." } ] }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether variants that are out of stock can be added to the exchange as outbound items." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the exchange." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the exchange was deleted." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the exchange was canceled.", "format": "date-time" } } }, "OrderItem": { "type": "object", "description": "The order item's detail.", "x-schemaName": "OrderItem", "required": [ "id", "item_id", "item", "quantity", "fulfilled_quantity", "delivered_quantity", "shipped_quantity", "return_requested_quantity", "return_received_quantity", "return_dismissed_quantity", "written_off_quantity", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the associated line item." }, "item": { "type": "object" }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "fulfilled_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The item's fulfilled quantity." }, "delivered_quantity": { "type": "number", "title": "delivered_quantity", "description": "The item's delivered quantity." }, "shipped_quantity": { "type": "number", "title": "shipped_quantity", "description": "The item's shipped quantity." }, "return_requested_quantity": { "type": "number", "title": "return_requested_quantity", "description": "The item's quantity that's requested to be returned." }, "return_received_quantity": { "type": "number", "title": "return_received_quantity", "description": "The item's quantity that's received through a return." }, "return_dismissed_quantity": { "type": "number", "title": "return_dismissed_quantity", "description": "The item's quantity that's returned but dismissed because it's damaged." }, "written_off_quantity": { "type": "number", "title": "written_off_quantity", "description": "The item's quantity that's removed due to an order change." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." } } }, "OrderLineItem": { "type": "object", "description": "The order line item's details.", "x-schemaName": "OrderLineItem", "required": [ "id", "title", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "detail", "created_at", "updated_at", "original_total", "original_subtotal", "original_tax_total", "item_total", "item_subtotal", "item_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "refundable_total", "refundable_total_per_unit" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail URL." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated variant." }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the associated product." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The ID of the associated product's type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The ID of the associated product's collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant SKU." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The associated variant's values for the associated product's options.", "example": { "Color": "Red" } }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the item requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "Whether the item is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the item's price includes taxes." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's price for a single quantity." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "$ref": "#/components/schemas/OrderLineItemTaxLine" } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "$ref": "#/components/schemas/OrderLineItemAdjustment" } }, "detail": { "$ref": "#/components/schemas/OrderItem" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's total including taxes and promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes of the item excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's total for a single quantity, including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's total for a single quantity, excluding taxes and including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The total taxes of a single quantity of the item, including promotions." }, "total": { "type": "number", "title": "total", "description": "The item's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The total taxes of the item, including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The item's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The total taxes on the discounted amount." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The total amount of the item that can be refunded." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The total amount that can be refunded of a single quantity of the item." }, "product_type_id": { "type": "string", "title": "product_type_id", "description": "The ID of the associated product's type." } } }, "OrderLineItemAdjustment": { "type": "object", "description": "The line item adjustment's details.", "x-schemaName": "OrderLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object" }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item this adjustment is for." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the promotion applied by this adjustment." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } } }, "OrderLineItemTaxLine": { "type": "object", "description": "The line item tax line's details.", "x-schemaName": "OrderLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object" }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the line item that the tax line belongs to." }, "total": { "type": "number", "title": "total", "description": "The item's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's total excluding taxes, including promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the applied tax rate." }, "code": { "type": "string", "title": "code", "description": "The code that the tax rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider used to calculate the tax lines." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } } }, "OrderReturnItem": { "type": "object", "description": "The item's items.", "x-schemaName": "OrderReturnItem", "required": [ "id", "return_id", "order_id", "item_id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return item's ID." }, "quantity": { "type": "number", "title": "quantity", "description": "The return item's quantity." }, "received_quantity": { "type": "number", "title": "received_quantity", "description": "The received quantity of the item. This quantity is added to the stocked inventory quantity of the item." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the return reason associated with the item." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the associated order item." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the return this return item belongs to." }, "metadata": { "type": "object", "description": "The return item's metadata, can hold custom key-value pairs." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the return belongs to." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." }, "damaged_quantity": { "type": "number", "title": "damaged_quantity", "description": "The item's damaged quantity." } } }, "OrderShippingMethod": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "OrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "created_at", "updated_at", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order that the shipping method belongs to." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the shipping method's amount includes taxes." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this method was created from." }, "data": { "type": "object", "description": "The shipping method's data, useful for the fulfillment provider handling the fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts#data-property" } }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "$ref": "#/components/schemas/OrderShippingMethodTaxLine" } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "$ref": "#/components/schemas/OrderShippingMethodAdjustment" } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method was updated." }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's subtotal excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes of the shipping method excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The total taxes of the shipping method, including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The shipping method's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The total taxes of the discount amount." } } }, "OrderShippingMethodAdjustment": { "type": "object", "description": "The shipping method adjustment's details.", "x-schemaName": "OrderShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of the shipping method this adjustment is for." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the promotion this adjustment applies." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } } }, "OrderShippingMethodTaxLine": { "type": "object", "description": "The shipping method tax line's details.", "x-schemaName": "OrderShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of the shipping method that this tax line is for." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the applied tax rate." }, "code": { "type": "string", "title": "code", "description": "The code that the tax rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The rate to charge." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider used to calculate taxes." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } } }, "OrderTransaction": { "type": "object", "description": "The transaction's details.", "x-schemaName": "OrderTransaction", "required": [ "id", "order_id", "version", "order", "amount", "currency_code", "reference", "reference_id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The transaction's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this transaction belongs to." }, "amount": { "type": "number", "title": "amount", "description": "The transaction's amount." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The transaction's currency code.", "example": "usd" }, "reference": { "type": "string", "title": "reference", "description": "The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`.", "enum": [ "capture", "refund" ] }, "reference_id": { "type": "string", "title": "reference_id", "description": "The ID of the referenced record in the referenced table." }, "metadata": { "type": "object", "description": "The transaction's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date that the transaction was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date that the transaction was updated." }, "order": { "type": "object" }, "version": { "type": "number", "title": "version", "description": "The order version that the transaction belongs to." } } }, "RefundReason": { "type": "object", "description": "The refund reason's details.", "x-schemaName": "RefundReason", "required": [ "id", "label", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The refund reason's ID." }, "label": { "type": "string", "title": "label", "description": "The refund reason's label." }, "description": { "type": "string", "title": "description", "description": "The refund reason's description." }, "metadata": { "type": "object", "description": "The refund reason's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the refund reason was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the refund reason was updated." } } }, "RefundReasonResponse": { "type": "object", "description": "The refund reason's details.", "x-schemaName": "RefundReasonResponse", "required": [ "refund_reason" ], "properties": { "refund_reason": { "$ref": "#/components/schemas/AdminRefundReason" } } }, "Return": { "type": "object", "description": "The return's details.", "x-schemaName": "Return", "required": [ "id", "status", "order_id", "items", "display_id", "metadata" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return's ID." }, "status": { "type": "string", "description": "The return's status.", "enum": [ "canceled", "requested", "received", "partially_received" ] }, "refund_amount": { "type": "number", "title": "refund_amount", "description": "The amount refunded by this return." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the associated order." }, "items": { "type": "array", "description": "The return's items.", "items": { "$ref": "#/components/schemas/OrderReturnItem" } }, "shipping_methods": { "type": "array", "description": "The return's shipping methods.", "items": { "$ref": "#/components/schemas/OrderShippingMethod" } }, "transactions": { "type": "array", "description": "The return's transactions.", "items": { "$ref": "#/components/schemas/OrderTransaction" } }, "metadata": { "type": "object", "description": "The return's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the return was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the return was updated." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the return was canceled.", "format": "date-time" }, "raw_refund_amount": { "oneOf": [ { "type": "string", "title": "raw_refund_amount", "description": "The return order's raw refund amount." }, { "type": "number", "title": "raw_refund_amount", "description": "The return order's raw refund amount." }, { "type": "string", "title": "raw_refund_amount", "description": "The return order's raw refund amount." }, { "type": "number", "title": "raw_refund_amount", "description": "The return order's raw refund amount." } ] }, "order": { "$ref": "#/components/schemas/Order" }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the exchange this return belongs to, if any." }, "exchange": { "type": "object" }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the claim this return belongs to, if any." }, "claim": { "$ref": "#/components/schemas/OrderClaim" }, "display_id": { "type": "number", "title": "display_id", "description": "The return order's display ID." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the stock location the items are returned to." }, "no_notification": { "type": "boolean", "title": "no_notification", "description": "Whether to notify the customer about changes in the return." }, "created_by": { "type": "string", "title": "created_by", "description": "The ID of the user that created the return." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the return was deleted." }, "requested_at": { "type": "string", "title": "requested_at", "description": "The date the return was requested.", "format": "date-time" }, "received_at": { "type": "string", "title": "received_at", "description": "The date the return was received.", "format": "date-time" } } }, "StoreAcceptOrderTransfer": { "type": "object", "description": "The details of accepting the order transfer.", "x-schemaName": "StoreAcceptOrderTransfer", "required": [ "token" ], "properties": { "token": { "type": "string", "title": "token", "description": "The order transfer's token issued when the transfer was requested." } } }, "StoreAddCartLineItem": { "type": "object", "description": "The details of the line item to add.", "x-schemaName": "StoreAddCartLineItem", "required": [ "variant_id", "quantity" ], "properties": { "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the product variant to add to the cart." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." } } }, "StoreCalculatedPrice": { "type": "object", "description": "The shipping option's calculated price.", "x-schemaName": "StoreCalculatedPrice", "required": [ "id", "calculated_amount", "original_amount", "original_amount_with_tax", "original_amount_without_tax", "currency_code" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the price set from which the price was selected." }, "is_calculated_price_price_list": { "type": "boolean", "title": "is_calculated_price_price_list", "description": "Whether the calculated price belongs to a price list." }, "is_calculated_price_tax_inclusive": { "type": "boolean", "title": "is_calculated_price_tax_inclusive", "description": "Whether the calculated price is tax inclusive.", "externalDocs": { "url": "https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing" } }, "calculated_amount": { "type": "number", "title": "calculated_amount", "description": "The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer." }, "calculated_amount_with_tax": { "type": "number", "title": "calculated_amount_with_tax", "description": "The `calculated_amount` with taxes applied." }, "calculated_amount_without_tax": { "type": "number", "title": "calculated_amount_without_tax", "description": "The `calculated_amount` without taxes applied." }, "is_original_price_price_list": { "type": "boolean", "title": "is_original_price_price_list", "description": "Whether the original price belongs to a price list." }, "is_original_price_tax_inclusive": { "type": "boolean", "title": "is_original_price_tax_inclusive", "description": "Whether the original price is tax inclusive.", "externalDocs": { "url": "https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing" } }, "original_amount": { "type": "number", "title": "original_amount", "description": "The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The currency code of the calculated price, or `null` if there isn't a calculated price." }, "calculated_price": { "type": "object", "description": "The calculated price's details.", "required": [ "id", "price_list_id", "price_list_type", "min_quantity", "max_quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the price." }, "price_list_id": { "type": "string", "title": "price_list_id", "description": "The ID of the associated price list." }, "price_list_type": { "type": "string", "title": "price_list_type", "description": "The price list's type. For example, `sale` or `override`." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity required in the cart for the price to apply." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity required in the cart for the price to apply." } } }, "original_price": { "type": "object", "description": "The origin price's details.", "required": [ "id", "price_list_id", "price_list_type", "min_quantity", "max_quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of the price." }, "price_list_id": { "type": "string", "title": "price_list_id", "description": "The ID of the associated price list." }, "price_list_type": { "type": "string", "title": "price_list_type", "description": "The price list's type. For example, `sale` or `override`." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity required in the cart for the price to apply." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity required in the cart for the price to apply." } } }, "original_amount_with_tax": { "type": "number", "title": "original_amount_with_tax", "description": "The original amount with taxes applied." }, "original_amount_without_tax": { "type": "number", "title": "original_amount_without_tax", "description": "The original amount without taxes." } } }, "StoreCart": { "type": "object", "description": "The cart's details.", "x-schemaName": "StoreCart", "required": [ "promotions", "currency_code", "id", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The cart's ID." }, "region": { "$ref": "#/components/schemas/StoreRegion" }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the region the cart belongs to." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer the cart belongs to." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the cart's sales channel. Only products that belong to the same sales channel can be added to the cart. The created order will be associated with the same sales channel." }, "email": { "type": "string", "title": "email", "description": "The email of the customer the cart belongs to.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The cart's currency code.", "example": "usd" }, "shipping_address": { "$ref": "#/components/schemas/StoreCartAddress" }, "billing_address": { "$ref": "#/components/schemas/StoreCartAddress" }, "items": { "type": "array", "description": "The cart's items.", "items": { "$ref": "#/components/schemas/StoreCartLineItem" } }, "shipping_methods": { "type": "array", "description": "The cart's shipping methods.", "items": { "$ref": "#/components/schemas/StoreCartShippingMethod" } }, "payment_collection": { "$ref": "#/components/schemas/StorePaymentCollection" }, "metadata": { "type": "object", "description": "The cart's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the cart was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the cart was updated." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The cart items' total including taxes, excluding promotions." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The cart items' total excluding taxes, including promotions." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The cart items' tax total excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The cart items' total including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The cart items' total excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The cart items' tax total including promotions." }, "original_total": { "type": "number", "title": "original_total", "description": "The cart's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The cart's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The cart's tax total excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The cart's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The cart's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The cart's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The cart's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The tax total applied on the discounted amount." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The total gift card amount applied on the cart." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The total taxes applied on the gift card amount." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The cart's shipping total including taxes and promotions." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The cart's shipping total excluding taxes, including promotions." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The total taxes applied on the cart's shipping amount." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The cart's shipping total including taxes, excluding promotions." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The cart's shipping total excluding taxes, including promotions." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The total taxes applied on the cart's shipping amount." }, "promotions": { "type": "array", "description": "The cart's promotions.", "items": { "$ref": "#/components/schemas/StoreCartPromotion" } } } }, "StoreCartAddPromotion": { "type": "object", "description": "The promotion's details.", "required": [ "promo_codes" ], "properties": { "promo_codes": { "type": "array", "description": "Promotion codes to add to the cart.", "items": { "type": "string", "title": "promo_codes", "description": "A promotion code." } } }, "x-schemaName": "StoreCartAddPromotion" }, "StoreCartAddress": { "type": "object", "description": "The address's details.", "x-schemaName": "StoreCartAddress", "required": [ "id", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer the address belongs to." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "title": "created_at", "description": "The date the address was created.", "format": "date-time" }, "updated_at": { "type": "string", "title": "updated_at", "description": "The date the address was updated.", "format": "date-time" } } }, "StoreCartLineItem": { "type": "object", "description": "The item's details.", "x-schemaName": "StoreCartLineItem", "required": [ "cart", "title", "id", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "cart_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail URL." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "product": { "$ref": "#/components/schemas/StoreProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the associated product." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The ID of the associated product's type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The ID of the associated product's collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant": { "$ref": "#/components/schemas/StoreProductVariant" }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated product variant." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant SKU." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The associated variant's value for the product's options.", "example": { "Color": "Red" } }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the item requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "Whether the item is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the item's price includes taxes." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The price of a single quantity of the item." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's details.", "x-schemaName": "BaseLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "title": "item", "description": "The details of the item that the tax line belongs to." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the line item this tax line belongs to." }, "total": { "type": "number", "title": "total", "description": "The item's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's total excluding taxes, including promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the applied tax rate." }, "code": { "type": "string", "title": "code", "description": "The code that the tax rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The charged rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider used to calculate the tax line." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } } }, { "type": "object", "description": "The tax line's details.", "required": [ "item" ], "properties": { "item": { "type": "object", "title": "item", "description": "The details of the item that the tax line belongs to." } } } ], "description": "The tax line's details" } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's details.", "x-schemaName": "BaseLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "cart_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "title": "item", "description": "The details of the item that the adjustment belongs to." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item that the adjustment belongs to." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the associated cart." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the applied promotion." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } } }, { "type": "object", "description": "The adjustment's details.", "required": [ "item" ], "properties": { "item": { "type": "object", "title": "item", "description": "The details of the item that the adjustment belongs to." } } } ], "description": "The adjustment's details." } }, "cart": { "type": "object" }, "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the cart that the line item belongs to." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "title": "created_at", "description": "The date the item was created.", "format": "date-time" }, "updated_at": { "type": "string", "title": "updated_at", "description": "The date the item was updated.", "format": "date-time" }, "deleted_at": { "type": "string", "title": "deleted_at", "description": "The date the item was deleted.", "format": "date-time" }, "original_total": { "type": "number", "title": "original_total", "description": "The item's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes of the item excluding promotions." }, "item_total": { "type": "number", "title": "original_tax_total", "description": "The item's total including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's total excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The total taxes of the item including promotions." }, "total": { "type": "number", "title": "total", "description": "The item's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The total taxes of the item including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discount of the item." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The total taxes applied on the discounted amount." } } }, "StoreCartPromotion": { "type": "object", "description": "The promotion's promotions.", "x-schemaName": "StoreCartPromotion", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The promotion's ID." }, "code": { "type": "string", "title": "code", "description": "The promotion's code." }, "is_automatic": { "type": "boolean", "title": "is_automatic", "description": "The promotion's is automatic." }, "application_method": { "type": "object", "description": "The promotion's application method.", "required": [ "value", "type", "currency_code" ], "properties": { "value": { "type": "string", "title": "value", "description": "The application method's value." }, "type": { "type": "string", "description": "The application method's type.", "enum": [ "fixed", "percentage" ] }, "currency_code": { "type": "string", "title": "currency_code", "description": "The application method's currency code." } } } } }, "StoreCartResponse": { "type": "object", "description": "The cart's details.", "x-schemaName": "StoreCartResponse", "required": [ "cart" ], "properties": { "cart": { "$ref": "#/components/schemas/StoreCart" } } }, "StoreCartShippingMethod": { "type": "object", "description": "A cart's shipping method.", "x-schemaName": "StoreCartShippingMethod", "required": [ "id", "cart_id", "name", "amount", "is_tax_inclusive", "created_at", "updated_at", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the cart this shipping method belongs to." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the shipping method's amount is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this method was created from." }, "data": { "type": "object", "description": "The shipping method's data, useful for fulfillment handling by third-party services.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/cart/concepts#data-property" } }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's details", "x-schemaName": "BaseShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "title": "shipping_method", "description": "The details of the method that the tax line belongs to." }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The ID of the shipping method this tax line belongs to." }, "total": { "type": "number", "title": "total", "description": "The method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The method's total excluding taxes, including promotions." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The ID of the applied tax rate." }, "code": { "type": "string", "title": "code", "description": "The code that the tax rate is identified by." }, "rate": { "type": "number", "title": "rate", "description": "The charged rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the tax provider used to calculate the tax line." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tax line was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tax line was updated." } } }, { "type": "object", "description": "The tax line's details.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "title": "shipping_method", "description": "The details of the method that the tax line belongs to." } } } ], "description": "The tax line's details." } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments, such as applied promotions.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's details.", "x-schemaName": "BaseShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "cart_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "title": "shipping_method", "description": "The details of the method that the adjustment belongs to." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the associated cart." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The ID of the applied promotion." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider ID." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the adjustment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the adjustment was updated." } } }, { "type": "object", "description": "The adjustment's details.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "title": "shipping_method", "description": "The details of the method that the adjustment belongs to." } } } ], "description": "The adjustment's details." } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method was updated." }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes applied on the shipping method's amount including promotions." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total amount including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total amount excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The total taxes applied on the shipping method's amount including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total amount discounted." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The taxes applied on the discounted amount." } } }, "StoreCartShippingOption": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "StoreCartShippingOption", "required": [ "id", "name", "price_type", "service_zone_id", "shipping_profile_id", "provider_id", "data", "type", "provider", "amount", "prices", "calculated_price", "insufficient_inventory" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping option's ID." }, "name": { "type": "string", "title": "name", "description": "The shipping option's name." }, "price_type": { "type": "string", "description": "The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.", "enum": [ "flat", "calculated" ] }, "service_zone_id": { "type": "string", "title": "service_zone_id", "description": "The ID of the service zone the shipping option belongs to." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the fulfillment provider handling this option." }, "provider": { "type": "object", "description": "The fulfillment provider's details.", "required": [ "id", "is_enabled" ], "properties": { "id": { "type": "string", "title": "id", "description": "The provider's ID." }, "is_enabled": { "type": "boolean", "title": "is_enabled", "description": "Whether the provider is enabled." } } }, "type": { "type": "object", "description": "The shipping option type's details.", "required": [ "id", "label", "description", "code" ], "properties": { "id": { "type": "string", "title": "id", "description": "The type's ID." }, "label": { "type": "string", "title": "label", "description": "The type's label." }, "description": { "type": "string", "title": "description", "description": "The type's description." }, "code": { "type": "string", "title": "code", "description": "The type's code." } } }, "shipping_profile_id": { "type": "string", "title": "shipping_profile_id", "description": "The ID of the associated shipping profile." }, "amount": { "type": "number", "title": "amount", "description": "The shipping option's amount." }, "data": { "type": "object", "description": "The shipping option's data, useful for the provider handling fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "prices": { "type": "array", "description": "The shipping option's prices.", "items": { "$ref": "#/components/schemas/StorePrice" } }, "calculated_price": { "$ref": "#/components/schemas/StoreCalculatedPrice" }, "insufficient_inventory": { "type": "boolean", "title": "insufficient_inventory", "description": "Whether the shipping option's location doesn't have sufficient quantity for any of the cart's items." } } }, "StoreCollection": { "type": "object", "description": "The collection's details.", "x-schemaName": "StoreCollection", "required": [ "title", "id", "metadata", "created_at", "updated_at", "handle", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The collection's ID." }, "title": { "type": "string", "title": "title", "description": "The collection's title." }, "handle": { "type": "string", "title": "handle", "description": "The collection's handle." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the collection was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the collection was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the collection was deleted." }, "products": { "type": "array", "description": "The collection's products.", "items": { "type": "object" } }, "metadata": { "type": "object", "description": "The collection's metadata, can hold custom key-value pairs." } } }, "StoreCollectionResponse": { "type": "object", "description": "The collection's details.", "x-schemaName": "StoreCollectionResponse", "required": [ "collection" ], "properties": { "collection": { "$ref": "#/components/schemas/StoreCollection" } } }, "StoreCreateCart": { "type": "object", "description": "The details of the cart to be created.", "x-schemaName": "StoreCreateCart", "properties": { "region_id": { "type": "string", "title": "region_id", "description": "The ID of the cart's region. This affects the prices and currency of the cart." }, "shipping_address": { "$ref": "#/components/schemas/StoreCartAddress" }, "billing_address": { "$ref": "#/components/schemas/StoreCartAddress" }, "email": { "type": "string", "title": "email", "description": "The email of the cart's customer.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The cart's currency code. If not provided, the region's currency is used. This affects prices in the cart, as well.", "example": "usd" }, "items": { "type": "array", "description": "The cart's items.", "items": { "$ref": "#/components/schemas/StoreCartLineItem" } }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the sales channel that cart is created in. Only products available in that sales channel can be added to the cart. If not provided, the store's default sales channel is associated with the cart instead." }, "metadata": { "type": "object", "description": "The cart's metadata, can hold custom key-value pairs." } } }, "StoreCreateCustomer": { "type": "object", "description": "The details of the customer to create.", "x-schemaName": "StoreCreateCustomer", "required": [ "email" ], "properties": { "email": { "type": "string", "title": "email", "description": "The customer's email.", "format": "email" }, "company_name": { "type": "string", "title": "company_name", "description": "The customer's company name." }, "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "phone": { "type": "string", "title": "phone", "description": "The customer's phone." }, "metadata": { "type": "object", "description": "The customer's metadata, can hold custom key-value pairs." } } }, "StoreCreatePaymentCollection": { "type": "object", "description": "The details of the payment collection to create.", "x-schemaName": "StoreCreatePaymentCollection", "required": [ "cart_id" ], "properties": { "cart_id": { "type": "string", "title": "cart_id", "description": "The ID of the cart this payment collection is for." } } }, "StoreCreateReturn": { "type": "object", "description": "The details of the return to create.", "x-schemaName": "StoreCreateReturn", "required": [ "order_id", "items", "return_shipping" ], "properties": { "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this return is created for." }, "items": { "type": "array", "description": "The return's items.", "items": { "$ref": "#/components/schemas/StoreCreateReturnItem" } }, "return_shipping": { "$ref": "#/components/schemas/StoreCreateReturnShipping" }, "note": { "type": "string", "title": "note", "description": "A note with more details about the return." }, "receive_now": { "type": "boolean", "title": "receive_now", "description": "Whether to mark the return as received." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location that items are returned to." } } }, "StoreCreateReturnItem": { "type": "object", "description": "The details of the line item to create.", "x-schemaName": "StoreCreateReturnItem", "required": [ "id", "quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the associated return reason." }, "note": { "type": "string", "title": "note", "description": "A note with more details about the returned item." } } }, "StoreCreateReturnShipping": { "type": "object", "description": "The return's shipping details.", "x-schemaName": "StoreCreateReturnShipping", "required": [ "option_id" ], "properties": { "option_id": { "type": "string", "title": "option_id", "description": "The ID of the shipping option to use." }, "price": { "type": "number", "title": "price", "description": "The shipping's price." } } }, "StoreCurrency": { "type": "object", "description": "The currency's details.", "x-schemaName": "StoreCurrency", "required": [ "code", "symbol", "symbol_native", "name", "decimal_digits", "rounding", "created_at", "updated_at", "deleted_at" ], "properties": { "code": { "type": "string", "title": "code", "description": "The currency's code.", "example": "usd" }, "symbol": { "type": "string", "title": "symbol", "description": "The currency's symbol." }, "symbol_native": { "type": "string", "title": "symbol_native", "description": "The currency's symbol native." }, "name": { "type": "string", "title": "name", "description": "The currency's name." }, "decimal_digits": { "type": "number", "title": "decimal_digits", "description": "The currency's decimal digits." }, "rounding": { "type": "number", "title": "rounding", "description": "The currency's rounding." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the currency was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the currency was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the currency was deleted." } } }, "StoreCurrencyListResponse": { "type": "object", "description": "The paginated list of currencies.", "x-schemaName": "StoreCurrencyListResponse", "required": [ "limit", "offset", "count", "currencies" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total count of items." }, "currencies": { "type": "array", "description": "The list of currencies.", "items": { "$ref": "#/components/schemas/StoreCurrency" } } } }, "StoreCurrencyResponse": { "type": "object", "description": "The currency's details.", "x-schemaName": "StoreCurrencyResponse", "required": [ "currency" ], "properties": { "currency": { "$ref": "#/components/schemas/StoreCurrency" } } }, "StoreCustomer": { "type": "object", "description": "The customer's details.", "x-schemaName": "StoreCustomer", "required": [ "addresses", "id", "email", "company_name", "first_name", "last_name", "default_billing_address_id", "default_shipping_address_id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The customer's ID." }, "email": { "type": "string", "title": "email", "description": "The customer's email.", "format": "email" }, "default_billing_address_id": { "type": "string", "title": "default_billing_address_id", "description": "The ID of the address used for billing by default." }, "default_shipping_address_id": { "type": "string", "title": "default_shipping_address_id", "description": "The ID of the address used for shipping by default." }, "company_name": { "type": "string", "title": "company_name", "description": "The customer's company name." }, "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "addresses": { "type": "array", "description": "The customer's addresses.", "items": { "$ref": "#/components/schemas/StoreCustomerAddress" } }, "phone": { "type": "string", "title": "phone", "description": "The customer's phone." }, "metadata": { "type": "object", "description": "The customer's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the customer was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the customer was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the customer was deleted." } } }, "StoreCustomerAddress": { "type": "object", "description": "The customer address's details", "x-schemaName": "StoreCustomerAddress", "required": [ "id", "address_name", "is_default_shipping", "is_default_billing", "customer_id", "company", "first_name", "last_name", "address_1", "address_2", "city", "country_code", "province", "postal_code", "phone", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "address_name": { "type": "string", "title": "address_name", "description": "The address's name." }, "is_default_shipping": { "type": "boolean", "title": "is_default_shipping", "description": "Whether the address is used for shipping by default." }, "is_default_billing": { "type": "boolean", "title": "is_default_billing", "description": "Whether the address is used for billing by default." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer the address belongs to." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "usd" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the address was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the address was updated." } } }, "StoreCustomerAddressListResponse": { "type": "object", "description": "The paginated list of customer addresses.", "x-schemaName": "StoreCustomerAddressListResponse", "required": [ "limit", "offset", "count", "addresses" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "addresses": { "type": "array", "description": "The list of addresses.", "items": { "$ref": "#/components/schemas/StoreCustomerAddress" } } } }, "StoreCustomerAddressResponse": { "type": "object", "description": "The address's details.", "x-schemaName": "StoreCustomerAddressResponse", "required": [ "address" ], "properties": { "address": { "$ref": "#/components/schemas/StoreCustomerAddress" } } }, "StoreCustomerResponse": { "type": "object", "description": "The customer's details.", "x-schemaName": "StoreCustomerResponse", "required": [ "customer" ], "properties": { "customer": { "$ref": "#/components/schemas/StoreCustomer" } } }, "StoreDeclineOrderTransferRequest": { "type": "object", "description": "The details of declining the order transfer request.", "x-schemaName": "StoreDeclineOrderTransferRequest", "required": [ "token" ], "properties": { "token": { "type": "string", "title": "token", "description": "The order transfer's token issued when the transfer was requested." } } }, "StoreInitializePaymentSession": { "type": "object", "description": "The payment session's details.", "required": [ "provider_id" ], "properties": { "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the payment provider the customer chose.", "example": "pp_stripe_stripe" }, "data": { "type": "object", "description": "Any data necessary for the payment provider to process the payment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment-session#data-property", "description": "Learn more about the payment session's data property" } } }, "x-schemaName": "StoreInitializePaymentSession" }, "StoreOrder": { "type": "object", "description": "The order's details.", "x-schemaName": "StoreOrder", "required": [ "items", "shipping_methods", "status", "currency_code", "id", "region_id", "customer_id", "sales_channel_id", "email", "payment_status", "fulfillment_status", "summary", "created_at", "updated_at", "original_item_total", "original_item_subtotal", "original_item_tax_total", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "gift_card_total", "gift_card_tax_total", "shipping_total", "shipping_subtotal", "shipping_tax_total", "original_shipping_total", "original_shipping_subtotal", "original_shipping_tax_total" ], "properties": { "id": { "type": "string", "title": "id", "description": "The order's ID." }, "region_id": { "type": "string", "title": "region_id", "description": "The ID of the associated region." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that placed the order." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the sales channel the order was placed in." }, "email": { "type": "string", "title": "email", "description": "The email of the customer that placed the order.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The order's currency code.", "example": "usd" }, "display_id": { "type": "number", "title": "display_id", "description": "The order's display ID." }, "shipping_address": { "$ref": "#/components/schemas/StoreOrderAddress" }, "billing_address": { "$ref": "#/components/schemas/StoreOrderAddress" }, "items": { "type": "array", "description": "The order's items.", "items": { "$ref": "#/components/schemas/StoreOrderLineItem" } }, "shipping_methods": { "type": "array", "description": "The order's shipping methods.", "items": { "$ref": "#/components/schemas/StoreOrderShippingMethod" } }, "payment_collections": { "type": "array", "description": "The order's payment collections.", "items": { "$ref": "#/components/schemas/StorePaymentCollection" } }, "payment_status": { "type": "string", "description": "The order's payment status.", "enum": [ "canceled", "not_paid", "awaiting", "authorized", "partially_authorized", "captured", "partially_captured", "partially_refunded", "refunded", "requires_action" ] }, "fulfillments": { "type": "array", "description": "The order's fulfillments.", "items": { "$ref": "#/components/schemas/StoreOrderFulfillment" } }, "fulfillment_status": { "type": "string", "description": "The order's fulfillment status.", "enum": [ "canceled", "not_fulfilled", "partially_fulfilled", "fulfilled", "partially_shipped", "shipped", "partially_delivered", "delivered" ] }, "summary": { "$ref": "#/components/schemas/BaseOrderSummary" }, "metadata": { "type": "object", "description": "The order's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the order was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the order was updated." }, "original_item_total": { "type": "number", "title": "original_item_total", "description": "The order items' total including taxes, excluding promotions." }, "original_item_subtotal": { "type": "number", "title": "original_item_subtotal", "description": "The order items' total excluding taxes, including promotions." }, "original_item_tax_total": { "type": "number", "title": "original_item_tax_total", "description": "The total taxes applied on the order items, excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The order items' total including taxes and promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The order items' total excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The total taxes applied on the order's items, including promotions." }, "original_total": { "type": "number", "title": "original_total", "description": "The order's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The order's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes of the order excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The order's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The order's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The tax totals of the order including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The order's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The total taxes applied on the discounted amount." }, "gift_card_total": { "type": "number", "title": "gift_card_total", "description": "The order's gift card total." }, "gift_card_tax_total": { "type": "number", "title": "gift_card_tax_total", "description": "The total taxes applied on the gift card's amount." }, "shipping_total": { "type": "number", "title": "shipping_total", "description": "The order's shipping total including taxes and promotions." }, "shipping_subtotal": { "type": "number", "title": "shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "shipping_tax_total": { "type": "number", "title": "shipping_tax_total", "description": "The total taxes of the order's shipping including promotions." }, "original_shipping_total": { "type": "number", "title": "original_shipping_total", "description": "The order's shipping total including taxes, excluding promotions." }, "original_shipping_subtotal": { "type": "number", "title": "original_shipping_subtotal", "description": "The order's shipping total excluding taxes, including promotions." }, "original_shipping_tax_total": { "type": "number", "title": "original_shipping_tax_total", "description": "The total taxes of the order's shipping excluding promotions." }, "customer": { "$ref": "#/components/schemas/StoreCustomer" }, "transactions": { "type": "array", "description": "The order's transactions.", "items": { "$ref": "#/components/schemas/BaseOrderTransaction" } }, "status": { "type": "string", "title": "status", "description": "The order's status." } } }, "StoreOrderAddress": { "type": "object", "description": "An order address", "x-schemaName": "StoreOrderAddress", "required": [ "id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The address's ID." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer this address belongs to." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "us" }, "country": { "$ref": "#/components/schemas/StoreRegionCountry" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the address was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the address was updated." } } }, "StoreOrderFulfillment": { "type": "object", "description": "The fulfillment's details.", "x-schemaName": "StoreOrderFulfillment", "required": [ "id", "location_id", "packed_at", "shipped_at", "delivered_at", "canceled_at", "requires_shipping", "data", "provider_id", "shipping_option_id", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The fulfillment's ID." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the items are fulfilled from." }, "packed_at": { "type": "string", "title": "packed_at", "description": "The date the items were packed.", "format": "date-time" }, "shipped_at": { "type": "string", "title": "shipped_at", "description": "The date the items were shipped.", "format": "date-time" }, "delivered_at": { "type": "string", "title": "delivered_at", "description": "The date the items were delivered.", "format": "date-time" }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the items were canceled.", "format": "date-time" }, "data": { "type": "object", "description": "Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the fulfillment provider used to handle the fulfillment." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "metadata": { "type": "object", "description": "The fulfillment's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the fulfillment was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the fulfillment was updated." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "The fulfillment's requires shipping." } } }, "StoreOrderLineItem": { "type": "object", "description": "The item's details.", "x-schemaName": "StoreOrderLineItem", "required": [ "detail", "title", "id", "metadata", "created_at", "updated_at", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type_id", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "refundable_total", "refundable_total_per_unit" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The URL of the item's thumbnail." }, "variant": { "$ref": "#/components/schemas/StoreProductVariant" }, "variant_id": { "type": "string", "title": "variant_id", "description": "The ID of the associated variant." }, "product": { "$ref": "#/components/schemas/StoreProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the associated product." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The ID of the collection the item's product belongs to." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant SKU." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The values of the item variant's options.", "example": { "Color": "Blue" } }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "Whether the item requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "Whether the item is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the item is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The original price of the item before a promotion or sale." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "BaseOrderLineItem", "required": [ "id", "title", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "detail", "created_at", "updated_at", "metadata", "original_total", "original_subtotal", "original_tax_total", "item_total", "item_subtotal", "item_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "refundable_total", "refundable_total_per_unit" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail." }, "variant": { "type": "object", "description": "The item's variant.", "x-schemaName": "BaseProductVariant", "required": [ "id", "title", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory", "hs_code", "origin_country", "mid_code", "material", "weight", "length", "height", "width", "options", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "sku": { "type": "string", "title": "sku", "description": "The variant's sku." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's ean." }, "upc": { "type": "string", "title": "upc", "description": "The variant's upc." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "The variant's allow backorder." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "The variant's manage inventory." }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's hs code." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's mid code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's variant rank." }, "options": { "type": "array", "description": "The variant's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "BaseProductOptionValue" } }, "product": { "type": "object", "description": "The variant's product.", "x-schemaName": "BaseProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The variant's product id." }, "calculated_price": { "type": "object", "description": "The variant's calculated price.", "x-schemaName": "BaseCalculatedPriceSet" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The variant's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The variant's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The variant's deleted at." }, "metadata": { "type": "object", "description": "The variant's metadata." } } }, "variant_id": { "type": "string", "title": "variant_id", "description": "The item's variant id." }, "product": { "type": "object", "description": "The item's product.", "x-schemaName": "BaseProduct", "required": [ "id", "title", "handle", "subtitle", "description", "is_giftcard", "status", "thumbnail", "width", "weight", "length", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "variants", "options", "images", "discountable", "external_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product's ID." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "handle": { "type": "string", "title": "handle", "description": "The product's handle." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "The product's is giftcard." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's mid code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection": { "type": "object", "description": "The product's collection.", "x-schemaName": "BaseCollection" }, "collection_id": { "type": "string", "title": "collection_id", "description": "The product's collection id." }, "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object", "description": "The category's categories.", "x-schemaName": "BaseProductCategory" } }, "type": { "type": "object", "description": "The product's type.", "x-schemaName": "BaseProduct" }, "type_id": { "type": "string", "title": "type_id", "description": "The product's type id." }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "The tag's tags.", "x-schemaName": "BaseProductTag" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "type": "object", "description": "The variant's variants.", "x-schemaName": "BaseProductVariant" } }, "options": { "type": "array", "description": "The product's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "BaseProductOption" } }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "The image's images.", "x-schemaName": "BaseProductImage" } }, "discountable": { "type": "boolean", "title": "discountable", "description": "The product's discountable." }, "external_id": { "type": "string", "title": "external_id", "description": "The product's external id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The product's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The product's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The product's deleted at." }, "metadata": { "type": "object", "description": "The product's metadata." } } }, "product_id": { "type": "string", "title": "product_id", "description": "The item's product id." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The item's product collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant sku." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The item's variant option values." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "The item's requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "The item's is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The item's is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The item's compare at unit price." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The tax line's item id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The adjustment's item id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } } }, "detail": { "type": "object", "description": "The item's detail.", "x-schemaName": "BaseOrderItemDetail", "required": [ "id", "item_id", "item", "quantity", "fulfilled_quantity", "delivered_quantity", "shipped_quantity", "return_requested_quantity", "return_received_quantity", "return_dismissed_quantity", "written_off_quantity", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "item_id": { "type": "string", "title": "item_id", "description": "The detail's item id." }, "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "BaseOrderLineItem" }, "quantity": { "type": "number", "title": "quantity", "description": "The detail's quantity." }, "fulfilled_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The detail's fulfilled quantity." }, "delivered_quantity": { "type": "number", "title": "delivered_quantity", "description": "The detail's delivered quantity." }, "shipped_quantity": { "type": "number", "title": "shipped_quantity", "description": "The detail's shipped quantity." }, "return_requested_quantity": { "type": "number", "title": "return_requested_quantity", "description": "The detail's return requested quantity." }, "return_received_quantity": { "type": "number", "title": "return_received_quantity", "description": "The detail's return received quantity." }, "return_dismissed_quantity": { "type": "number", "title": "return_dismissed_quantity", "description": "The detail's return dismissed quantity." }, "written_off_quantity": { "type": "number", "title": "written_off_quantity", "description": "The detail's written off quantity." }, "metadata": { "type": "object", "description": "The detail's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The item's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The item's updated at." }, "metadata": { "type": "object", "description": "The item's metadata." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The item's original tax total." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's item total." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's item subtotal." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The item's item tax total." }, "total": { "type": "number", "title": "total", "description": "The item's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The item's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The item's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The item's discount tax total." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The item's refundable total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The item's refundable total per unit." } } }, "item_id": { "type": "string", "title": "item_id", "description": "The tax line's item id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "StoreOrderLineItem", "required": [ "detail", "title", "id", "metadata", "created_at", "updated_at", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "refundable_total", "refundable_total_per_unit" ], "properties": { "variant": { "type": "object", "description": "The item's variant.", "x-schemaName": "StoreProductVariant", "required": [ "options", "length", "title", "id", "created_at", "updated_at", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "deleted_at", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory" ], "properties": { "options": { "type": "array", "description": "The variant's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "StoreProductOptionValue" } }, "product": { "type": "object", "description": "The variant's product.", "x-schemaName": "StoreProduct" }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "metadata": { "type": "object", "description": "The variant's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The variant's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The variant's updated at." }, "product_id": { "type": "string", "title": "product_id", "description": "The variant's product id." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's mid code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The variant's deleted at." }, "sku": { "type": "string", "title": "sku", "description": "The variant's sku." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's ean." }, "upc": { "type": "string", "title": "upc", "description": "The variant's upc." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "The variant's allow backorder." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "The variant's manage inventory." }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's variant rank." }, "calculated_price": { "type": "object", "description": "The variant's calculated price.", "x-schemaName": "BaseCalculatedPriceSet" } } }, "product": { "type": "object", "description": "The item's product.", "x-schemaName": "StoreProduct", "required": [ "variants", "options", "images", "length", "title", "status", "description", "id", "created_at", "updated_at", "subtitle", "thumbnail", "handle", "is_giftcard", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "discountable", "external_id", "deleted_at" ], "properties": { "collection": { "type": "object", "description": "The product's collection.", "x-schemaName": "StoreCollection" }, "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object", "description": "The category's categories.", "x-schemaName": "StoreProductCategory" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "type": "object", "description": "The variant's variants.", "x-schemaName": "StoreProductVariant" } }, "type": { "type": "object", "description": "The product's type.", "x-schemaName": "StoreProduct" }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "The tag's tags.", "x-schemaName": "StoreProductTag" } }, "options": { "type": "array", "description": "The product's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "StoreProductOption" } }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "The image's images.", "x-schemaName": "StoreProductImage" } }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "id": { "type": "string", "title": "id", "description": "The product's ID." }, "metadata": { "type": "object", "description": "The product's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The product's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The product's updated at." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail." }, "handle": { "type": "string", "title": "handle", "description": "The product's handle." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "The product's is giftcard." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's mid code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The product's collection id." }, "type_id": { "type": "string", "title": "type_id", "description": "The product's type id." }, "discountable": { "type": "boolean", "title": "discountable", "description": "The product's discountable." }, "external_id": { "type": "string", "title": "external_id", "description": "The product's external id." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The product's deleted at." } } }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The tax line's item id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "StoreOrderLineItem" } } } ] } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The adjustment's item id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "StoreOrderLineItem" } } } ] } }, "detail": { "allOf": [ { "type": "object", "description": "The item's detail.", "x-schemaName": "BaseOrderItemDetail", "required": [ "id", "item_id", "item", "quantity", "fulfilled_quantity", "delivered_quantity", "shipped_quantity", "return_requested_quantity", "return_received_quantity", "return_dismissed_quantity", "written_off_quantity", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "item_id": { "type": "string", "title": "item_id", "description": "The detail's item id." }, "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "BaseOrderLineItem" }, "quantity": { "type": "number", "title": "quantity", "description": "The detail's quantity." }, "fulfilled_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The detail's fulfilled quantity." }, "delivered_quantity": { "type": "number", "title": "delivered_quantity", "description": "The detail's delivered quantity." }, "shipped_quantity": { "type": "number", "title": "shipped_quantity", "description": "The detail's shipped quantity." }, "return_requested_quantity": { "type": "number", "title": "return_requested_quantity", "description": "The detail's return requested quantity." }, "return_received_quantity": { "type": "number", "title": "return_received_quantity", "description": "The detail's return received quantity." }, "return_dismissed_quantity": { "type": "number", "title": "return_dismissed_quantity", "description": "The detail's return dismissed quantity." }, "written_off_quantity": { "type": "number", "title": "written_off_quantity", "description": "The detail's written off quantity." }, "metadata": { "type": "object", "description": "The detail's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, { "type": "object", "description": "The item's detail.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "StoreOrderLineItem" } } } ] }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "id": { "type": "string", "title": "id", "description": "The item's ID." }, "metadata": { "type": "object", "description": "The item's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The item's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The item's updated at." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's item total." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's item subtotal." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The item's item tax total." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The item's original tax total." }, "total": { "type": "number", "title": "total", "description": "The item's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The item's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The item's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The item's discount tax total." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The item's variant id." }, "product_id": { "type": "string", "title": "product_id", "description": "The item's product id." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The item's product collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant sku." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The item's variant option values." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "The item's requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "The item's is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The item's is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The item's compare at unit price." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The item's refundable total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The item's refundable total per unit." } } } } } ], "description": "The tax line's tax lines." } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "BaseOrderLineItem", "required": [ "id", "title", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "detail", "created_at", "updated_at", "metadata", "original_total", "original_subtotal", "original_tax_total", "item_total", "item_subtotal", "item_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "refundable_total", "refundable_total_per_unit" ], "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail." }, "variant": { "type": "object", "description": "The item's variant.", "x-schemaName": "BaseProductVariant", "required": [ "id", "title", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory", "hs_code", "origin_country", "mid_code", "material", "weight", "length", "height", "width", "options", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "sku": { "type": "string", "title": "sku", "description": "The variant's sku." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's ean." }, "upc": { "type": "string", "title": "upc", "description": "The variant's upc." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "The variant's allow backorder." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "The variant's manage inventory." }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's hs code." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's mid code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's variant rank." }, "options": { "type": "array", "description": "The variant's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "BaseProductOptionValue" } }, "product": { "type": "object", "description": "The variant's product.", "x-schemaName": "BaseProduct" }, "product_id": { "type": "string", "title": "product_id", "description": "The variant's product id." }, "calculated_price": { "type": "object", "description": "The variant's calculated price.", "x-schemaName": "BaseCalculatedPriceSet" }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The variant's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The variant's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The variant's deleted at." }, "metadata": { "type": "object", "description": "The variant's metadata." } } }, "variant_id": { "type": "string", "title": "variant_id", "description": "The item's variant id." }, "product": { "type": "object", "description": "The item's product.", "x-schemaName": "BaseProduct", "required": [ "id", "title", "handle", "subtitle", "description", "is_giftcard", "status", "thumbnail", "width", "weight", "length", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "variants", "options", "images", "discountable", "external_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product's ID." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "handle": { "type": "string", "title": "handle", "description": "The product's handle." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "The product's is giftcard." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's mid code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection": { "type": "object", "description": "The product's collection.", "x-schemaName": "BaseCollection" }, "collection_id": { "type": "string", "title": "collection_id", "description": "The product's collection id." }, "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object", "description": "The category's categories.", "x-schemaName": "BaseProductCategory" } }, "type": { "type": "object", "description": "The product's type.", "x-schemaName": "BaseProduct" }, "type_id": { "type": "string", "title": "type_id", "description": "The product's type id." }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "The tag's tags.", "x-schemaName": "BaseProductTag" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "type": "object", "description": "The variant's variants.", "x-schemaName": "BaseProductVariant" } }, "options": { "type": "array", "description": "The product's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "BaseProductOption" } }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "The image's images.", "x-schemaName": "BaseProductImage" } }, "discountable": { "type": "boolean", "title": "discountable", "description": "The product's discountable." }, "external_id": { "type": "string", "title": "external_id", "description": "The product's external id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The product's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The product's updated at." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The product's deleted at." }, "metadata": { "type": "object", "description": "The product's metadata." } } }, "product_id": { "type": "string", "title": "product_id", "description": "The item's product id." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The item's product collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant sku." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The item's variant option values." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "The item's requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "The item's is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The item's is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The item's compare at unit price." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The tax line's item id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The adjustment's item id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } } }, "detail": { "type": "object", "description": "The item's detail.", "x-schemaName": "BaseOrderItemDetail", "required": [ "id", "item_id", "item", "quantity", "fulfilled_quantity", "delivered_quantity", "shipped_quantity", "return_requested_quantity", "return_received_quantity", "return_dismissed_quantity", "written_off_quantity", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "item_id": { "type": "string", "title": "item_id", "description": "The detail's item id." }, "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "BaseOrderLineItem" }, "quantity": { "type": "number", "title": "quantity", "description": "The detail's quantity." }, "fulfilled_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The detail's fulfilled quantity." }, "delivered_quantity": { "type": "number", "title": "delivered_quantity", "description": "The detail's delivered quantity." }, "shipped_quantity": { "type": "number", "title": "shipped_quantity", "description": "The detail's shipped quantity." }, "return_requested_quantity": { "type": "number", "title": "return_requested_quantity", "description": "The detail's return requested quantity." }, "return_received_quantity": { "type": "number", "title": "return_received_quantity", "description": "The detail's return received quantity." }, "return_dismissed_quantity": { "type": "number", "title": "return_dismissed_quantity", "description": "The detail's return dismissed quantity." }, "written_off_quantity": { "type": "number", "title": "written_off_quantity", "description": "The detail's written off quantity." }, "metadata": { "type": "object", "description": "The detail's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The item's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The item's updated at." }, "metadata": { "type": "object", "description": "The item's metadata." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The item's original tax total." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's item total." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's item subtotal." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The item's item tax total." }, "total": { "type": "number", "title": "total", "description": "The item's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The item's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The item's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The item's discount tax total." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The item's refundable total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The item's refundable total per unit." } } }, "item_id": { "type": "string", "title": "item_id", "description": "The adjustment's item id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "StoreOrderLineItem", "required": [ "detail", "title", "id", "metadata", "created_at", "updated_at", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "refundable_total", "refundable_total_per_unit" ], "properties": { "variant": { "type": "object", "description": "The item's variant.", "x-schemaName": "StoreProductVariant", "required": [ "options", "length", "title", "id", "created_at", "updated_at", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "deleted_at", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory" ], "properties": { "options": { "type": "array", "description": "The variant's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "StoreProductOptionValue" } }, "product": { "type": "object", "description": "The variant's product.", "x-schemaName": "StoreProduct" }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "metadata": { "type": "object", "description": "The variant's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The variant's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The variant's updated at." }, "product_id": { "type": "string", "title": "product_id", "description": "The variant's product id." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's mid code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The variant's deleted at." }, "sku": { "type": "string", "title": "sku", "description": "The variant's sku." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's ean." }, "upc": { "type": "string", "title": "upc", "description": "The variant's upc." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "The variant's allow backorder." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "The variant's manage inventory." }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's variant rank." }, "calculated_price": { "type": "object", "description": "The variant's calculated price.", "x-schemaName": "BaseCalculatedPriceSet" } } }, "product": { "type": "object", "description": "The item's product.", "x-schemaName": "StoreProduct", "required": [ "variants", "options", "images", "length", "title", "status", "description", "id", "created_at", "updated_at", "subtitle", "thumbnail", "handle", "is_giftcard", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "discountable", "external_id", "deleted_at" ], "properties": { "collection": { "type": "object", "description": "The product's collection.", "x-schemaName": "StoreCollection" }, "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object", "description": "The category's categories.", "x-schemaName": "StoreProductCategory" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "type": "object", "description": "The variant's variants.", "x-schemaName": "StoreProductVariant" } }, "type": { "type": "object", "description": "The product's type.", "x-schemaName": "StoreProduct" }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "The tag's tags.", "x-schemaName": "StoreProductTag" } }, "options": { "type": "array", "description": "The product's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "StoreProductOption" } }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "The image's images.", "x-schemaName": "StoreProductImage" } }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "id": { "type": "string", "title": "id", "description": "The product's ID." }, "metadata": { "type": "object", "description": "The product's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The product's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The product's updated at." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail." }, "handle": { "type": "string", "title": "handle", "description": "The product's handle." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "The product's is giftcard." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's mid code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The product's collection id." }, "type_id": { "type": "string", "title": "type_id", "description": "The product's type id." }, "discountable": { "type": "boolean", "title": "discountable", "description": "The product's discountable." }, "external_id": { "type": "string", "title": "external_id", "description": "The product's external id." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The product's deleted at." } } }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The tax line's item id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "StoreOrderLineItem" } } } ] } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The adjustment's item id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "StoreOrderLineItem" } } } ] } }, "detail": { "allOf": [ { "type": "object", "description": "The item's detail.", "x-schemaName": "BaseOrderItemDetail", "required": [ "id", "item_id", "item", "quantity", "fulfilled_quantity", "delivered_quantity", "shipped_quantity", "return_requested_quantity", "return_received_quantity", "return_dismissed_quantity", "written_off_quantity", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "item_id": { "type": "string", "title": "item_id", "description": "The detail's item id." }, "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "BaseOrderLineItem" }, "quantity": { "type": "number", "title": "quantity", "description": "The detail's quantity." }, "fulfilled_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The detail's fulfilled quantity." }, "delivered_quantity": { "type": "number", "title": "delivered_quantity", "description": "The detail's delivered quantity." }, "shipped_quantity": { "type": "number", "title": "shipped_quantity", "description": "The detail's shipped quantity." }, "return_requested_quantity": { "type": "number", "title": "return_requested_quantity", "description": "The detail's return requested quantity." }, "return_received_quantity": { "type": "number", "title": "return_received_quantity", "description": "The detail's return received quantity." }, "return_dismissed_quantity": { "type": "number", "title": "return_dismissed_quantity", "description": "The detail's return dismissed quantity." }, "written_off_quantity": { "type": "number", "title": "written_off_quantity", "description": "The detail's written off quantity." }, "metadata": { "type": "object", "description": "The detail's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, { "type": "object", "description": "The item's detail.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "StoreOrderLineItem" } } } ] }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "id": { "type": "string", "title": "id", "description": "The item's ID." }, "metadata": { "type": "object", "description": "The item's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The item's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The item's updated at." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's item total." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's item subtotal." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The item's item tax total." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The item's original tax total." }, "total": { "type": "number", "title": "total", "description": "The item's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The item's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The item's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The item's discount tax total." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The item's variant id." }, "product_id": { "type": "string", "title": "product_id", "description": "The item's product id." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The item's product collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant sku." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The item's variant option values." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "The item's requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "The item's is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The item's is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The item's compare at unit price." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The item's refundable total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The item's refundable total per unit." } } } } } ], "description": "The adjustment's details." } }, "detail": { "allOf": [ { "$ref": "#/components/schemas/BaseOrderItemDetail" }, { "type": "object", "description": "The item's detail.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "StoreOrderLineItem", "required": [ "detail", "title", "id", "metadata", "created_at", "updated_at", "item_total", "item_subtotal", "item_tax_total", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "subtitle", "thumbnail", "variant_id", "product_id", "product_title", "product_description", "product_subtitle", "product_type", "product_collection", "product_handle", "variant_sku", "variant_barcode", "variant_title", "variant_option_values", "requires_shipping", "is_discountable", "is_tax_inclusive", "unit_price", "quantity", "refundable_total", "refundable_total_per_unit" ], "properties": { "variant": { "type": "object", "description": "The item's variant.", "x-schemaName": "StoreProductVariant", "required": [ "options", "length", "title", "id", "created_at", "updated_at", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "deleted_at", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory" ], "properties": { "options": { "type": "array", "description": "The variant's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "StoreProductOptionValue" } }, "product": { "type": "object", "description": "The variant's product.", "x-schemaName": "StoreProduct" }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "metadata": { "type": "object", "description": "The variant's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The variant's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The variant's updated at." }, "product_id": { "type": "string", "title": "product_id", "description": "The variant's product id." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's mid code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The variant's deleted at." }, "sku": { "type": "string", "title": "sku", "description": "The variant's sku." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's ean." }, "upc": { "type": "string", "title": "upc", "description": "The variant's upc." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "The variant's allow backorder." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "The variant's manage inventory." }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity." }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's variant rank." }, "calculated_price": { "type": "object", "description": "The variant's calculated price.", "x-schemaName": "BaseCalculatedPriceSet" } } }, "product": { "type": "object", "description": "The item's product.", "x-schemaName": "StoreProduct", "required": [ "variants", "options", "images", "length", "title", "status", "description", "id", "created_at", "updated_at", "subtitle", "thumbnail", "handle", "is_giftcard", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "discountable", "external_id", "deleted_at" ], "properties": { "collection": { "type": "object", "description": "The product's collection.", "x-schemaName": "StoreCollection" }, "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object", "description": "The category's categories.", "x-schemaName": "StoreProductCategory" } }, "variants": { "type": "array", "description": "The product's variants.", "items": { "type": "object", "description": "The variant's variants.", "x-schemaName": "StoreProductVariant" } }, "type": { "type": "object", "description": "The product's type.", "x-schemaName": "StoreProduct" }, "tags": { "type": "array", "description": "The product's tags.", "items": { "type": "object", "description": "The tag's tags.", "x-schemaName": "StoreProductTag" } }, "options": { "type": "array", "description": "The product's options.", "items": { "type": "object", "description": "The option's options.", "x-schemaName": "StoreProductOption" } }, "images": { "type": "array", "description": "The product's images.", "items": { "type": "object", "description": "The image's images.", "x-schemaName": "StoreProductImage" } }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "id": { "type": "string", "title": "id", "description": "The product's ID." }, "metadata": { "type": "object", "description": "The product's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The product's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The product's updated at." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail." }, "handle": { "type": "string", "title": "handle", "description": "The product's handle." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "The product's is giftcard." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's hs code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's mid code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection_id": { "type": "string", "title": "collection_id", "description": "The product's collection id." }, "type_id": { "type": "string", "title": "type_id", "description": "The product's type id." }, "discountable": { "type": "boolean", "title": "discountable", "description": "The product's discountable." }, "external_id": { "type": "string", "title": "external_id", "description": "The product's external id." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The product's deleted at." } } }, "tax_lines": { "type": "array", "description": "The item's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderLineItemTaxLine", "required": [ "item", "item_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The tax line's item id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The tax line's item.", "x-schemaName": "StoreOrderLineItem" } } } ] } }, "adjustments": { "type": "array", "description": "The item's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderLineItemAdjustment", "required": [ "item", "item_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "BaseOrderLineItem" }, "item_id": { "type": "string", "title": "item_id", "description": "The adjustment's item id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The adjustment's item.", "x-schemaName": "StoreOrderLineItem" } } } ] } }, "detail": { "allOf": [ { "type": "object", "description": "The item's detail.", "x-schemaName": "BaseOrderItemDetail", "required": [ "id", "item_id", "item", "quantity", "fulfilled_quantity", "delivered_quantity", "shipped_quantity", "return_requested_quantity", "return_received_quantity", "return_dismissed_quantity", "written_off_quantity", "metadata", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "item_id": { "type": "string", "title": "item_id", "description": "The detail's item id." }, "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "BaseOrderLineItem" }, "quantity": { "type": "number", "title": "quantity", "description": "The detail's quantity." }, "fulfilled_quantity": { "type": "number", "title": "fulfilled_quantity", "description": "The detail's fulfilled quantity." }, "delivered_quantity": { "type": "number", "title": "delivered_quantity", "description": "The detail's delivered quantity." }, "shipped_quantity": { "type": "number", "title": "shipped_quantity", "description": "The detail's shipped quantity." }, "return_requested_quantity": { "type": "number", "title": "return_requested_quantity", "description": "The detail's return requested quantity." }, "return_received_quantity": { "type": "number", "title": "return_received_quantity", "description": "The detail's return received quantity." }, "return_dismissed_quantity": { "type": "number", "title": "return_dismissed_quantity", "description": "The detail's return dismissed quantity." }, "written_off_quantity": { "type": "number", "title": "written_off_quantity", "description": "The detail's written off quantity." }, "metadata": { "type": "object", "description": "The detail's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, { "type": "object", "description": "The item's detail.", "required": [ "item" ], "properties": { "item": { "type": "object", "description": "The detail's item.", "x-schemaName": "StoreOrderLineItem" } } } ] }, "title": { "type": "string", "title": "title", "description": "The item's title." }, "id": { "type": "string", "title": "id", "description": "The item's ID." }, "metadata": { "type": "object", "description": "The item's metadata." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The item's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The item's updated at." }, "item_total": { "type": "number", "title": "item_total", "description": "The item's item total." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's item subtotal." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The item's item tax total." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The item's original tax total." }, "total": { "type": "number", "title": "total", "description": "The item's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The item's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The item's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The item's discount tax total." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The item's subtitle." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The item's thumbnail." }, "variant_id": { "type": "string", "title": "variant_id", "description": "The item's variant id." }, "product_id": { "type": "string", "title": "product_id", "description": "The item's product id." }, "product_title": { "type": "string", "title": "product_title", "description": "The item's product title." }, "product_description": { "type": "string", "title": "product_description", "description": "The item's product description." }, "product_subtitle": { "type": "string", "title": "product_subtitle", "description": "The item's product subtitle." }, "product_type": { "type": "string", "title": "product_type", "description": "The item's product type." }, "product_collection": { "type": "string", "title": "product_collection", "description": "The item's product collection." }, "product_handle": { "type": "string", "title": "product_handle", "description": "The item's product handle." }, "variant_sku": { "type": "string", "title": "variant_sku", "description": "The item's variant sku." }, "variant_barcode": { "type": "string", "title": "variant_barcode", "description": "The item's variant barcode." }, "variant_title": { "type": "string", "title": "variant_title", "description": "The item's variant title." }, "variant_option_values": { "type": "object", "description": "The item's variant option values." }, "requires_shipping": { "type": "boolean", "title": "requires_shipping", "description": "The item's requires shipping." }, "is_discountable": { "type": "boolean", "title": "is_discountable", "description": "The item's is discountable." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The item's is tax inclusive." }, "compare_at_unit_price": { "type": "number", "title": "compare_at_unit_price", "description": "The item's compare at unit price." }, "unit_price": { "type": "number", "title": "unit_price", "description": "The item's unit price." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The item's refundable total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The item's refundable total per unit." } } } } } ], "description": "The item's detail." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the item was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the item was updated." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." }, "original_total": { "type": "number", "title": "original_total", "description": "The item's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The item's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The total taxes of the item, excluding promotions." }, "item_total": { "type": "number", "title": "item_total", "description": "The total taxes of the item, including promotions." }, "item_subtotal": { "type": "number", "title": "item_subtotal", "description": "The item's total excluding taxes, including promotions." }, "item_tax_total": { "type": "number", "title": "item_tax_total", "description": "The total taxes of the item, including promotions." }, "total": { "type": "number", "title": "total", "description": "The item's total, including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The item's subtotal excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The tax total of the item including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discount amount of the item." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The total taxes applied on the discounted amount." }, "refundable_total": { "type": "number", "title": "refundable_total", "description": "The total refundable amount of the item's total." }, "refundable_total_per_unit": { "type": "number", "title": "refundable_total_per_unit", "description": "The total refundable amount of the item's total for a single quantity." }, "product_type_id": { "type": "string", "title": "product_type_id", "description": "The ID of the associated product's type." } } }, "StoreOrderResponse": { "type": "object", "description": "The order's details.", "x-schemaName": "StoreOrderResponse", "required": [ "order" ], "properties": { "order": { "$ref": "#/components/schemas/StoreOrder" } } }, "StoreOrderShippingMethod": { "type": "object", "description": "The shipping method's details.", "x-schemaName": "StoreOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order the shipping method belongs to." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the shipping method's amount includes applied taxes." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the shipping option this method was created from." }, "data": { "type": "object", "description": "The shipping method's data, useful for fulfillment provider handling its fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "metadata": { "type": "object", "description": "The shipping method's metadata, can hold custom key-value pairs." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "BaseOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The shipping method's order id." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The shipping method's is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The shipping method's shipping option id." }, "data": { "type": "object", "description": "The shipping method's data." }, "metadata": { "type": "object", "description": "The shipping method's metadata." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The tax line's shipping method id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The adjustment's shipping method id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } } }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's original tax total." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total." }, "detail": { "type": "object", "description": "The shipping method's detail.", "x-schemaName": "BaseOrderShippingDetail", "required": [ "id", "shipping_method_id", "shipping_method", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The detail's shipping method id." }, "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "claim_id": { "type": "string", "title": "claim_id", "description": "The detail's claim id." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The detail's exchange id." }, "return_id": { "type": "string", "title": "return_id", "description": "The detail's return id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The shipping method's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The shipping method's discount tax total." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The shipping method's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The shipping method's updated at." } } }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The tax line's shipping method id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "StoreOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The tax line's shipping method id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The adjustment's shipping method id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] } }, "detail": { "allOf": [ { "type": "object", "description": "The shipping method's detail.", "x-schemaName": "BaseOrderShippingDetail", "required": [ "id", "shipping_method_id", "shipping_method", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The detail's shipping method id." }, "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "claim_id": { "type": "string", "title": "claim_id", "description": "The detail's claim id." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The detail's exchange id." }, "return_id": { "type": "string", "title": "return_id", "description": "The detail's return id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, { "type": "object", "description": "The shipping method's detail.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] }, "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The shipping method's order id." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The shipping method's is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The shipping method's shipping option id." }, "data": { "type": "object", "description": "The shipping method's data." }, "metadata": { "type": "object", "description": "The shipping method's metadata." }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's original tax total." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The shipping method's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The shipping method's discount tax total." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The shipping method's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The shipping method's updated at." } } } } } ], "description": "The tax line's details." } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "BaseOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The shipping method's order id." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The shipping method's is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The shipping method's shipping option id." }, "data": { "type": "object", "description": "The shipping method's data." }, "metadata": { "type": "object", "description": "The shipping method's metadata." }, "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The tax line's shipping method id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The adjustment's shipping method id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } } }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's original tax total." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total." }, "detail": { "type": "object", "description": "The shipping method's detail.", "x-schemaName": "BaseOrderShippingDetail", "required": [ "id", "shipping_method_id", "shipping_method", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The detail's shipping method id." }, "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "claim_id": { "type": "string", "title": "claim_id", "description": "The detail's claim id." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The detail's exchange id." }, "return_id": { "type": "string", "title": "return_id", "description": "The detail's return id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The shipping method's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The shipping method's discount tax total." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The shipping method's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The shipping method's updated at." } } }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The adjustment's shipping method id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "StoreOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The tax line's shipping method id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The adjustment's shipping method id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] } }, "detail": { "allOf": [ { "type": "object", "description": "The shipping method's detail.", "x-schemaName": "BaseOrderShippingDetail", "required": [ "id", "shipping_method_id", "shipping_method", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The detail's shipping method id." }, "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "claim_id": { "type": "string", "title": "claim_id", "description": "The detail's claim id." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The detail's exchange id." }, "return_id": { "type": "string", "title": "return_id", "description": "The detail's return id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, { "type": "object", "description": "The shipping method's detail.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] }, "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The shipping method's order id." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The shipping method's is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The shipping method's shipping option id." }, "data": { "type": "object", "description": "The shipping method's data." }, "metadata": { "type": "object", "description": "The shipping method's metadata." }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's original tax total." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The shipping method's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The shipping method's discount tax total." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The shipping method's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The shipping method's updated at." } } } } } ], "description": "The adjustment's adjustments." } }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's total including taxes, excluding promotions." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's total taxes excluding promotions." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total including taxes and promotions." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's total excluding taxes, including promotions." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total including promotions." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The total discounts applied on the shipping method." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The taxes applied on the discount amount." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the shipping method was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the shipping method was updated." }, "detail": { "allOf": [ { "$ref": "#/components/schemas/BaseOrderShippingDetail" }, { "type": "object", "description": "The shipping method's detail.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "StoreOrderShippingMethod", "required": [ "id", "order_id", "name", "amount", "is_tax_inclusive", "shipping_option_id", "data", "metadata", "original_total", "original_subtotal", "original_tax_total", "total", "subtotal", "tax_total", "discount_total", "discount_tax_total", "created_at", "updated_at" ], "properties": { "tax_lines": { "type": "array", "description": "The shipping method's tax lines.", "items": { "allOf": [ { "type": "object", "description": "The tax line's tax lines.", "x-schemaName": "BaseOrderShippingMethodTaxLine", "required": [ "shipping_method", "shipping_method_id", "total", "subtotal", "id", "code", "rate", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The tax line's shipping method id." }, "total": { "type": "number", "title": "total", "description": "The tax line's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The tax line's subtotal." }, "id": { "type": "string", "title": "id", "description": "The tax line's ID." }, "description": { "type": "string", "title": "description", "description": "The tax line's description." }, "tax_rate_id": { "type": "string", "title": "tax_rate_id", "description": "The tax line's tax rate id." }, "code": { "type": "string", "title": "code", "description": "The tax line's code." }, "rate": { "type": "number", "title": "rate", "description": "The tax line's rate." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The tax line's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The tax line's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The tax line's updated at." } } }, { "type": "object", "description": "The tax line's tax lines.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The tax line's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] } }, "adjustments": { "type": "array", "description": "The shipping method's adjustments.", "items": { "allOf": [ { "type": "object", "description": "The adjustment's adjustments.", "x-schemaName": "BaseOrderShippingMethodAdjustment", "required": [ "shipping_method", "shipping_method_id", "id", "amount", "order_id", "created_at", "updated_at" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The adjustment's shipping method id." }, "id": { "type": "string", "title": "id", "description": "The adjustment's ID." }, "code": { "type": "string", "title": "code", "description": "The adjustment's code." }, "amount": { "type": "number", "title": "amount", "description": "The adjustment's amount." }, "order_id": { "type": "string", "title": "order_id", "description": "The adjustment's order id." }, "description": { "type": "string", "title": "description", "description": "The adjustment's description." }, "promotion_id": { "type": "string", "title": "promotion_id", "description": "The adjustment's promotion id." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The adjustment's provider id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The adjustment's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The adjustment's updated at." } } }, { "type": "object", "description": "The adjustment's adjustments.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The adjustment's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] } }, "detail": { "allOf": [ { "type": "object", "description": "The shipping method's detail.", "x-schemaName": "BaseOrderShippingDetail", "required": [ "id", "shipping_method_id", "shipping_method", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The detail's ID." }, "shipping_method_id": { "type": "string", "title": "shipping_method_id", "description": "The detail's shipping method id." }, "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "BaseOrderShippingMethod" }, "claim_id": { "type": "string", "title": "claim_id", "description": "The detail's claim id." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The detail's exchange id." }, "return_id": { "type": "string", "title": "return_id", "description": "The detail's return id." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The detail's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The detail's updated at." } } }, { "type": "object", "description": "The shipping method's detail.", "required": [ "shipping_method" ], "properties": { "shipping_method": { "type": "object", "description": "The detail's shipping method.", "x-schemaName": "StoreOrderShippingMethod" } } } ] }, "id": { "type": "string", "title": "id", "description": "The shipping method's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The shipping method's order id." }, "name": { "type": "string", "title": "name", "description": "The shipping method's name." }, "description": { "type": "string", "title": "description", "description": "The shipping method's description." }, "amount": { "type": "number", "title": "amount", "description": "The shipping method's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "The shipping method's is tax inclusive." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The shipping method's shipping option id." }, "data": { "type": "object", "description": "The shipping method's data." }, "metadata": { "type": "object", "description": "The shipping method's metadata." }, "original_total": { "type": "number", "title": "original_total", "description": "The shipping method's original total." }, "original_subtotal": { "type": "number", "title": "original_subtotal", "description": "The shipping method's original subtotal." }, "original_tax_total": { "type": "number", "title": "original_tax_total", "description": "The shipping method's original tax total." }, "total": { "type": "number", "title": "total", "description": "The shipping method's total." }, "subtotal": { "type": "number", "title": "subtotal", "description": "The shipping method's subtotal." }, "tax_total": { "type": "number", "title": "tax_total", "description": "The shipping method's tax total." }, "discount_total": { "type": "number", "title": "discount_total", "description": "The shipping method's discount total." }, "discount_tax_total": { "type": "number", "title": "discount_tax_total", "description": "The shipping method's discount tax total." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The shipping method's created at." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The shipping method's updated at." } } } } } ], "description": "Details of changes to a shipping method." } } }, "StorePaymentCollection": { "type": "object", "description": "The payment collection's details.", "x-schemaName": "StorePaymentCollection", "required": [ "payment_providers", "id", "currency_code", "amount", "status" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment collection's ID." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment collection's currency code." }, "amount": { "type": "number", "title": "amount", "description": "The total amount to be paid." }, "authorized_amount": { "type": "number", "title": "authorized_amount", "description": "The total authorized amount of the collection's payments." }, "captured_amount": { "type": "number", "title": "captured_amount", "description": "The total captured amount of the collection's payments." }, "refunded_amount": { "type": "number", "title": "refunded_amount", "description": "The total refunded amount of the collection's payments." }, "completed_at": { "type": "string", "format": "date-time", "title": "completed_at", "description": "The date the payment collection was completed." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the payment collection was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the payment collection was updated." }, "metadata": { "type": "object", "description": "The payment collection's metadata, can hold custom key-value pairs." }, "status": { "type": "string", "description": "The payment collection's status.", "enum": [ "canceled", "not_paid", "awaiting", "authorized", "partially_authorized" ] }, "payment_providers": { "type": "array", "description": "The payment provider used to process the collection's payments and sessions.", "items": { "$ref": "#/components/schemas/StorePaymentProvider" } }, "payment_sessions": { "type": "array", "description": "The payment collection's payment sessions.", "items": { "$ref": "#/components/schemas/StorePaymentSession" } }, "payments": { "type": "array", "description": "The payment collection's payments.", "items": { "$ref": "#/components/schemas/BasePayment" } } } }, "StorePaymentCollectionResponse": { "type": "object", "description": "The payment collection's details.", "x-schemaName": "StorePaymentCollectionResponse", "required": [ "payment_collection" ], "properties": { "payment_collection": { "$ref": "#/components/schemas/StorePaymentCollection" } } }, "StorePaymentProvider": { "type": "object", "description": "The payment provider's details", "x-schemaName": "StorePaymentProvider", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The payment provider's ID." } } }, "StorePaymentSession": { "type": "object", "description": "The payment session's details.", "x-schemaName": "StorePaymentSession", "properties": { "id": { "type": "string", "title": "id", "description": "The payment session's ID." }, "amount": { "type": "number", "title": "amount", "description": "The payment session's amount." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The payment session's currency code.", "example": "usd" }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the payment provider processing this session." }, "data": { "type": "object", "description": "The payment session's data, useful for the payment provider processing the payment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment-session#data-property" } }, "context": { "type": "object", "description": "The context around the payment, such as the customer's details.", "example": { "customer": { "id": "cus_123" } } }, "status": { "type": "string", "description": "The payment session's status.", "enum": [ "authorized", "captured", "canceled", "pending", "requires_more", "error" ] }, "authorized_at": { "type": "string", "title": "authorized_at", "description": "The date the payment session was authorized.", "format": "date-time" }, "payment_collection": { "type": "object" }, "payment": { "$ref": "#/components/schemas/BasePayment" } }, "required": [ "id", "amount", "currency_code", "provider_id", "data", "status" ] }, "StorePrice": { "type": "object", "description": "The price's details.", "x-schemaName": "StorePrice", "required": [ "id", "currency_code", "amount", "min_quantity", "max_quantity" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price's ID." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The price's ISO 2 currency code.", "example": "usd" }, "amount": { "type": "number", "title": "amount", "description": "The price's amount." }, "min_quantity": { "type": "number", "title": "min_quantity", "description": "The minimum quantity required in the cart for the price to apply." }, "max_quantity": { "type": "number", "title": "max_quantity", "description": "The maximum quantity required in the cart for the price to apply." }, "price_rules": { "type": "array", "description": "The price's rules.", "items": { "$ref": "#/components/schemas/StorePriceRule" } } } }, "StorePriceRule": { "type": "object", "description": "The price rule's details.", "x-schemaName": "StorePriceRule", "required": [ "id", "attribute", "operator", "value" ], "properties": { "id": { "type": "string", "title": "id", "description": "The price rule's ID." }, "attribute": { "type": "string", "title": "attribute", "description": "The price rule's attribute." }, "operator": { "type": "string", "description": "The price rule's operator.", "enum": [ "gt", "lt", "eq", "lte", "gte" ] }, "value": { "type": "string", "title": "value", "description": "The price rule's value." } } }, "StoreProduct": { "type": "object", "description": "The product's details.", "x-schemaName": "StoreProduct", "required": [ "variants", "options", "images", "length", "title", "status", "description", "id", "created_at", "updated_at", "subtitle", "thumbnail", "handle", "is_giftcard", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "collection_id", "type_id", "discountable", "external_id", "deleted_at" ], "properties": { "categories": { "type": "array", "description": "The product's categories.", "items": { "type": "object" } }, "type": { "$ref": "#/components/schemas/StoreProductType" }, "length": { "type": "number", "title": "length", "description": "The product's length." }, "title": { "type": "string", "title": "title", "description": "The product's title." }, "status": { "type": "string", "description": "The product's status.", "enum": [ "draft", "proposed", "published", "rejected" ] }, "options": { "type": "array", "description": "The product's options.", "items": { "$ref": "#/components/schemas/StoreProductOption" } }, "description": { "type": "string", "title": "description", "description": "The product's description." }, "id": { "type": "string", "title": "id", "description": "The product's ID." }, "metadata": { "type": "object", "description": "The product's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the product was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the product was updated." }, "variants": { "type": "array", "description": "The product's variants.", "items": { "$ref": "#/components/schemas/StoreProductVariant" } }, "handle": { "type": "string", "title": "handle", "description": "The product's handle." }, "subtitle": { "type": "string", "title": "subtitle", "description": "The product's subtitle." }, "is_giftcard": { "type": "boolean", "title": "is_giftcard", "description": "Whether the product is a gift card." }, "thumbnail": { "type": "string", "title": "thumbnail", "description": "The product's thumbnail URL." }, "width": { "type": "number", "title": "width", "description": "The product's width." }, "weight": { "type": "number", "title": "weight", "description": "The product's weight." }, "height": { "type": "number", "title": "height", "description": "The product's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The product's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The product's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The product's MID code." }, "material": { "type": "string", "title": "material", "description": "The product's material." }, "collection": { "$ref": "#/components/schemas/StoreCollection" }, "collection_id": { "type": "string", "title": "collection_id", "description": "The ID of the collection that the product belongs to." }, "type_id": { "type": "string", "title": "type_id", "description": "The ID of the product's type." }, "tags": { "type": "array", "description": "The product's tags.", "items": { "$ref": "#/components/schemas/StoreProductTag" } }, "images": { "type": "array", "description": "The product's images.", "items": { "$ref": "#/components/schemas/StoreProductImage" } }, "discountable": { "type": "boolean", "title": "discountable", "description": "Whether the product can be discounted." }, "external_id": { "type": "string", "title": "external_id", "description": "The ID of the product in an external service or system." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the product was deleted." } } }, "StoreProductCategory": { "type": "object", "description": "The category's details.", "x-schemaName": "StoreProductCategory", "required": [ "id", "name", "description", "handle", "rank", "parent_category_id", "parent_category", "category_children", "created_at", "updated_at", "deleted_at" ], "properties": { "products": { "type": "array", "description": "The category's products.", "items": { "$ref": "#/components/schemas/StoreProduct" } }, "id": { "type": "string", "title": "id", "description": "The category's ID." }, "name": { "type": "string", "title": "name", "description": "The category's name." }, "description": { "type": "string", "title": "description", "description": "The category's description." }, "handle": { "type": "string", "title": "handle", "description": "The category's handle." }, "rank": { "type": "number", "title": "rank", "description": "The category's rank." }, "parent_category_id": { "type": "string", "title": "parent_category_id", "description": "The ID of the category's parent." }, "parent_category": { "type": "object" }, "category_children": { "type": "array", "description": "The category's children.", "items": { "type": "object" } }, "metadata": { "type": "object", "description": "The category's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the category was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the category was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the category was deleted." } } }, "StoreProductCategoryListResponse": { "type": "object", "description": "The paginated list of product categories.", "x-schemaName": "StoreProductCategoryListResponse", "required": [ "limit", "offset", "count", "product_categories" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items skipped before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items." }, "product_categories": { "type": "array", "description": "The list of product categories.", "items": { "$ref": "#/components/schemas/StoreProductCategory" } } } }, "StoreProductCategoryResponse": { "type": "object", "description": "The product category's details.", "x-schemaName": "StoreProductCategoryResponse", "required": [ "product_category" ], "properties": { "product_category": { "$ref": "#/components/schemas/StoreProductCategory" } } }, "StoreProductImage": { "type": "object", "description": "The image's details.", "x-schemaName": "StoreProductImage", "required": [ "id", "url", "rank" ], "properties": { "id": { "type": "string", "title": "id", "description": "The image's ID." }, "url": { "type": "string", "title": "url", "description": "The image's URL." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the image was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the image was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the image was deleted." }, "metadata": { "type": "object", "description": "The image's metadata, can hold custom key-value pairs." }, "rank": { "type": "number", "title": "rank", "description": "The image's rank among its sibling images" } } }, "StoreProductOption": { "type": "object", "description": "The product option's details.", "x-schemaName": "StoreProductOption", "properties": { "id": { "type": "string", "title": "id", "description": "The option's ID." }, "title": { "type": "string", "title": "title", "description": "The option's title." }, "product": { "type": "object" }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the product this option belongs to." }, "values": { "type": "array", "description": "The option's values.", "items": { "$ref": "#/components/schemas/StoreProductOptionValue" } }, "metadata": { "type": "object", "description": "The option's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the product option was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the product option was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the product option was deleted." } }, "required": [ "title", "id" ] }, "StoreProductOptionValue": { "type": "object", "description": "The product option value's details.", "x-schemaName": "StoreProductOptionValue", "required": [ "value", "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The value's ID." }, "value": { "type": "string", "title": "value", "description": "The value." }, "option": { "type": "object" }, "option_id": { "type": "string", "title": "option_id", "description": "The ID of the option this value belongs to." }, "metadata": { "type": "object", "description": "The value's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the value was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the value was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the value was deleted." } } }, "StoreProductResponse": { "type": "object", "description": "The product's details.", "x-schemaName": "StoreProductResponse", "required": [ "product" ], "properties": { "product": { "$ref": "#/components/schemas/StoreProduct" } } }, "StoreProductTag": { "type": "object", "description": "The tag's details.", "x-schemaName": "StoreProductTag", "properties": { "id": { "type": "string", "title": "id", "description": "The tag's ID." }, "value": { "type": "string", "title": "value", "description": "The tag's value." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the tag was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the tag was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the tag was deleted." }, "metadata": { "type": "object", "description": "The tag's metadata, can hold custom key-value pairs." } }, "required": [ "id", "value", "created_at", "updated_at" ] }, "StoreProductTagListResponse": { "type": "object", "description": "The paginated list of product tags.", "x-schemaName": "StoreProductTagListResponse", "required": [ "limit", "offset", "count", "product_tags" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items to skip before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items available." }, "product_tags": { "type": "array", "description": "The list of product tags.", "items": { "$ref": "#/components/schemas/StoreProductTag" } } } }, "StoreProductTagResponse": { "type": "object", "description": "The product tag's details.", "x-schemaName": "StoreProductTagResponse", "required": [ "product_tag" ], "properties": { "product_tag": { "$ref": "#/components/schemas/StoreProductTag" } } }, "StoreProductType": { "type": "object", "description": "The product type's details.", "x-schemaName": "StoreProductType", "required": [ "id", "value", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The product type's ID." }, "metadata": { "type": "object", "description": "The product type's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the product type was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the product type was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the product type was deleted." }, "value": { "type": "string", "title": "value", "description": "The type's value." } } }, "StoreProductTypeListResponse": { "type": "object", "description": "The paginated list of product types.", "x-schemaName": "StoreProductTypeListResponse", "required": [ "limit", "offset", "count", "product_types" ], "properties": { "limit": { "type": "number", "title": "limit", "description": "The maximum number of items returned." }, "offset": { "type": "number", "title": "offset", "description": "The number of items to skip before retrieving the returned items." }, "count": { "type": "number", "title": "count", "description": "The total number of items available." }, "product_types": { "type": "array", "description": "The list of product types.", "items": { "$ref": "#/components/schemas/StoreProductType" } } } }, "StoreProductTypeResponse": { "type": "object", "description": "The product type's details.", "x-schemaName": "StoreProductTypeResponse", "required": [ "product_type" ], "properties": { "product_type": { "$ref": "#/components/schemas/StoreProductType" } } }, "StoreProductVariant": { "type": "object", "description": "The variant's details.", "x-schemaName": "StoreProductVariant", "properties": { "options": { "type": "array", "description": "The variant's options.", "items": { "$ref": "#/components/schemas/StoreProductOptionValue" } }, "product": { "type": "object" }, "length": { "type": "number", "title": "length", "description": "The variant's length." }, "title": { "type": "string", "title": "title", "description": "The variant's title." }, "metadata": { "type": "object", "description": "The variant's metadata, can hold custom key-value pairs." }, "id": { "type": "string", "title": "id", "description": "The variant's ID." }, "width": { "type": "number", "title": "width", "description": "The variant's width." }, "weight": { "type": "number", "title": "weight", "description": "The variant's weight." }, "height": { "type": "number", "title": "height", "description": "The variant's height." }, "origin_country": { "type": "string", "title": "origin_country", "description": "The variant's origin country." }, "hs_code": { "type": "string", "title": "hs_code", "description": "The variant's HS code." }, "mid_code": { "type": "string", "title": "mid_code", "description": "The variant's MID code." }, "material": { "type": "string", "title": "material", "description": "The variant's material." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the variant was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the variant was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the variant was deleted." }, "product_id": { "type": "string", "title": "product_id", "description": "The ID of the product this variant belongs to." }, "sku": { "type": "string", "title": "sku", "description": "The variant's SKU." }, "barcode": { "type": "string", "title": "barcode", "description": "The variant's barcode." }, "ean": { "type": "string", "title": "ean", "description": "The variant's EAN." }, "upc": { "type": "string", "title": "upc", "description": "The variant's UPC." }, "allow_backorder": { "type": "boolean", "title": "allow_backorder", "description": "Whether the variant can be ordered even if it's not in stock." }, "manage_inventory": { "type": "boolean", "title": "manage_inventory", "description": "Whether Medusa manages the variant's inventory. If disabled, the variant is always considered in stock.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/storefront-development/products/inventory", "description": "Storefront guide: How to retrieve a product variant's inventory details." } }, "inventory_quantity": { "type": "number", "title": "inventory_quantity", "description": "The variant's inventory quantity. This property is only available if you pass `+variants.inventory_quantity` in the `fields` query parameter.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/storefront-development/products/inventory", "description": "Storefront guide: How to retrieve a product variant's inventory details." } }, "variant_rank": { "type": "number", "title": "variant_rank", "description": "The variant's rank among its siblings." }, "calculated_price": { "$ref": "#/components/schemas/BaseCalculatedPriceSet" } }, "required": [ "options", "length", "title", "id", "created_at", "updated_at", "width", "weight", "height", "origin_country", "hs_code", "mid_code", "material", "deleted_at", "sku", "barcode", "ean", "upc", "allow_backorder", "manage_inventory" ] }, "StoreRegion": { "type": "object", "description": "The region's details.", "x-schemaName": "StoreRegion", "required": [ "id", "name", "currency_code" ], "properties": { "id": { "type": "string", "title": "id", "description": "The region's ID." }, "name": { "type": "string", "title": "name", "description": "The region's name." }, "currency_code": { "type": "string", "title": "currency_code", "description": "The region's currency code.", "example": "usd" }, "automatic_taxes": { "type": "boolean", "title": "automatic_taxes", "description": "Whether taxes are calculated automatically during checkout for carts that belong to this region." }, "countries": { "type": "array", "description": "The region's countries.", "items": { "$ref": "#/components/schemas/BaseRegionCountry" } }, "payment_providers": { "type": "array", "description": "The region's payment providers.", "items": { "$ref": "#/components/schemas/AdminPaymentProvider" } }, "metadata": { "type": "object", "description": "The region's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the region was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the region was updated." } } }, "StoreRegionCountry": { "type": "object", "description": "The country's details.", "x-schemaName": "StoreRegionCountry", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The country's ID." }, "iso_2": { "type": "string", "title": "iso_2", "description": "The country's ISO 2.", "example": "us" }, "iso_3": { "type": "string", "title": "iso_3", "description": "The country's ISO 3.", "example": "usa" }, "num_code": { "type": "string", "title": "num_code", "description": "The country's num code.", "example": 840 }, "name": { "type": "string", "title": "name", "description": "The country's name." }, "display_name": { "type": "string", "title": "display_name", "description": "The country's display name." } } }, "StoreRequestOrderTransfer": { "type": "object", "description": "The details of requesting the order transfer.", "x-schemaName": "StoreRequestOrderTransfer", "properties": { "description": { "type": "string", "title": "description", "description": "The transfer's description, which can be shown to the other customer receiving the request." } } }, "StoreReturn": { "type": "object", "description": "The return's details.", "x-schemaName": "StoreReturn", "required": [ "items", "id", "display_id", "created_at", "order_id", "canceled_at", "received_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return's ID." }, "order_id": { "type": "string", "title": "order_id", "description": "The ID of the order this return is created for." }, "status": { "type": "string", "title": "status", "description": "The return's status." }, "exchange_id": { "type": "string", "title": "exchange_id", "description": "The ID of the associated exchange." }, "location_id": { "type": "string", "title": "location_id", "description": "The ID of the location the items are returned to." }, "claim_id": { "type": "string", "title": "claim_id", "description": "The ID of the associated claim." }, "display_id": { "type": "number", "title": "display_id", "description": "The return's display ID." }, "refund_amount": { "type": "number", "title": "refund_amount", "description": "The return's refunded amount." }, "items": { "type": "array", "description": "The return's items.", "items": { "$ref": "#/components/schemas/StoreReturnItem" } }, "received_at": { "type": "string", "title": "received_at", "description": "The date the return was received." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the return was created." }, "canceled_at": { "type": "string", "title": "canceled_at", "description": "The date the return was updated." } } }, "StoreReturnItem": { "type": "object", "description": "The return item's details.", "x-schemaName": "StoreReturnItem", "properties": { "id": { "type": "string", "title": "id", "description": "The item's ID." }, "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "received_quantity": { "type": "number", "title": "received_quantity", "description": "The item's received quantity." }, "damaged_quantity": { "type": "number", "title": "damaged_quantity", "description": "The item's damaged quantity." }, "reason_id": { "type": "string", "title": "reason_id", "description": "The ID of the item's reason." }, "note": { "type": "string", "title": "note", "description": "A note with more details on why the item is returned." }, "item_id": { "type": "string", "title": "item_id", "description": "The ID of the item in the order." }, "return_id": { "type": "string", "title": "return_id", "description": "The ID of the return this item belongs to." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." } }, "required": [ "id", "quantity", "received_quantity", "damaged_quantity", "item_id", "return_id" ] }, "StoreReturnReason": { "type": "object", "description": "The return reason's details.", "x-schemaName": "StoreReturnReason", "required": [ "id", "value", "label", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The return reason's ID." }, "value": { "type": "string", "title": "value", "description": "The return reason's value." }, "label": { "type": "string", "title": "label", "description": "The return reason's label." }, "description": { "type": "string", "title": "description", "description": "The return reason's description." }, "metadata": { "type": "object", "description": "The return reason's metadata, can hold custom key-value pairs." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the return reason was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the return reason was updated." } } }, "StoreReturnReasonResponse": { "type": "object", "description": "The return reason's details.", "x-schemaName": "StoreReturnReasonResponse", "required": [ "return_reason" ], "properties": { "return_reason": { "$ref": "#/components/schemas/StoreReturnReason" } } }, "StoreReturnResponse": { "type": "object", "description": "The return's details.", "x-schemaName": "StoreReturnResponse", "required": [ "return" ], "properties": { "return": { "$ref": "#/components/schemas/StoreReturn" } } }, "StoreShippingOption": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "StoreShippingOption", "required": [ "id", "name", "price_type", "service_zone_id", "provider_id", "provider", "shipping_option_type_id", "type", "shipping_profile_id", "amount", "is_tax_inclusive", "data", "metadata" ], "properties": { "id": { "type": "string", "title": "id", "description": "The shipping option's ID." }, "name": { "type": "string", "title": "name", "description": "The shipping option's name." }, "price_type": { "type": "string", "description": "The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.", "enum": [ "flat", "calculated" ] }, "service_zone_id": { "type": "string", "title": "service_zone_id", "description": "The ID of the service zone the shipping option belongs to." }, "provider_id": { "type": "string", "title": "provider_id", "description": "The ID of the fulfillment provider handling this option." }, "provider": { "$ref": "#/components/schemas/BaseFulfillmentProvider" }, "shipping_option_type_id": { "type": "string", "title": "shipping_option_type_id", "description": "The ID of the shipping option's type." }, "type": { "$ref": "#/components/schemas/StoreShippingOptionType" }, "shipping_profile_id": { "type": "string", "title": "shipping_profile_id", "description": "The ID of the associated shipping profile." }, "amount": { "type": "number", "title": "amount", "description": "The shipping option's amount." }, "is_tax_inclusive": { "type": "boolean", "title": "is_tax_inclusive", "description": "Whether the amount includes taxes." }, "data": { "type": "object", "description": "The shipping option's data, useful for the provider handling fulfillment.", "externalDocs": { "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property" } }, "metadata": { "type": "object", "description": "The shipping option's metadata, can hold custom key-value pairs." } } }, "StoreShippingOptionListResponse": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "StoreShippingOptionListResponse", "required": [ "shipping_options" ], "properties": { "shipping_options": { "type": "array", "description": "The shipping option's shipping options.", "items": { "$ref": "#/components/schemas/StoreCartShippingOption" } } } }, "StoreShippingOptionResponse": { "type": "object", "description": "The shipping option's details.", "x-schemaName": "StoreShippingOptionResponse", "required": [ "shipping_option" ], "properties": { "shipping_option": { "$ref": "#/components/schemas/StoreCartShippingOption" } } }, "StoreShippingOptionType": { "type": "object", "description": "The shipping option type's details.", "x-schemaName": "StoreShippingOptionType", "required": [ "id", "label", "description", "code", "shipping_option_id", "created_at", "updated_at", "deleted_at" ], "properties": { "id": { "type": "string", "title": "id", "description": "The type's ID." }, "label": { "type": "string", "title": "label", "description": "The type's label." }, "description": { "type": "string", "title": "description", "description": "The type's description." }, "code": { "type": "string", "title": "code", "description": "The type's code." }, "shipping_option_id": { "type": "string", "title": "shipping_option_id", "description": "The ID of the associated shipping option." }, "created_at": { "type": "string", "format": "date-time", "title": "created_at", "description": "The date the type was created." }, "updated_at": { "type": "string", "format": "date-time", "title": "updated_at", "description": "The date the type was updated." }, "deleted_at": { "type": "string", "format": "date-time", "title": "deleted_at", "description": "The date the type was deleted." } } }, "StoreUpdateCartLineItem": { "type": "object", "description": "The details to update in the line item.", "x-schemaName": "StoreUpdateCartLineItem", "required": [ "quantity" ], "properties": { "quantity": { "type": "number", "title": "quantity", "description": "The item's quantity." }, "metadata": { "type": "object", "description": "The item's metadata, can hold custom key-value pairs." } } }, "StoreUpdateCustomer": { "type": "object", "description": "The details to update in the customer.", "x-schemaName": "StoreUpdateCustomer", "properties": { "company_name": { "type": "string", "title": "company_name", "description": "The customer's company name." }, "first_name": { "type": "string", "title": "first_name", "description": "The customer's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The customer's last name." }, "phone": { "type": "string", "title": "phone", "description": "The customer's phone." }, "metadata": { "type": "object", "description": "The customer's metadata, can hold custom key-value pairs." } } }, "UpdateAddress": { "type": "object", "description": "The details to update in the address.", "x-schemaName": "UpdateAddress", "required": [ "id" ], "properties": { "id": { "type": "string", "title": "id", "description": "The ID of an existing address to update." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that this address belongs to." }, "company": { "type": "string", "title": "company", "description": "The address's company." }, "first_name": { "type": "string", "title": "first_name", "description": "The address's first name." }, "last_name": { "type": "string", "title": "last_name", "description": "The address's last name." }, "address_1": { "type": "string", "title": "address_1", "description": "The address's first line." }, "address_2": { "type": "string", "title": "address_2", "description": "The address's second line." }, "city": { "type": "string", "title": "city", "description": "The address's city." }, "country_code": { "type": "string", "title": "country_code", "description": "The address's country code.", "example": "usd" }, "province": { "type": "string", "title": "province", "description": "The address's province." }, "postal_code": { "type": "string", "title": "postal_code", "description": "The address's postal code." }, "phone": { "type": "string", "title": "phone", "description": "The address's phone." }, "metadata": { "type": "object", "description": "The address's metadata, can hold custom key-value pairs." } } }, "UpdateCartData": { "type": "object", "description": "The details to update in a cart.", "x-schemaName": "UpdateCartData", "properties": { "region_id": { "type": "string", "title": "region_id", "description": "The ID of the associated region. This can affect the prices and currency code of the cart." }, "customer_id": { "type": "string", "title": "customer_id", "description": "The ID of the customer that the cart belongs to." }, "sales_channel_id": { "type": "string", "title": "sales_channel_id", "description": "The ID of the associated sales channel. Only products available in this channel can be added to the cart." }, "email": { "type": "string", "title": "email", "description": "The email of the customer that the cart belongs to.", "format": "email" }, "currency_code": { "type": "string", "title": "currency_code", "description": "The cart's currency code.", "example": "usd" }, "shipping_address_id": { "type": "string", "title": "shipping_address_id", "description": "The ID of the cart's shipping address." }, "billing_address_id": { "type": "string", "title": "billing_address_id", "description": "The ID of the cart's billing address." }, "billing_address": { "oneOf": [ { "$ref": "#/components/schemas/CreateAddress" }, { "$ref": "#/components/schemas/UpdateAddress" } ] }, "shipping_address": { "oneOf": [ { "$ref": "#/components/schemas/CreateAddress" }, { "$ref": "#/components/schemas/UpdateAddress" } ] }, "metadata": { "type": "object", "description": "The cart's metadata, ca hold custom key-value pairs." } } }, "WorkflowExecutionContext": { "type": "object", "description": "The workflow execution's context.", "x-schemaName": "WorkflowExecutionContext", "required": [ "compensate", "errors" ], "properties": { "data": { "type": "object", "description": "The context's data.", "properties": { "invoke": { "type": "object", "description": "The step's invokation details.", "required": [ "output" ], "additionalProperties": { "type": "object", "properties": { "output": { "type": "object", "description": "The invokation's details.", "required": [ "output", "compensateInput" ], "properties": { "output": { "description": "the step's output" }, "compensateInput": { "description": "the compensation function's input." } } } } } }, "payload": { "description": "the payload of the transaction." } }, "required": [ "invoke" ] }, "compensate": { "type": "object", "description": "The context's compensate." }, "errors": { "type": "array", "description": "The context's errors.", "items": { "type": "object", "description": "The error's details.", "properties": { "error": { "type": "object", "description": "The error's details." }, "action": { "type": "string", "title": "action", "description": "The error's action." }, "handlerType": { "type": "string", "title": "handlerType", "description": "The error's handler type." } }, "required": [ "error", "action", "handlerType" ] } } } } }, "responses": { "default_error": { "description": "Default Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": "unknown_error", "message": "An unknown error occurred.", "type": "unknown_error" } } } }, "invalid_state_error": { "description": "Invalid State Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": "unknown_error", "message": "The request conflicted with another request. You may retry the request with the provided Idempotency-Key.", "type": "QueryRunnerAlreadyReleasedError" } } } }, "invalid_request_error": { "description": "Invalid Request Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": "invalid_request_error", "message": "Discount with code TEST already exists.", "type": "duplicate_error" } } } }, "not_found_error": { "description": "Not Found Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "message": "Entity with id 1 was not found", "type": "not_found" } } } }, "400_error": { "description": "Client Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "not_allowed": { "$ref": "#/components/examples/not_allowed_error" }, "invalid_data": { "$ref": "#/components/examples/invalid_data_error" } } } } }, "500_error": { "description": "Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "examples": { "database": { "$ref": "#/components/examples/database_error" }, "unexpected_state": { "$ref": "#/components/examples/unexpected_state_error" }, "invalid_argument": { "$ref": "#/components/examples/invalid_argument_error" }, "default_error": { "$ref": "#/components/examples/default_error" } } } } }, "unauthorized": { "description": "User is not authorized. Must log in first", "content": { "text/plain": { "schema": { "type": "string", "default": "Unauthorized", "example": "Unauthorized" } } } }, "incorrect_credentials": { "description": "User does not exist or incorrect credentials", "content": { "text/plain": { "schema": { "type": "string", "default": "Unauthorized", "example": "Unauthorized" } } } } }, "examples": { "not_allowed_error": { "summary": "Not Allowed Error", "value": { "message": "Discount must be set to dynamic", "type": "not_allowed" } }, "invalid_data_error": { "summary": "Invalid Data Error", "value": { "message": "first_name must be a string", "type": "invalid_data" } }, "multiple_errors": { "summary": "Multiple Errors", "value": { "message": "Provided request body contains errors. Please check the data and retry the request", "errors": [ { "message": "first_name must be a string", "type": "invalid_data" }, { "message": "Discount must be set to dynamic", "type": "not_allowed" } ] } }, "database_error": { "summary": "Database Error", "value": { "code": "api_error", "message": "An error occured while hashing password", "type": "database_error" } }, "unexpected_state_error": { "summary": "Unexpected State Error", "value": { "message": "cart.total must be defined", "type": "unexpected_state" } }, "invalid_argument_error": { "summary": "Invalid Argument Error", "value": { "message": "cart.total must be defined", "type": "unexpected_state" } }, "default_error": { "summary": "Default Error", "value": { "code": "unknown_error", "message": "An unknown error occurred.", "type": "unknown_error" } } }, "securitySchemes": { "api_token": { "type": "http", "x-displayName": "API Token", "scheme": "bearer" }, "jwt_token": { "type": "http", "x-displayName": "JWT Token", "scheme": "bearer" }, "cookie_auth": { "type": "apiKey", "in": "cookie", "name": "connect.sid", "x-displayName": "Cookie Session ID" }, "reset_password": { "type": "http", "x-displayName": "Reset Password Token", "scheme": "bearer", "x-is-auth": false } } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SGFGOV/medusa-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server