Files
medusa-store/docs/api/admin-spec3.yaml
2022-07-05 20:34:27 +03:00

10762 lines
344 KiB
YAML

openapi: 3.0.0
info:
version: 1.0.0
title: Medusa Admin API
license:
name: MIT
tags:
- name: Auth
description: >-
Auth endpoints allows authorization of admin Users and manages their
sessions.
- name: Collection
x-resourceId: product_collection
- name: Customer
x-resourceId: customer
- name: Discount
x-resourceId: discount
- name: Gift Card
x-resourceId: gift_card
- name: Notification
x-resourceId: notification
- name: Order
x-resourceId: order
- name: Product
x-resourceId: product
- name: Region
x-resourceId: region
- name: Return
x-resourceId: return
- name: Shipping Option
x-resourceId: shipping_option
- name: Shipping Profile
x-resourceId: shipping_profile
- name: Swap
x-resourceId: swap
- name: Product Variant
x-resourceId: product_variant
- name: OAuth
x-resourceId: OAuth
servers:
- url: 'https://api.medusa-commerce.com/admin'
paths:
/apps:
post:
operationId: PostApps
summary: Generates a token for an application.
description: Generates a token for an application.
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- application_name
- state
- code
properties:
application_name:
type: string
description: Name of the application for the token to be generated for.
state:
type: string
description: State of the application.
code:
type: string
description: The code for the generated token.
tags:
- Apps
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
apps:
$ref: '#/components/schemas/OAuth'
get:
operationId: GetApps
summary: List applications
description: Retrieve a list of applications.
x-authenticated: true
tags:
- Apps
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
collection:
$ref: '#/components/schemas/OAuth'
/auth:
post:
operationId: PostAuth
summary: Authenticate a User
x-authenticated: false
description: Logs a User in and authorizes them to manage Store settings.
parameters: []
tags:
- Auth
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
user:
$ref: '#/components/schemas/user'
requestBody:
content:
application/json:
schema:
type: object
required:
- email
- password
properties:
email:
type: string
description: The User's email.
password:
type: string
description: The User's password.
get:
operationId: GetAuth
summary: Get Session
x-authenticated: true
description: Gets the currently logged in User.
tags:
- Auth
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
user:
$ref: '#/components/schemas/user'
'/batch-jobs/{id}/cancel':
post:
operationId: PostBatchJobsBatchJobCancel
summary: Marks a batch job as canceled
description: Marks a batch job as canceled
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the batch job.
schema:
type: string
tags:
- Batch Job
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
batch_job:
$ref: '#/components/schemas/batch_job'
'/batch-jobs/{id}/confirm':
post:
operationId: PostBatchJobsBatchJobConfirmProcessing
summary: Confirm a batch job
description: Confirms that a previously requested batch job should be executed.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the batch job.
schema:
type: string
tags:
- Batch Job
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
batch_job:
$ref: '#/components/schemas/batch_job'
/batch-jobs:
post:
operationId: PostBatchJobs
summary: Create a Batch Job
description: Creates a Batch Job.
x-authenticated: true
parameters: []
tags:
- Batch Job
responses:
'201':
description: OK
content:
application/json:
schema:
properties:
batch_job:
$ref: '#/components/schemas/batch_job'
requestBody:
content:
application/json:
schema:
type: object
required:
- type
- context
- dry_run
properties:
type:
type: string
description: The type of batch job to start.
context:
type: string
description: >-
Additional infomration regarding the batch to be used for
processing.
dry_run:
type: boolean
description: >-
Set a batch job in dry_run mode to get some information on
what will be done without applying any modifications.
get:
operationId: GetBatchJobs
summary: List Batch Jobs
description: Retrieve a list of Batch Jobs.
x-authenticated: true
parameters:
- in: query
name: limit
description: The number of collections to return.
schema:
type: string
- in: query
name: offset
description: The offset of collections to return.
schema:
type: string
- in: query
name: type
style: form
explode: false
description: Filter by the batch type
schema:
type: array
items:
type: string
- in: query
name: confirmed_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was confirmed, i.e.
less than, greater than etc.
schema:
type: object
nullable: true
- in: query
name: pre_processed_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was pre processed,
i.e. less than, greater than etc.
schema:
type: object
nullable: true
- in: query
name: completed_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was completed, i.e.
less than, greater than etc.
schema:
type: object
nullable: true
- in: query
name: failed_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was failed, i.e. less
than, greater than etc.
schema:
type: object
nullable: true
- in: query
name: canceled_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was canceled, i.e.
less than, greater than etc.
schema:
type: object
nullable: true
- in: query
name: order
description: Order used when retrieving batch jobs
schema:
type: string
- in: query
name: deleted_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was deleted, i.e.
less than, greater than etc.
schema:
type: object
nullable: true
- in: query
name: created_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was created, i.e.
less than, greater than etc.
schema:
type: object
nullable: true
- in: query
name: updated_at
style: form
explode: false
description: >-
Date comparison for when resulting collections was updated, i.e.
less than, greater than etc.
schema:
type: object
nullable: true
tags:
- Batch Job
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
batch_job:
$ref: '#/components/schemas/batch_job'
'/batch-jobs/{id}':
get:
operationId: GetBatchJobsBatchJob
summary: Retrieve a Batch Job
description: Retrieves a Batch Job.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Batch Job
schema:
type: string
tags:
- Batch Job
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
batch_job:
$ref: '#/components/schemas/batch_job'
'/collections/{id}/products/batch':
post:
operationId: PostProductsToCollection
summary: Updates products associated with a Product Collection
description: Updates products associated with a Product Collection
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Collection.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
product_ids:
description: An array of Product IDs to add to the Product Collection.
type: array
items:
properties:
id:
description: The ID of a Product to add to the Product Collection.
type: string
tags:
- Collection
responses:
'200':
description: OK
delete:
operationId: DeleteProductsFromCollection
summary: Removes products associated with a Product Collection
description: Removes products associated with a Product Collection
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Collection.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
product_ids:
description: >-
An array of Product IDs to remove from the Product
Collection.
type: array
items:
properties:
id:
description: >-
The ID of a Product to remove from the Product
Collection.
type: string
tags:
- Collection
responses:
'200':
description: OK
/collections:
post:
operationId: PostCollections
summary: Create a Product Collection
description: Creates a Product Collection.
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- title
properties:
title:
type: string
description: The title to identify the Collection by.
handle:
type: string
description: >-
An optional handle to be used in slugs, if none is provided
we will kebab-case the title.
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Collection
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
collection:
$ref: '#/components/schemas/product_collection'
get:
operationId: GetCollections
summary: List Product Collections
description: Retrieve a list of Product Collection.
x-authenticated: true
parameters:
- in: query
name: limit
description: The number of collections to return.
schema:
type: string
- in: query
name: offset
description: The offset of collections to return.
schema:
type: string
- in: query
name: title
description: The title of collections to return.
schema:
type: string
- in: query
name: handle
description: The handle of collections to return.
schema:
type: string
- in: query
name: deleted_at
description: >-
Date comparison for when resulting collections was deleted, i.e.
less than, greater than etc.
schema:
type: object
- in: query
name: created_at
description: >-
Date comparison for when resulting collections was created, i.e.
less than, greater than etc.
schema:
type: object
- in: query
name: updated_at
description: >-
Date comparison for when resulting collections was updated, i.e.
less than, greater than etc.
schema:
type: object
tags:
- Collection
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
collection:
$ref: '#/components/schemas/product_collection'
'/collections/{id}':
delete:
operationId: DeleteCollectionsCollection
summary: Delete a Product Collection
description: Deletes a Product Collection.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Collection.
schema:
type: string
tags:
- Collection
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Collection
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetCollectionsCollection
summary: Retrieve a Product Collection
description: Retrieves a Product Collection.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product Collection
schema:
type: string
tags:
- Collection
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
collection:
$ref: '#/components/schemas/product_collection'
post:
operationId: PostCollectionsCollection
summary: Update a Product Collection
description: Updates a Product Collection.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Collection.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
title:
type: string
description: The title to identify the Collection by.
handle:
type: string
description: >-
An optional handle to be used in slugs, if none is provided
we will kebab-case the title.
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Collection
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
collection:
$ref: '#/components/schemas/product_collection'
'/customer-groups/{id}/customers/batch':
post:
operationId: PostCustomerGroupsGroupCustomersBatch
summary: 'Add a list of customers to a customer group '
description: 'Adds a list of customers, represented by id''s, to a customer group.'
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the customer group.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
customers:
description: The ids of the customers to add
type: array
items:
required:
- id
properties:
id:
description: Id of the customer
type: string
tags:
- CustomerGroup
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customerGroup:
$ref: '#/components/schemas/customer_group'
delete:
operationId: DeleteCustomerGroupsGroupCustomerBatch
summary: 'Remove a list of customers from a customer group '
description: 'Removes a list of customers, represented by id''s, from a customer group.'
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the customer group.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
customers:
description: The ids of the customers to remove
type: array
items:
required:
- id
properties:
id:
description: Id of the customer
type: string
tags:
- CustomerGroup
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customerGroup:
$ref: '#/components/schemas/customer_group'
/customer-groups:
post:
operationId: PostCustomerGroups
summary: Create a CustomerGroup
description: Creates a CustomerGroup.
x-authenticated: true
parameters: []
tags:
- CustomerGroup
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer_group:
$ref: '#/components/schemas/customer_group'
requestBody:
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: Name of the customer group
metadata:
type: object
description: Metadata for the customer.
get:
operationId: GetCustomerGroups
summary: Retrieve a list of customer groups
description: Retrieve a list of customer groups.
x-authenticated: true
parameters:
- in: query
name: q
description: Query used for searching user group names.
schema:
type: string
- in: query
name: offset
description: How many groups to skip in the result.
schema:
type: string
- in: query
name: id
description: Ids of the groups to search for.
schema:
type: string
- in: query
name: order
description: to retrieve customer groups in.
schema:
type: string
- in: query
name: created_at
description: >-
Date comparison for when resulting customer group was created, i.e.
less than, greater than etc.
schema:
type: object
- in: query
name: updated_at
description: >-
Date comparison for when resulting ustomer group was updated, i.e.
less than, greater than etc.
schema:
type: object
- in: query
name: limit
description: Limit the number of customer groups returned.
schema:
type: string
- in: query
name: expand
description: >-
(Comma separated) Which fields should be expanded in each customer
groups of the result.
schema:
type: string
tags:
- CustomerGroup
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customerGroup:
$ref: '#/components/schemas/customer_group'
'/customer-groups/{id}':
delete:
operationId: DeleteCustomerGroupsCustomerGroup
summary: Delete a CustomerGroup
description: Deletes a CustomerGroup.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Customer Group
schema:
type: string
tags:
- CustomerGroup
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted customer group.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetCustomerGroupsGroup
summary: Retrieve a CustomerGroup
description: Retrieves a Customer Group.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Customer Group.
schema:
type: string
tags:
- CustomerGroup
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer_group:
$ref: '#/components/schemas/customer_group'
post:
operationId: PostCustomerGroupsGroup
summary: Update a CustomerGroup
description: Update a CustomerGroup.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the customer group.
schema:
type: string
tags:
- CustomerGroup
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer_group:
$ref: '#/components/schemas/customer_group'
requestBody:
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: Name of the customer group
metadata:
type: object
description: Metadata for the customer.
'/customer-groups/{id}/customers':
get:
operationId: GetCustomerGroupsGroupCustomers
summary: List Customers
description: Retrieves a list of Customers.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the customer group.
schema:
type: string
tags:
- Customer
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer:
$ref: '#/components/schemas/customer'
/customers:
post:
operationId: PostCustomers
summary: Create a Customer
description: Creates a Customer.
x-authenticated: true
parameters: []
tags:
- Customer
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer:
$ref: '#/components/schemas/customer'
requestBody:
content:
application/json:
schema:
type: object
required:
- email
- first_name
- last_name
properties:
email:
type: string
description: The Customer's email address.
first_name:
type: string
description: The Customer's first name.
last_name:
type: string
description: The Customer's last name.
phone:
type: string
description: The Customer's phone number.
metadata:
type: object
description: Metadata for the customer.
get:
operationId: GetCustomers
summary: List Customers
description: Retrieves a list of Customers.
x-authenticated: true
tags:
- Customer
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer:
$ref: '#/components/schemas/customer'
'/customers/{id}':
get:
operationId: GetCustomersCustomer
summary: Retrieve a Customer
description: Retrieves a Customer.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Customer.
schema:
type: string
tags:
- Customer
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer:
$ref: '#/components/schemas/customer'
post:
operationId: PostCustomersCustomer
summary: Update a Customer
description: Updates a Customer.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Customer.
schema:
type: string
- in: query
name: expand
style: form
explode: false
schema:
type: array
items:
type: string
requestBody:
content:
application/json:
schema:
properties:
email:
type: string
description: >-
The Customer's email. Only providable if user not
registered.
first_name:
type: string
description: The Customer's first name.
last_name:
type: string
description: The Customer's last name.
phone:
type: string
description: The Customer's phone number.
password:
type: string
description: The Customer's password.
groups:
type: array
items:
required:
- id
properties:
id:
description: The id of a customer group
type: string
description: A list of customer groups to which the customer belongs.
metadata:
type: object
description: Metadata for the customer.
tags:
- Customer
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customer:
$ref: '#/components/schemas/customer'
'/discounts/{id}/regions/{region_id}':
post:
operationId: PostDiscountsDiscountRegionsRegion
summary: Adds Region availability
description: Adds a Region to the list of Regions that a Discount can be used in.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Discount.
schema:
type: string
- in: path
name: region_id
required: true
description: The id of the Region.
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
delete:
operationId: DeleteDiscountsDiscountRegionsRegion
summary: Remove Region availability
x-authenticated: true
description: >-
Removes a Region from the list of Regions that a Discount can be used
in.
parameters:
- in: path
name: id
required: true
description: The id of the Discount.
schema:
type: string
- in: path
name: region_id
required: true
description: The id of the Region.
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
'/discounts/{discount_id}/conditions':
post:
operationId: PostDiscountsDiscountConditions
summary: Creates a DiscountCondition
x-authenticated: true
parameters:
- in: path
name: discount_id
required: true
description: The id of the Product.
schema:
type: string
- in: query
name: expand
description: >-
(Comma separated) Which fields should be expanded in each product of
the result.
schema:
type: string
- in: query
name: fields
description: >-
(Comma separated) Which fields should be included in each product of
the result.
schema:
type: string
description: Creates a DiscountCondition
requestBody:
content:
application/json:
schema:
properties:
operator:
description: Operator of the condition
type: string
items:
properties:
products:
type: array
description: list of products
product_types:
type: array
description: list of product types
product_collections:
type: array
description: list of product collections
product_tags:
type: array
description: list of product tags
customer_groups:
type: array
description: list of customer_groups
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
/discounts:
post:
operationId: PostDiscounts
summary: Creates a Discount
x-authenticated: true
description: >-
Creates a Discount with a given set of rules that define how the
Discount behaves.
requestBody:
content:
application/json:
schema:
required:
- code
- rule
properties:
code:
type: string
description: A unique code that will be used to redeem the Discount
is_dynamic:
type: string
description: >-
Whether the Discount should have multiple instances of
itself, each with a different code. This can be useful for
automatically generated codes that all have to follow a
common set of rules.
rule:
description: The Discount Rule that defines how Discounts are calculated
oneOf:
- $ref: '#/components/schemas/discount_rule'
is_disabled:
type: boolean
description: >-
Whether the Discount code is disabled on creation. You will
have to enable it later to make it available to Customers.
starts_at:
type: string
format: date-time
description: The time at which the Discount should be available.
ends_at:
type: string
format: date-time
description: >-
The time at which the Discount should no longer be
available.
regions:
description: >-
A list of Region ids representing the Regions in which the
Discount can be used.
type: array
items:
type: string
usage_limit:
type: number
description: Maximum times the discount can be used
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
get:
operationId: GetDiscounts
summary: List Discounts
x-authenticated: true
description: Retrieves a list of Discounts
parameters:
- in: query
name: q
description: Search query applied on results.
schema:
type: string
- in: query
name: is_dynamic
description: Return only dynamic discounts.
schema:
type: boolean
- in: query
name: is_disabled
description: Return only disabled discounts.
schema:
type: boolean
- in: query
name: limit
description: The number of items in the response
schema:
type: number
- in: query
name: offset
description: The offset of items in response
schema:
type: number
- in: query
name: expand
description: Comma separated list of relations to include in the results.
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
'/discounts/{id}/dynamic-codes':
post:
operationId: PostDiscountsDiscountDynamicCodes
summary: Create a dynamic Discount code
description: >-
Creates a unique code that can map to a parent Discount. This is useful
if you want to automatically generate codes with the same behaviour.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Discount to create the dynamic code from."
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
requestBody:
content:
application/json:
schema:
type: object
required:
- code
- usage_limit
properties:
code:
type: string
description: The unique code that will be used to redeem the Discount.
usage_limit:
type: number
description: amount of times the discount can be applied
metadata:
type: object
description: >-
An optional set of key-value paris to hold additional
information.
'/discounts/{discount_id}/conditions/{condition_id}':
delete:
operationId: DeleteDiscountsDiscountConditionsCondition
summary: Delete a DiscountCondition
description: Deletes a DiscountCondition
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Discount
schema:
type: string
- in: path
name: condition_id
required: true
description: The id of the DiscountCondition
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted DiscountCondition
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
discount:
type: object
description: The Discount to which the condition used to belong
get:
operationId: GetDiscountsDiscountConditionsCondition
summary: Gets a DiscountCondition
x-authenticated: true
parameters:
- in: path
name: discount_id
required: true
description: The id of the Discount.
schema:
type: string
- in: path
name: condition_id
required: true
description: The id of the DiscountCondition.
schema:
type: string
- in: query
name: expand
description: Comma separated list of relations to include in the results.
schema:
type: string
- in: query
name: fields
description: Comma separated list of fields to include in the results.
schema:
type: string
description: Gets a DiscountCondition
tags:
- DiscountCondition
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount_condition:
$ref: '#/components/schemas/discount_condition'
post:
operationId: PostDiscountsDiscountConditionsCondition
summary: Updates a DiscountCondition
x-authenticated: true
parameters:
- in: path
name: discount_id
required: true
description: The id of the Product.
schema:
type: string
- in: query
name: expand
description: >-
(Comma separated) Which fields should be expanded in each product of
the result.
schema:
type: string
- in: query
name: fields
description: >-
(Comma separated) Which fields should be included in each product of
the result.
schema:
type: string
description: Updates a DiscountCondition
requestBody:
content:
application/json:
schema:
required:
- id
properties:
items:
properties:
products:
type: array
description: list of products
product_types:
type: array
description: list of product types
product_collections:
type: array
description: list of product collections
product_tags:
type: array
description: list of product tags
customer_groups:
type: array
description: list of customer_groups
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
'/discounts/{id}':
delete:
operationId: DeleteDiscountsDiscount
summary: Delete a Discount
description: Deletes a Discount.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Discount
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Discount
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetDiscountsDiscount
summary: Retrieve a Discount
description: Retrieves a Discount
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Discount
schema:
type: string
- in: query
name: expand
description: Comma separated list of relations to include in the results.
schema:
type: string
- in: query
name: fields
description: Comma separated list of fields to include in the results.
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
post:
operationId: PostDiscountsDiscount
summary: Update a Discount
description: >-
Updates a Discount with a given set of rules that define how the
Discount behaves.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Discount.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
code:
type: string
description: A unique code that will be used to redeem the Discount
rule:
description: The Discount Rule that defines how Discounts are calculated
oneOf:
- $ref: '#/components/schemas/discount_rule'
is_disabled:
type: boolean
description: >-
Whether the Discount code is disabled on creation. You will
have to enable it later to make it available to Customers.
starts_at:
type: string
format: date-time
description: The time at which the Discount should be available.
ends_at:
type: string
format: date-time
description: >-
The time at which the Discount should no longer be
available.
regions:
description: >-
A list of Region ids representing the Regions in which the
Discount can be used.
type: array
items:
type: string
metadata:
description: An object containing metadata of the discount
type: object
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
'/discounts/{id}/dynamic-codes/{code}':
delete:
operationId: DeleteDiscountsDiscountDynamicCodesCode
summary: Delete a dynamic code
description: Deletes a dynamic code from a Discount.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Discount
schema:
type: string
- in: path
name: code
required: true
description: The id of the Discount
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
'/discounts/code/{code}':
get:
operationId: GetDiscountsDiscountCode
summary: Retrieve a Discount by code
description: Retrieves a Discount by its discount code
x-authenticated: true
parameters:
- in: path
name: code
required: true
description: The code of the Discount
schema:
type: string
tags:
- Discount
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
discount:
$ref: '#/components/schemas/discount'
/draft-orders:
post:
operationId: PostDraftOrders
summary: Create a Draft Order
description: Creates a Draft Order
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- email
- items
- region_id
- shipping_methods
properties:
status:
description: The status of the draft order
type: string
email:
description: The email of the customer of the draft order
type: string
billing_address:
description: The Address to be used for billing purposes.
anyOf:
- $ref: '#/components/schemas/address'
shipping_address:
description: The Address to be used for shipping.
anyOf:
- $ref: '#/components/schemas/address'
items:
description: The Line Items that have been received.
type: array
items:
properties:
variant_id:
description: >-
The id of the Product Variant to generate the Line
Item from.
type: string
unit_price:
description: The potential custom price of the item.
type: integer
title:
description: The potential custom title of the item.
type: string
quantity:
description: The quantity of the Line Item.
type: integer
metadata:
description: >-
The optional key-value map with additional details
about the Line Item.
type: object
region_id:
description: The id of the region for the draft order
type: string
discounts:
description: The discounts to add on the draft order
type: array
items:
properties:
code:
description: The code of the discount to apply
type: string
customer_id:
description: The id of the customer to add on the draft order
type: string
no_notification_order:
description: >-
An optional flag passed to the resulting order to determine
use of notifications.
type: boolean
shipping_methods:
description: The shipping methods for the draft order
type: array
items:
properties:
option_id:
description: The id of the shipping option in use
type: string
data:
description: >-
The optional additional data needed for the shipping
method
type: object
price:
description: The potential custom price of the shipping
type: integer
metadata:
description: >-
The optional key-value map with additional details about the
Draft Order.
type: object
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
get:
operationId: GetDraftOrders
summary: List Draft Orders
description: Retrieves an list of Draft Orders
x-authenticated: true
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
'/draft-orders/{id}/line-items':
post:
operationId: PostDraftOrdersDraftOrderLineItems
summary: Create a Line Item for Draft Order
description: Creates a Line Item for the Draft Order
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Draft Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- quantity
properties:
variant_id:
description: >-
The id of the Product Variant to generate the Line Item
from.
type: string
unit_price:
description: The potential custom price of the item.
type: integer
title:
description: The potential custom title of the item.
type: string
quantity:
description: The quantity of the Line Item.
type: integer
metadata:
description: >-
The optional key-value map with additional details about the
Line Item.
type: object
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
'/draft-orders/{id}':
delete:
operationId: DeleteDraftOrdersDraftOrder
summary: Delete a Draft Order
description: Deletes a Draft Order
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Draft Order.
schema:
type: string
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Draft Order.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetDraftOrdersDraftOrder
summary: Retrieve a Draft Order
description: Retrieves a Draft Order.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Draft Order.
schema:
type: string
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
'/draft-orders/{id}/line-items/{line_id}':
delete:
operationId: DeleteDraftOrdersDraftOrderLineItemsItem
summary: Delete a Line Item
description: Removes a Line Item from a Draft Order.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Draft Order.
schema:
type: string
- in: path
name: line_id
required: true
description: The id of the Draft Order.
schema:
type: string
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
post:
operationId: PostDraftOrdersDraftOrderLineItemsItem
summary: Update a Line Item for a Draft Order
description: Updates a Line Item for a Draft Order
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Draft Order.
schema:
type: string
- in: path
name: line_id
required: true
description: The id of the Line Item.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
unit_price:
description: The potential custom price of the item.
type: integer
title:
description: The potential custom title of the item.
type: string
quantity:
description: The quantity of the Line Item.
type: integer
metadata:
description: >-
The optional key-value map with additional details about the
Line Item.
type: object
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
'/draft-orders/{id}/register-payment':
post:
summary: Registers a payment for a Draft Order
operationId: PostDraftOrdersDraftOrderRegisterPayment
description: Registers a payment for a Draft Order.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The Draft Order id.
schema:
type: string
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
'/admin/draft-orders/{id}':
post:
operationId: PostDraftOrdersDraftOrder
summary: Update a Draft Order"
description: Updates a Draft Order.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Draft Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
region_id:
type: string
description: The id of the Region to create the Draft Order in.
email:
type: string
description: An email to be used on the Draft Order.
billing_address:
description: The Address to be used for billing purposes.
anyOf:
- $ref: '#/components/schemas/address'
shipping_address:
description: The Address to be used for shipping.
anyOf:
- $ref: '#/components/schemas/address'
discounts:
description: An array of Discount codes to add to the Draft Order.
type: array
items:
properties:
code:
description: The code that a Discount is identifed by.
type: string
no_notification_order:
description: >-
An optional flag passed to the resulting order to determine
use of notifications.
type: boolean
customer_id:
description: The id of the Customer to associate the Draft Order with.
type: string
tags:
- Draft Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
draft_order:
$ref: '#/components/schemas/draft-order'
/gift-cards:
post:
operationId: PostGiftCards
summary: Create a Gift Card
description: >-
Creates a Gift Card that can redeemed by its unique code. The Gift Card
is only valid within 1 region.
x-authenticated: true
requestBody:
content:
application/json:
schema:
properties:
value:
type: integer
description: >-
The value (excluding VAT) that the Gift Card should
represent.
is_disabled:
type: boolean
description: >-
Whether the Gift Card is disabled on creation. You will have
to enable it later to make it available to Customers.
ends_at:
type: string
format: date-time
description: >-
The time at which the Gift Card should no longer be
available.
region_id:
description: The id of the Region in which the Gift Card can be used.
type: array
items:
type: string
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Gift Card
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
gift_card:
$ref: '#/components/schemas/gift_card'
get:
operationId: GetGiftCards
summary: List Gift Cards
description: Retrieves a list of Gift Cards.
x-authenticated: true
tags:
- Gift Card
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
gift_cards:
type: array
items:
$ref: '#/components/schemas/gift_card'
'/gift-cards/{id}':
delete:
operationId: DeleteGiftCardsGiftCard
summary: Delete a Gift Card
description: Deletes a Gift Card
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Gift Card to delete.
schema:
type: string
tags:
- Gift Card
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Gift Card
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetGiftCardsGiftCard
summary: Retrieve a Gift Card
description: Retrieves a Gift Card.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Gift Card.
schema:
type: string
tags:
- Gift Card
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
gift_card:
$ref: '#/components/schemas/gift_card'
post:
operationId: PostGiftCardsGiftCard
summary: Create a Gift Card
description: >-
Creates a Gift Card that can redeemed by its unique code. The Gift Card
is only valid within 1 region.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Gift Card.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
balance:
type: integer
description: >-
The value (excluding VAT) that the Gift Card should
represent.
is_disabled:
type: boolean
description: >-
Whether the Gift Card is disabled on creation. You will have
to enable it later to make it available to Customers.
ends_at:
type: string
format: date-time
description: >-
The time at which the Gift Card should no longer be
available.
region_id:
description: The id of the Region in which the Gift Card can be used.
type: array
items:
type: string
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Gift Card
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
gift_card:
$ref: '#/components/schemas/gift_card'
/invites/accept:
post:
operationId: PostInvitesInviteAccept
summary: Accept an Invite
description: Accepts an Invite and creates a corresponding user
requestBody:
content:
application/json:
schema:
required:
- token
- user
properties:
token:
description: The invite token provided by the admin.
type: string
user:
description: The User to create.
type: object
required:
- first_name
- last_name
- password
properties:
first_name:
type: string
description: the first name of the User
last_name:
type: string
description: the last name of the User
password:
description: The desired password for the User
type: string
tags:
- Invites
responses:
'200':
description: OK
/invites:
post:
operationId: PostInvites
summary: Create an Invite
description: Creates an Invite and triggers an 'invite' created event
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- user
- role
properties:
user:
description: The email for the user to be created.
type: string
role:
description: The role of the user to be created.
type: string
tags:
- Invites
responses:
'200':
description: OK
get:
operationId: GetInvites
summary: Lists all Invites
description: Lists all Invites
x-authenticated: true
tags:
- Invites
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
invites:
type: array
items:
$ref: '#/components/schemas/invite'
'/invites/{invite_id}':
delete:
operationId: DeleteInvitesInvite
summary: Create an Invite
description: Creates an Invite and triggers an 'invite' created event
x-authenticated: true
parameters:
- in: path
name: invite_id
required: true
description: The id of the Invite
schema:
type: string
tags:
- Invites
responses:
'200':
description: OK
'/invites/{invite_id}/resend':
post:
operationId: PostInvitesInviteResend
summary: Resend an Invite
description: Resends an Invite by triggering the 'invite' created event again
x-authenticated: true
parameters:
- in: path
name: invite_id
required: true
description: The id of the Invite
schema:
type: string
tags:
- Invites
responses:
'200':
description: OK
/notes:
post:
operationId: PostNotes
summary: Creates a Note
description: Creates a Note which can be associated with any resource as required.
x-authenticated: true
requestBody:
content:
application/json:
schema:
properties:
resource_id:
type: string
description: The id of the resource which the Note relates to.
resource_type:
type: string
description: The type of resource which the Note relates to.
value:
type: string
description: The content of the Note to create.
tags:
- Note
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
note:
$ref: '#/components/schemas/note'
get:
operationId: GetNotes
summary: List Notes
x-authenticated: true
description: Retrieves a list of notes
parameters:
- in: path
name: limit
required: true
description: The number of notes to get
schema:
type: number
default: ''
- in: path
name: offset
required: true
description: The offset at which to get notes
schema:
type: number
default: ''
- in: path
name: resource_id
required: true
description: The id which the notes belongs to
schema:
type: string
default: ''
tags:
- Note
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
notes:
type: array
items:
$ref: '#/components/schemas/note'
'/notes/{id}':
delete:
operationId: DeleteNotesNote
summary: Deletes a Note
description: Deletes a Note.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Note to delete.
schema:
type: string
tags:
- Note
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Note.
deleted:
type: boolean
description: Whether or not the Note was deleted.
get:
operationId: GetNotesNote
summary: Get Note
description: Retrieves a single note using its id
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the note to retrieve.
schema:
type: string
tags:
- Note
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
note:
$ref: '#/components/schemas/note'
post:
operationId: PostNotesNote
summary: Updates a Note
x-authenticated: true
description: Updates a Note associated with some resource
parameters:
- in: path
name: id
required: true
description: The id of the Note to update
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- value
properties:
value:
type: string
description: The updated description of the Note.
tags:
- Note
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
note:
$ref: '#/components/schemas/note'
/notifications:
get:
operationId: GetNotifications
summary: List Notifications
description: Retrieves a list of Notifications.
x-authenticated: true
parameters:
- in: query
name: offset
description: >-
The number of notifications to skip before starting to collect the
notifications set
schema:
type: integer
default: 0
- in: query
name: limit
description: The number of notifications to return
schema:
type: integer
default: 50
- in: query
name: fields
description: The fields to include in the result set
schema:
type: string
- in: query
name: expand
description: The fields to populate
schema:
type: string
- in: query
name: event_name
schema:
type: string
- in: query
name: resource_type
schema:
type: string
- in: query
name: resource_id
schema:
type: string
- in: query
name: to
schema:
type: string
- in: query
name: include_resends
description: Whether the result set should include resent notifications or not
schema:
type: boolean
tags:
- Notification
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
notifications:
type: array
items:
$ref: '#/components/schemas/notification'
'/notifications/{id}/resend':
post:
operationId: PostNotificationsNotificationResend
summary: Resend Notification
description: >-
Resends a previously sent notifications, with the same data but
optionally to a different address
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Notification
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
to:
description: >-
The address or user identifier that the Notification was
sent to
type: string
tags:
- Notification
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
notification:
$ref: '#/components/schemas/notification'
'/orders/{id}/shipping-methods':
post:
operationId: PostOrdersOrderShippingMethods
summary: Add a Shipping Method
description: >-
Adds a Shipping Method to an Order. If another Shipping Method exists
with the same Shipping Profile, the previous Shipping Method will be
replaced.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
requestBody:
content:
application/json:
schema:
type: object
required:
- price
- option_id
- data
properties:
price:
type: integer
description: >-
The price (excluding VAT) that should be charged for the
Shipping Method
option_id:
type: string
description: >-
The id of the Shipping Option to create the Shipping Method
from.
data:
type: object
description: >-
The data required for the Shipping Option to create a
Shipping Method. This will depend on the Fulfillment
Provider.
'/orders/{id}/archive':
post:
operationId: PostOrdersOrderArchive
summary: Archive order
description: Archives the order with the given id.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/claims/{claim_id}/cancel':
post:
operationId: PostOrdersClaimCancel
summary: Cancels a Claim
description: Cancels a Claim
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: claim_id
required: true
description: The id of the Claim.
schema:
type: string
tags:
- Claim
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/claim_order'
'/orders/{id}/claims/{claim_id}/fulfillments/{fulfillment_id}/cancel':
post:
operationId: PostOrdersClaimFulfillmentsCancel
summary: Cancels a fulfilmment related to a Claim
description: Registers a Fulfillment as canceled.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order which the Claim relates to.
schema:
type: string
- in: path
name: claim_id
required: true
description: The id of the Claim which the Fulfillment relates to.
schema:
type: string
- in: path
name: fulfillment_id
required: true
description: The id of the Fulfillment.
schema:
type: string
tags:
- Fulfillment
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
fulfillment:
$ref: '#/components/schemas/fulfillment'
'/orders/{id}/swaps/{swap_id}/fulfillments/{fulfillment_id}/cancel':
post:
operationId: PostOrdersSwapFulfillmentsCancel
summary: Cancels a fulfilmment related to a Swap
description: Registers a Fulfillment as canceled.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order which the Swap relates to.
schema:
type: string
- in: path
name: swap_id
required: true
description: The id of the Swap which the Fulfillment relates to.
schema:
type: string
- in: path
name: fulfillment_id
required: true
description: The id of the Fulfillment.
schema:
type: string
tags:
- Fulfillment
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
fulfillment:
$ref: '#/components/schemas/fulfillment'
'/orders/{id}/fulfillments/{fulfillment_id}/cancel':
post:
operationId: PostOrdersOrderFulfillmentsCancel
summary: Cancels a fulfilmment
description: Registers a Fulfillment as canceled.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order which the Fulfillment relates to.
schema:
type: string
- in: path
name: fulfillment_id
required: true
description: The id of the Fulfillment
schema:
type: string
tags:
- Fulfillment
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
fulfillment:
$ref: '#/components/schemas/fulfillment'
'/orders/{id}/cancel':
post:
operationId: PostOrdersOrderCancel
summary: Cancel an Order
description: >-
Registers an Order as canceled. This triggers a flow that will cancel
any created Fulfillments and Payments, may fail if the Payment or
Fulfillment Provider is unable to cancel the Payment/Fulfillment.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/swaps/{swap_id}/cancel':
post:
operationId: PostOrdersSwapCancel
summary: Cancels a Swap
description: Cancels a Swap
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: swap_id
required: true
description: The id of the Swap.
schema:
type: string
tags:
- Swap
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/swap'
'/orders/{id}/capture':
post:
operationId: PostOrdersOrderCapture
summary: Capture an Order
description: Captures all the Payments associated with an Order.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/complete':
post:
operationId: PostOrdersOrderComplete
summary: Complete an Order
description: Completes an Order
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/claims/{claim_id}/shipments':
post:
operationId: PostOrdersOrderClaimsClaimShipments
summary: Create Claim Shipment
description: Registers a Claim Fulfillment as shipped.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: claim_id
required: true
description: The id of the Claim.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- fulfillment_id
properties:
fulfillment_id:
description: The id of the Fulfillment.
type: string
tracking_numbers:
description: The tracking numbers for the shipment.
type: array
items:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/order/{id}/claims':
post:
operationId: PostOrdersOrderClaims
summary: Create a Claim
description: Creates a Claim.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- type
- claim_items
properties:
type:
description: >-
The type of the Claim. This will determine how the Claim is
treated: `replace` Claims will result in a Fulfillment with
new items being created, while a `refund` Claim will refund
the amount paid for the claimed items.
type: string
enum:
- replace
- refund
claim_items:
description: The Claim Items that the Claim will consist of.
type: array
items:
properties:
item_id:
description: The id of the Line Item that will be claimed.
type: string
quantity:
description: The number of items that will be returned
type: integer
note:
description: >-
Short text describing the Claim Item in further
detail.
type: string
reason:
description: The reason for the Claim
type: string
enum:
- missing_item
- wrong_item
- production_failure
- other
tags:
description: A list o tags to add to the Claim Item
type: array
items:
type: string
images:
description: >-
A list of image URL's that will be associated with the
Claim
items:
type: string
return_shipping:
description: >-
Optional details for the Return Shipping Method, if the
items are to be sent back.
type: object
properties:
option_id:
type: string
description: >-
The id of the Shipping Option to create the Shipping
Method from.
price:
type: integer
description: The price to charge for the Shipping Method.
additional_items:
description: >-
The new items to send to the Customer when the Claim type is
Replace.
type: array
items:
properties:
variant_id:
description: The id of the Product Variant to ship.
type: string
quantity:
description: The quantity of the Product Variant to ship.
type: integer
shipping_methods:
description: The Shipping Methods to send the additional Line Items with.
type: array
items:
properties:
id:
description: The id of an existing Shipping Method
type: string
option_id:
description: >-
The id of the Shipping Option to create a Shipping
Method from
type: string
price:
description: The price to charge for the Shipping Method
type: integer
shipping_address:
type: object
description: >-
An optional shipping address to send the claim to. Defaults
to the parent order's shipping address
refund_amount:
description: >-
The amount to refund the Customer when the Claim type is
`refund`.
type: integer
no_notification:
description: >-
If set to true no notification will be send related to this
Claim.
type: boolean
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/fulfillments':
post:
operationId: PostOrdersOrderFulfillments
summary: Create a Fulfillment
description: >-
Creates a Fulfillment of an Order - will notify Fulfillment Providers to
prepare a shipment.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- items
properties:
items:
description: The Line Items to include in the Fulfillment.
type: array
items:
properties:
item_id:
description: The id of Line Item to fulfill.
type: string
quantity:
description: The quantity of the Line Item to fulfill.
type: integer
no_notification:
description: >-
If set to true no notification will be send related to this
Swap.
type: boolean
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
/orders:
post:
operationId: PostOrders
summary: Create an order
description: Creates and order
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- email
- billing_address
- shipping_address
- items
- region
- customer_id
- payment_method
- shipping_method
properties:
status:
description: status of the order
type: string
email:
description: the email for the order
type: string
billing_address:
description: Billing address
anyOf:
- $ref: '#/components/schemas/address'
shipping_address:
description: Shipping address
anyOf:
- $ref: '#/components/schemas/address'
items:
description: The Line Items for the order
type: array
items:
$ref: '#/components/schemas/line_item'
region:
description: Region where the order belongs
type: string
discounts:
description: Discounts applied to the order
type: array
items:
$ref: '#/components/schemas/line_item'
customer_id:
description: id of the customer
type: string
payment_method:
description: payment method chosen for the order
type: object
required:
- provider_id
properties:
provider_id:
type: string
description: id of the payment provider
data:
description: Data relevant for the given payment method
type: object
shipping_method:
description: The Shipping Method used for shipping the order.
type: object
required:
- provider_id
- profile_id
- price
properties:
provider_id:
type: string
description: The id of the shipping provider.
profile_id:
type: string
description: The id of the shipping profile.
price:
type: integer
description: The price of the shipping.
data:
type: object
description: Data relevant to the specific shipping method.
items:
type: array
items:
$ref: '#/components/schemas/line_item'
description: Items to ship
no_notification:
description: >-
A flag to indicate if no notifications should be emitted
related to the updated order.
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
get:
operationId: GetOrders
summary: List Orders
description: Retrieves a list of Orders
x-authenticated: true
parameters:
- in: query
name: q
description: Query used for searching orders.
schema:
type: string
- in: query
name: id
description: Id of the order to search for.
schema:
type: string
- in: query
name: status
style: form
explode: false
description: Status to search for
schema:
type: array
items:
type: string
- in: query
name: fulfillment_status
description: Fulfillment status to search for.
schema:
type: string
- in: query
name: payment_status
description: Payment status to search for.
schema:
type: string
- in: query
name: display_id
description: Display id to search for.
schema:
type: string
- in: query
name: cart_id
description: to search for.
schema:
type: string
- in: query
name: customer_id
description: to search for.
schema:
type: string
- in: query
name: email
description: to search for.
schema:
type: string
- in: query
name: region_id
description: to search for.
schema:
type: string
- in: query
name: currency_code
description: to search for.
schema:
type: string
- in: query
name: tax_rate
description: to search for.
schema:
type: string
- in: query
name: cancelled_at
description: >-
Date comparison for when resulting orders was cancelled, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: created_at
description: >-
Date comparison for when resulting orders was created, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: updated_at
description: >-
Date comparison for when resulting orders was updated, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: offset
description: How many orders to skip in the result.
schema:
type: string
- in: query
name: limit
description: Limit the number of orders returned.
schema:
type: string
- in: query
name: expand
description: >-
(Comma separated) Which fields should be expanded in each order of
the result.
schema:
type: string
- in: query
name: fields
description: >-
(Comma separated) Which fields should be included in each order of
the result.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
orders:
type: array
items:
$ref: '#/components/schemas/order'
'/orders/{id}/shipment':
post:
operationId: PostOrdersOrderShipment
summary: Create a Shipment
description: Registers a Fulfillment as shipped.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- fulfillment_id
properties:
fulfillment_id:
description: The id of the Fulfillment.
type: string
tracking_numbers:
description: The tracking numbers for the shipment.
type: array
items:
type: string
no_notification:
description: >-
If set to true no notification will be send related to this
Shipment.
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/swaps/{swap_id}/shipments':
post:
operationId: PostOrdersOrderSwapsSwapShipments
summary: Create Swap Shipment
description: Registers a Swap Fulfillment as shipped.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: swap_id
required: true
description: The id of the Swap.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- fulfillment_id
properties:
fulfillment_id:
description: The id of the Fulfillment.
type: string
tracking_numbers:
description: The tracking numbers for the shipment.
type: array
items:
type: string
no_notification:
description: >-
If set to true no notification will be send related to this
Claim.
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/order/{id}/swaps':
post:
operationId: PostOrdersOrderSwaps
summary: Create a Swap
description: >-
Creates a Swap. Swaps are used to handle Return of previously purchased
goods and Fulfillment of replacements simultaneously.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- return_items
properties:
return_items:
description: The Line Items to return as part of the Swap.
type: array
items:
required:
- item_id
- quantity
properties:
item_id:
description: The id of the Line Item that will be claimed.
type: string
quantity:
description: The number of items that will be returned
type: integer
return_shipping:
description: How the Swap will be returned.
type: object
properties:
option_id:
type: string
description: >-
The id of the Shipping Option to create the Shipping
Method from.
price:
type: integer
description: The price to charge for the Shipping Method.
additional_items:
description: The new items to send to the Customer.
type: array
items:
required:
- variant_id
- quantity
properties:
variant_id:
description: The id of the Product Variant to ship.
type: string
quantity:
description: The quantity of the Product Variant to ship.
type: integer
custom_shipping_options:
description: >-
The custom shipping options to potentially create a Shipping
Method from.
type: array
items:
required:
- option_id
- price
properties:
option_id:
description: >-
The id of the Shipping Option to override with a
custom price.
type: string
price:
description: The custom price of the Shipping Option.
type: integer
no_notification:
description: >-
If set to true no notification will be send related to this
Swap.
type: boolean
allow_backorder:
description: 'If true, swaps can be completed with items out of stock'
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/order/{id}/metadata/{key}':
delete:
operationId: DeleteOrdersOrderMetadataKey
summary: Delete Metadata
description: Deletes a metadata key.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: key
required: true
description: The metadata key.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/claims/{claim_id}/fulfillments':
post:
operationId: PostOrdersOrderClaimsClaimFulfillments
summary: Create a Claim Fulfillment
description: Creates a Fulfillment for a Claim.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: claim_id
required: true
description: The id of the Claim.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
no_notification:
description: >-
If set to true no notification will be send related to this
Claim.
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/swaps/{swap_id}/fulfillments':
post:
operationId: PostOrdersOrderSwapsSwapFulfillments
summary: Create a Swap Fulfillment
description: Creates a Fulfillment for a Swap.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: swap_id
required: true
description: The id of the Swap.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
no_notification:
description: >-
If set to true no notification will be send related to this
Claim.
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}':
get:
operationId: GetOrdersOrder
summary: Retrieve an Order
description: Retrieves an Order
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
post:
operationId: PostOrdersOrder
summary: Update an order
description: Updates and order
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
email:
description: the email for the order
type: string
billing_address:
description: Billing address
anyOf:
- $ref: '#/components/schemas/address'
shipping_address:
description: Shipping address
anyOf:
- $ref: '#/components/schemas/address'
items:
description: The Line Items for the order
type: array
items:
$ref: '#/components/schemas/line_item'
region:
description: Region where the order belongs
type: string
discounts:
description: Discounts applied to the order
type: array
items:
$ref: '#/components/schemas/line_item'
customer_id:
description: id of the customer
type: string
payment_method:
description: payment method chosen for the order
type: object
properties:
provider_id:
type: string
description: id of the payment provider
data:
description: Data relevant for the given payment method
type: object
shipping_method:
description: The Shipping Method used for shipping the order.
type: object
properties:
provider_id:
type: string
description: The id of the shipping provider.
profile_id:
type: string
description: The id of the shipping profile.
price:
type: integer
description: The price of the shipping.
data:
type: object
description: Data relevant to the specific shipping method.
items:
type: array
items:
$ref: '#/components/schemas/line_item'
description: Items to ship
no_notification:
description: >-
A flag to indicate if no notifications should be emitted
related to the updated order.
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/swaps/{swap_id}/process-payment':
post:
operationId: PostOrdersOrderSwapsSwapProcessPayment
summary: Process a Swap difference
description: >-
When there are differences between the returned and shipped Products in
a Swap, the difference must be processed. Either a Refund will be issued
or a Payment will be captured.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: swap_id
required: true
description: The id of the Swap.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/refunds':
post:
operationId: PostOrdersOrderRefunds
summary: Create a Refund
description: Issues a Refund.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- amount
- reason
properties:
amount:
description: The amount to refund.
type: integer
reason:
description: The reason for the Refund.
type: string
note:
description: A not with additional details about the Refund.
type: string
no_notification:
description: >-
If set to true no notification will be send related to this
Refund.
type: boolean
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/orders/{id}/returns':
post:
operationId: PostOrdersOrderReturns
summary: Request a Return
description: >-
Requests a Return. If applicable a return label will be created and
other plugins notified.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- items
properties:
items:
description: The Line Items that will be returned.
type: array
items:
properties:
item_id:
description: The id of the Line Item.
type: string
reason_id:
description: The id of the Return Reason to use.
type: string
note:
description: An optional note with information about the Return.
type: string
quantity:
description: The quantity of the Line Item.
type: integer
return_shipping:
description: >-
The Shipping Method to be used to handle the return
shipment.
type: object
properties:
option_id:
type: string
description: >-
The id of the Shipping Option to create the Shipping
Method from.
price:
type: integer
description: The price to charge for the Shipping Method.
receive_now:
description: >-
A flag to indicate if the Return should be registerd as
received immediately.
type: boolean
no_notification:
description: >-
A flag to indicate if no notifications should be emitted
related to the requested Return.
type: boolean
refund:
description: The amount to refund.
type: integer
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/order/{id}/claims/{claim_id}':
post:
operationId: PostOrdersOrderClaimsClaim
summary: Update a Claim
description: Updates a Claim.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Order.
schema:
type: string
- in: path
name: claim_id
required: true
description: The id of the Claim.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
claim_items:
description: The Claim Items that the Claim will consist of.
type: array
items:
properties:
id:
description: The id of the Claim Item.
type: string
item_id:
description: The id of the Line Item that will be claimed.
type: string
quantity:
description: The number of items that will be returned
type: integer
note:
description: >-
Short text describing the Claim Item in further
detail.
type: string
reason:
description: The reason for the Claim
type: string
enum:
- missing_item
- wrong_item
- production_failure
- other
tags:
description: A list o tags to add to the Claim Item
type: array
items:
type: string
images:
description: >-
A list of image URL's that will be associated with the
Claim
items:
type: string
shipping_methods:
description: The Shipping Methods to send the additional Line Items with.
type: array
items:
properties:
id:
description: The id of an existing Shipping Method
type: string
option_id:
description: >-
The id of the Shipping Option to create a Shipping
Method from
type: string
price:
description: The price to charge for the Shipping Method
type: integer
no_notification:
description: >-
If set to true no notification will be send related to this
Swap.
type: boolean
metadata:
description: >-
An optional set of key-value pairs to hold additional
information.
type: object
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
order:
$ref: '#/components/schemas/order'
'/price-lists/{id}/prices/batch':
post:
operationId: PostPriceListsPriceListPricesBatch
summary: Batch update prices for a Price List
description: Batch update prices for a Price List
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Price List to update prices for.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
prices:
description: The prices to update or add.
type: array
items:
properties:
id:
description: The id of the price.
type: string
status:
description: The status of the Price List.
type: string
enum:
- active
- draft
region_id:
description: The id of the Region for which the price is used.
type: string
currency_code:
description: >-
The 3 character ISO currency code for which the price
will be used.
type: string
amount:
description: The amount of the price.
type: number
min_quantity:
description: The minimum quantity for which the price will be used.
type: number
max_quantity:
description: The maximum quantity for which the price will be used.
type: number
override:
description: >-
If true the prices will replace all existing prices
associated with the Price List.
type: boolean
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Price List.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
delete:
operationId: DeletePriceListsPriceListPricesBatch
summary: Batch delete prices that belongs to a Price List
description: Batch delete prices that belongs to a Price List
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: >-
The id of the Price List that the Money Amounts that will be deleted
belongs to.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
price_ids:
description: The price id's of the Money Amounts to delete.
type: array
items:
type: string
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
ids:
type: array
items:
type: string
description: The id of the deleted Money Amount.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
/price_lists:
post:
operationId: PostPriceListsPriceList
summary: Creates a Price List
description: Creates a Price List
x-authenticated: true
requestBody:
content:
application/json:
schema:
properties:
name:
description: The name of the Price List
type: string
description:
description: A description of the Price List.
type: string
type:
description: The type of the Price List.
type: string
enum:
- sale
- override
status:
description: The status of the Price List.
type: string
enum:
- active
- draft
prices:
description: The prices of the Price List.
type: array
items:
properties:
region_id:
description: The id of the Region for which the price is used.
type: string
currency_code:
description: >-
The 3 character ISO currency code for which the price
will be used.
type: string
amount:
description: The amount to charge for the Product Variant.
type: integer
min_quantity:
description: The minimum quantity for which the price will be used.
type: integer
max_quantity:
description: The maximum quantity for which the price will be used.
type: integer
customer_groups:
type: array
description: A list of customer groups that the Price List applies to.
items:
required:
- id
properties:
id:
description: The id of a customer group
type: string
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/price_list'
'/price-lists/{id}':
delete:
operationId: DeletePriceListsPriceList
summary: Delete a Price List
description: Deletes a Price List
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Price List to delete.
schema:
type: string
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Price List.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetPriceListsPriceList
summary: Retrieve a Price List
description: Retrieves a Price List.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Price List.
schema:
type: string
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
price_list:
$ref: '#/components/schemas/price_list'
'/price-lists/{id}/products/{product_id}/prices':
delete:
operationId: DeletePriceListsPriceListProductsProductPrices
summary: Delete all the prices related to a specific product in a price list
description: Delete all the prices related to a specific product in a price list
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: >-
The id of the Price List that the Money Amounts that will be deleted
belongs to.
schema:
type: string
- in: path
name: product_id
required: true
description: The id of the product from which the money amount will be deleted.
schema:
type: string
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
ids:
type: number
description: The price ids that have been deleted.
count:
type: number
description: The number of prices that have been deleted.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
'/price-lists/{id}/variants/{variant_id}/prices':
delete:
operationId: DeletePriceListsPriceListVariantsVariantPrices
summary: Delete all the prices related to a specific variant in a price list
description: Delete all the prices related to a specific variant in a price list
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: >-
The id of the Price List that the Money Amounts that will be deleted
belongs to.
schema:
type: string
- in: path
name: variant_id
required: true
description: The id of the variant from which the money amount will be deleted.
schema:
type: string
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
ids:
type: number
description: The price ids that have been deleted.
count:
type: number
description: The number of prices that have been deleted.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
'/price-lists/:id/products':
get:
operationId: GetPriceListsPriceListProducts
summary: List Product in a Price List
description: Retrieves a list of Product that are part of a Price List
x-authenticated: true
parameters:
- in: query
name: q
description: Query used for searching products.
schema:
type: string
- in: query
name: id
description: Id of the product to search for.
schema:
type: string
- in: query
name: status
description: Status to search for
style: form
explode: false
schema:
type: array
items:
type: string
- in: query
name: collection_id
description: Collection ids to search for
style: form
explode: false
schema:
type: array
items:
type: string
- in: query
name: tags
description: Tags to search for
style: form
explode: false
schema:
type: array
items:
type: string
- in: query
name: title
description: to search for.
schema:
type: string
- in: query
name: description
description: to search for.
schema:
type: string
- in: query
name: handle
description: to search for.
schema:
type: string
- in: query
name: is_giftcard
description: Search for giftcards using is_giftcard=true.
schema:
type: string
- in: query
name: type
description: to search for.
schema:
type: string
- in: query
name: order
description: to retrieve products in.
schema:
type: string
- in: query
name: deleted_at
description: >-
Date comparison for when resulting products was deleted, i.e. less
than, greater than etc.
schema:
type: string
- in: query
name: created_at
description: >-
Date comparison for when resulting products was created, i.e. less
than, greater than etc.
schema:
type: string
- in: query
name: updated_at
description: >-
Date comparison for when resulting products was updated, i.e. less
than, greater than etc.
schema:
type: string
- in: query
name: offset
description: How many products to skip in the result.
schema:
type: string
- in: query
name: limit
description: Limit the number of products returned.
schema:
type: string
- in: query
name: expand
description: >-
(Comma separated) Which fields should be expanded in each product of
the result.
schema:
type: string
- in: query
name: fields
description: >-
(Comma separated) Which fields should be included in each product of
the result.
schema:
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
count:
description: The number of Products.
type: integer
offset:
description: The offset of the Product query.
type: integer
limit:
description: The limit of the Product query.
type: integer
products:
type: array
items:
$ref: '#/components/schemas/product'
/price-lists:
get:
operationId: GetPriceLists
summary: List Price Lists
description: Retrieves a list of Price Lists.
x-authenticated: true
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
price_lists:
type: array
items:
$ref: '#/components/schemas/price_list'
count:
description: The number of Price Lists.
type: integer
offset:
description: The offset of the Price List query.
type: integer
limit:
description: The limit of the Price List query.
type: integer
'/price_lists/{id}':
post:
operationId: PostPriceListsPriceListPriceList
summary: Update a Price List
description: Updates a Price List
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Price List.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
name:
description: The name of the Price List
type: string
description:
description: A description of the Price List.
type: string
type:
description: The type of the Price List.
type: string
enum:
- sale
- override
status:
description: The status of the Price List.
type: string
enum:
- active
- draft
prices:
description: The prices of the Price List.
type: array
items:
properties:
id:
description: The id of the price.
type: string
region_id:
description: The id of the Region for which the price is used.
type: string
currency_code:
description: >-
The 3 character ISO currency code for which the price
will be used.
type: string
amount:
description: The amount to charge for the Product Variant.
type: integer
min_quantity:
description: The minimum quantity for which the price will be used.
type: integer
max_quantity:
description: The maximum quantity for which the price will be used.
type: integer
customer_groups:
type: array
description: A list of customer groups that the Price List applies to.
items:
required:
- id
properties:
id:
description: The id of a customer group
type: string
tags:
- Price List
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/price_list'
/product-tags:
get:
operationId: GetProductTags
summary: List Product Tags
description: Retrieve a list of Product Tags.
x-authenticated: true
parameters:
- in: query
name: limit
description: The number of tags to return.
schema:
type: string
- in: query
name: offset
description: The offset of tags to return.
schema:
type: string
- in: query
name: value
description: The value of tags to return.
schema:
type: string
- in: query
name: id
description: The id of tags to return.
schema:
type: string
- in: query
name: created_at
description: >-
Date comparison for when resulting tas was created, i.e. less than,
greater than etc.
schema:
type: object
- in: query
name: updated_at
description: >-
Date comparison for when resulting tas was updated, i.e. less than,
greater than etc.
schema:
type: object
tags:
- Product Tag
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tags:
$ref: '#/components/schemas/product_tag'
/product-types:
get:
operationId: GetProductTypes
summary: List Product Types
description: Retrieve a list of Product Types.
x-authenticated: true
parameters:
- in: query
name: limit
description: The number of types to return.
schema:
type: string
- in: query
name: offset
description: The offset of types to return.
schema:
type: string
- in: query
name: value
description: The value of types to return.
schema:
type: string
- in: query
name: id
description: The id of types to return.
schema:
type: string
- in: query
name: created_at
description: >-
Date comparison for when resulting tas was created, i.e. less than,
greater than etc.
schema:
type: object
- in: query
name: updated_at
description: >-
Date comparison for when resulting tas was updated, i.e. less than,
greater than etc.
schema:
type: object
tags:
- Product Tag
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
types:
$ref: '#/components/schemas/product_tag'
'/products/{id}/options':
post:
operationId: PostProductsProductOptions
summary: Add an Option
x-authenticated: true
description: Adds a Product Option to a Product
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- title
properties:
title:
description: >-
The title the Product Option will be identified by i.e.
"Size"
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
/products:
post:
operationId: PostProducts
summary: Create a Product
x-authenticated: true
description: Creates a Product
requestBody:
content:
application/json:
schema:
required:
- title
- subtitle
- description
properties:
title:
description: The title of the Product
type: string
subtitle:
description: The subtitle of the Product
type: string
description:
description: A description of the Product.
type: string
is_giftcard:
description: >-
A flag to indicate if the Product represents a Gift Card.
Purchasing Products with this flag set to `true` will result
in a Gift Card being created.
type: boolean
discountable:
description: >-
A flag to indicate if discounts can be applied to the
LineItems generated from this Product
type: boolean
images:
description: Images of the Product.
type: array
items:
type: string
thumbnail:
description: The thumbnail to use for the Product.
type: string
handle:
description: A unique handle to identify the Product by.
type: string
type:
description: The Product Type to associate the Product with.
type: object
properties:
value:
description: The value of the Product Type.
type: string
collection_id:
description: The id of the Collection the Product should belong to.
type: string
tags:
description: Tags to associate the Product with.
type: array
items:
properties:
id:
description: The id of an existing Tag.
type: string
value:
description: 'The value of the Tag, these will be upserted.'
type: string
options:
description: >-
The Options that the Product should have. These define on
which properties the Product's Product Variants will differ.
type: array
items:
properties:
title:
description: The title to identify the Product Option by.
type: string
variants:
description: A list of Product Variants to create with the Product.
type: array
items:
properties:
title:
description: The title to identify the Product Variant by.
type: string
sku:
description: The unique SKU for the Product Variant.
type: string
ean:
description: The EAN number of the item.
type: string
upc:
description: The UPC number of the item.
type: string
barcode:
description: A generic GTIN field for the Product Variant.
type: string
hs_code:
description: The Harmonized System code for the Product Variant.
type: string
inventory_quantity:
description: The amount of stock kept for the Product Variant.
type: integer
allow_backorder:
description: >-
Whether the Product Variant can be purchased when out
of stock.
type: boolean
manage_inventory:
description: >-
Whether Medusa should keep track of the inventory for
this Product Variant.
type: boolean
weight:
description: The wieght of the Product Variant.
type: string
length:
description: The length of the Product Variant.
type: string
height:
description: The height of the Product Variant.
type: string
width:
description: The width of the Product Variant.
type: string
origin_country:
description: The country of origin of the Product Variant.
type: string
mid_code:
description: >-
The Manufacturer Identification code for the Product
Variant.
type: string
material:
description: The material composition of the Product Variant.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
prices:
type: array
items:
properties:
region_id:
description: >-
The id of the Region for which the price is
used.
type: string
currency_code:
description: >-
The 3 character ISO currency code for which the
price will be used.
type: string
amount:
description: The amount to charge for the Product Variant.
type: integer
sale_amount:
description: >-
The sale amount to charge for the Product
Variant.
type: integer
options:
type: array
items:
properties:
value:
description: >-
The value to give for the Product Option at the
same index in the Product's `options` field.
type: string
weight:
description: The wieght of the Product.
type: string
length:
description: The length of the Product.
type: string
height:
description: The height of the Product.
type: string
width:
description: The width of the Product.
type: string
origin_country:
description: The country of origin of the Product.
type: string
mid_code:
description: The Manufacturer Identification code for the Product.
type: string
material:
description: The material composition of the Product.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
get:
operationId: GetProducts
summary: List Product
description: Retrieves a list of Product
x-authenticated: true
parameters:
- in: query
name: q
description: Query used for searching products.
schema:
type: string
- in: query
name: id
description: Id of the product to search for.
schema:
type: string
- in: query
name: status
style: form
explode: false
description: Status to search for
schema:
type: array
items:
type: string
- in: query
name: collection_id
style: form
explode: false
description: Collection ids to search for.
schema:
type: array
items:
type: string
- in: query
name: tags
style: form
explode: false
description: Tags to search for
schema:
type: array
items:
type: string
- in: query
name: title
description: to search for.
schema:
type: string
- in: query
name: description
description: to search for.
schema:
type: string
- in: query
name: handle
description: to search for.
schema:
type: string
- in: query
name: is_giftcard
description: Search for giftcards using is_giftcard=true.
schema:
type: string
- in: query
name: type
description: to search for.
schema:
type: string
- in: query
name: order
description: to retrieve products in.
schema:
type: string
- in: query
name: deleted_at
description: >-
Date comparison for when resulting products was deleted, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: created_at
description: >-
Date comparison for when resulting products was created, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: updated_at
description: >-
Date comparison for when resulting products was updated, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: offset
description: How many products to skip in the result.
schema:
type: string
- in: query
name: limit
description: Limit the number of products returned.
schema:
type: string
- in: query
name: expand
description: >-
(Comma separated) Which fields should be expanded in each product of
the result.
schema:
type: string
- in: query
name: fields
description: >-
(Comma separated) Which fields should be included in each product of
the result.
schema:
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
count:
description: The number of Products.
type: integer
offset:
description: The offset of the Product query.
type: integer
limit:
description: The limit of the Product query.
type: integer
products:
type: array
items:
$ref: '#/components/schemas/product'
'/products/{id}/variants':
post:
operationId: PostProductsProductVariants
summary: Create a Product Variant
description: >-
Creates a Product Variant. Each Product Variant must have a unique
combination of Product Option Values.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- title
- prices
- options
properties:
title:
description: The title to identify the Product Variant by.
type: string
sku:
description: The unique SKU for the Product Variant.
type: string
ean:
description: The EAN number of the item.
type: string
upc:
description: The UPC number of the item.
type: string
barcode:
description: A generic GTIN field for the Product Variant.
type: string
hs_code:
description: The Harmonized System code for the Product Variant.
type: string
inventory_quantity:
description: The amount of stock kept for the Product Variant.
type: integer
allow_backorder:
description: >-
Whether the Product Variant can be purchased when out of
stock.
type: boolean
manage_inventory:
description: >-
Whether Medusa should keep track of the inventory for this
Product Variant.
type: boolean
weight:
description: The wieght of the Product Variant.
type: string
length:
description: The length of the Product Variant.
type: string
height:
description: The height of the Product Variant.
type: string
width:
description: The width of the Product Variant.
type: string
origin_country:
description: The country of origin of the Product Variant.
type: string
mid_code:
description: >-
The Manufacturer Identification code for the Product
Variant.
type: string
material:
description: The material composition of the Product Variant.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
prices:
type: array
items:
properties:
region_id:
description: The id of the Region for which the price is used.
type: string
currency_code:
description: >-
The 3 character ISO currency code for which the price
will be used.
type: string
amount:
description: The amount to charge for the Product Variant.
type: integer
min_quantity:
description: The minimum quantity for which the price will be used.
type: integer
max_quantity:
description: The maximum quantity for which the price will be used.
type: integer
options:
type: array
items:
properties:
option_id:
description: The id of the Product Option to set the value for.
type: string
value:
description: The value to give for the Product Option.
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
get:
operationId: GetProductsProductVariants
summary: List a Product's Product Variants
description: Retrieves a list of the Product Variants associated with a Product.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: Id of the product to search for the variants.
schema:
type: string
- in: query
name: fields
description: Comma separated string of the column to select.
schema:
type: string
- in: query
name: expand
description: Comma separated string of the relations to include.
schema:
type: string
- in: query
name: offset
description: How many products to skip in the result.
schema:
type: string
- in: query
name: limit
description: Limit the number of products returned.
schema:
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
variants:
type: array
items:
$ref: '#/components/schemas/product_variant'
'/products/{id}/options/{option_id}':
delete:
operationId: DeleteProductsProductOptionsOption
summary: Delete a Product Option
description: >-
Deletes a Product Option. Before a Product Option can be deleted all
Option Values for the Product Option must be the same. You may, for
example, have to delete some of your variants prior to deleting the
Product Option
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
- in: path
name: option_id
required: true
description: The id of the Product Option.
schema:
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Product Option
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
product:
$ref: '#/components/schemas/product'
post:
operationId: PostProductsProductOptionsOption
summary: Update a Product Option.
description: Updates a Product Option
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
- in: path
name: option_id
required: true
description: The id of the Product Option.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- title
properties:
title:
description: The title of the Product Option
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
'/products/{id}':
delete:
operationId: DeleteProductsProduct
summary: Delete a Product
description: Deletes a Product and it's associated Product Variants.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Product.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetProductsProduct
summary: Retrieve a Product
description: Retrieves a Product.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
post:
operationId: PostProductsProduct
summary: Update a Product
description: Updates a Product
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
title:
description: The title of the Product
type: string
subtitle:
description: The subtitle of the Product
type: string
description:
description: A description of the Product.
type: string
is_giftcard:
description: >-
A flag to indicate if the Product represents a Gift Card.
Purchasing Products with this flag set to `true` will result
in a Gift Card being created.
type: boolean
discountable:
description: >-
A flag to indicate if discounts can be applied to the
LineItems generated from this Product
type: boolean
images:
description: Images of the Product.
type: array
items:
type: string
thumbnail:
description: The thumbnail to use for the Product.
type: string
handle:
description: A unique handle to identify the Product by.
type: string
type:
description: The Product Type to associate the Product with.
type: object
properties:
value:
description: The value of the Product Type.
type: string
collection_id:
description: The id of the Collection the Product should belong to.
type: string
tags:
description: Tags to associate the Product with.
type: array
items:
properties:
id:
description: The id of an existing Tag.
type: string
value:
description: 'The value of the Tag, these will be upserted.'
type: string
options:
description: >-
The Options that the Product should have. These define on
which properties the Product's Product Variants will differ.
type: array
items:
properties:
title:
description: The title to identify the Product Option by.
type: string
variants:
description: A list of Product Variants to create with the Product.
type: array
items:
properties:
title:
description: The title to identify the Product Variant by.
type: string
sku:
description: The unique SKU for the Product Variant.
type: string
ean:
description: The EAN number of the item.
type: string
upc:
description: The UPC number of the item.
type: string
barcode:
description: A generic GTIN field for the Product Variant.
type: string
hs_code:
description: The Harmonized System code for the Product Variant.
type: string
inventory_quantity:
description: The amount of stock kept for the Product Variant.
type: integer
allow_backorder:
description: >-
Whether the Product Variant can be purchased when out
of stock.
type: boolean
manage_inventory:
description: >-
Whether Medusa should keep track of the inventory for
this Product Variant.
type: boolean
weight:
description: The wieght of the Product Variant.
type: string
length:
description: The length of the Product Variant.
type: string
height:
description: The height of the Product Variant.
type: string
width:
description: The width of the Product Variant.
type: string
origin_country:
description: The country of origin of the Product Variant.
type: string
mid_code:
description: >-
The Manufacturer Identification code for the Product
Variant.
type: string
material:
description: The material composition of the Product Variant.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
prices:
type: array
items:
properties:
region_id:
description: >-
The id of the Region for which the price is
used.
type: string
currency_code:
description: >-
The 3 character ISO currency code for which the
price will be used.
type: string
amount:
description: The amount to charge for the Product Variant.
type: integer
sale_amount:
description: >-
The sale amount to charge for the Product
Variant.
type: integer
options:
type: array
items:
properties:
value:
description: >-
The value to give for the Product Option at the
same index in the Product's `options` field.
type: string
weight:
description: The wieght of the Product.
type: string
length:
description: The length of the Product.
type: string
height:
description: The height of the Product.
type: string
width:
description: The width of the Product.
type: string
origin_country:
description: The country of origin of the Product.
type: string
mid_code:
description: The Manufacturer Identification code for the Product.
type: string
material:
description: The material composition of the Product.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
'/products/{id}/variants/{variant_id}':
delete:
operationId: DeleteProductsProductVariantsVariant
summary: Delete a Product Variant
description: Deletes a Product Variant.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
- in: path
name: variant_id
required: true
description: The id of the Product Variant.
schema:
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Product Variant.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
post:
operationId: PostProductsProductVariantsVariant
summary: Update a Product Variant
description: Update a Product Variant.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
- in: path
name: variant_id
required: true
description: The id of the Product Variant.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
title:
description: The title to identify the Product Variant by.
type: string
sku:
description: The unique SKU for the Product Variant.
type: string
ean:
description: The EAN number of the item.
type: string
upc:
description: The UPC number of the item.
type: string
barcode:
description: A generic GTIN field for the Product Variant.
type: string
hs_code:
description: The Harmonized System code for the Product Variant.
type: string
inventory_quantity:
description: The amount of stock kept for the Product Variant.
type: integer
allow_backorder:
description: >-
Whether the Product Variant can be purchased when out of
stock.
type: boolean
manage_inventory:
description: >-
Whether Medusa should keep track of the inventory for this
Product Variant.
type: boolean
weight:
description: The wieght of the Product Variant.
type: string
length:
description: The length of the Product Variant.
type: string
height:
description: The height of the Product Variant.
type: string
width:
description: The width of the Product Variant.
type: string
origin_country:
description: The country of origin of the Product Variant.
type: string
mid_code:
description: >-
The Manufacturer Identification code for the Product
Variant.
type: string
material:
description: The material composition of the Product Variant.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
prices:
type: array
items:
properties:
id:
description: The id of the price.
type: string
region_id:
description: The id of the Region for which the price is used.
type: string
currency_code:
description: >-
The 3 character ISO currency code for which the price
will be used.
type: string
amount:
description: The amount to charge for the Product Variant.
type: integer
min_quantity:
description: The minimum quantity for which the price will be used.
type: integer
max_quantity:
description: The maximum quantity for which the price will be used.
type: integer
options:
type: array
items:
properties:
option_id:
description: The id of the Product Option to set the value for.
type: string
value:
description: The value to give for the Product Option.
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
/products/types:
get:
operationId: GetProductsTypes
summary: List Product Types
description: Retrieves a list of Product Types.
x-authenticated: true
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
types:
type: array
items:
$ref: '#/components/schemas/product_type'
'/products/{id}/metadata':
post:
operationId: PostProductsProductMetadata
summary: Set Product metadata
description: Set metadata key/value pair for Product
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Product.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- key
- value
properties:
key:
description: The metadata key
type: string
value:
description: The metadata value
type: string
tags:
- Product
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
product:
$ref: '#/components/schemas/product'
'/regions/{id}/countries':
post:
operationId: PostRegionsRegionCountries
summary: Add Country
description: Adds a Country to the list of Countries in a Region
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- country_code
properties:
country_code:
description: The 2 character ISO code for the Country.
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
'/regions/{id}/fulfillment-providers':
post:
operationId: PostRegionsRegionFulfillmentProviders
summary: Add Fulfillment Provider
description: Adds a Fulfillment Provider to a Region
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- provider_id
properties:
provider_id:
description: The id of the Fulfillment Provider to add.
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
'/regions/{id}/payment-providers':
post:
operationId: PostRegionsRegionPaymentProviders
summary: Add Payment Provider
description: Adds a Payment Provider to a Region
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- provider_id
properties:
provider_id:
description: The id of the Payment Provider to add.
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
/regions:
post:
operationId: PostRegions
summary: Create a Region
description: Creates a Region
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- name
- currency_code
- tax_rate
properties:
name:
description: The name of the Region
type: string
currency_code:
description: The 3 character ISO currency code to use for the Region.
type: string
tax_code:
description: An optional tax code the Region.
type: string
tax_rate:
description: The tax rate to use on Orders in the Region.
type: number
payment_providers:
description: >-
A list of Payment Providers that should be enabled for the
Region
type: array
items:
type: string
fulfillment_providers:
description: >-
A list of Fulfillment Providers that should be enabled for
the Region
type: array
items:
type: string
countries:
description: A list of countries that should be included in the Region.
type: array
items:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
get:
operationId: GetRegions
summary: List Regions
description: Retrieves a list of Regions.
x-authenticated: true
parameters:
- in: query
name: limit
schema:
type: integer
required: false
description: limit the number of regions in response
- in: query
name: offset
schema:
type: integer
required: false
description: Offset of regions in response (used for pagination)
- in: query
name: created_at
schema:
type: object
required: false
description: >-
Date comparison for when resulting region was created, i.e. less
than, greater than etc.
- in: query
name: updated_at
schema:
type: object
required: false
description: >-
Date comparison for when resulting region was updated, i.e. less
than, greater than etc.
- in: query
name: deleted_at
schema:
type: object
required: false
description: >-
Date comparison for when resulting region was deleted, i.e. less
than, greater than etc.
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
regions:
type: array
items:
$ref: '#/components/schemas/region'
'/regions/{id}/metadata/{key}':
delete:
operationId: DeleteRegionsRegionMetadataKey
summary: Delete Metadata
description: Deletes a metadata key.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
- in: path
name: key
required: true
description: The metadata key.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
'/regions/{id}':
delete:
operationId: DeleteRegionsRegion
summary: Delete a Region
description: Deletes a Region.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Region.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetRegionsRegion
summary: Retrieve a Region
description: Retrieves a Region.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
post:
operationId: PostRegionsRegion
summary: Update a Region
description: Updates a Region
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
name:
description: The name of the Region
type: string
currency_code:
description: The 3 character ISO currency code to use for the Region.
type: string
automatic_taxes:
description: >-
If true Medusa will automatically calculate taxes for carts
in this region. If false you have to manually call POST
/carts/:id/taxes.
type: boolean
gift_cards_taxable:
description: >-
Whether gift cards in this region should be applied sales
tax when purchasing a gift card
type: boolean
tax_provider_id:
description: >-
The id of the tax provider to use; if null the system tax
provider is used
type: string
tax_code:
description: An optional tax code the Region.
type: string
tax_rate:
description: The tax rate to use on Orders in the Region.
type: number
payment_providers:
description: >-
A list of Payment Providers that should be enabled for the
Region
type: array
items:
type: string
fulfillment_providers:
description: >-
A list of Fulfillment Providers that should be enabled for
the Region
type: array
items:
type: string
countries:
description: A list of countries that should be included in the Region.
type: array
items:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
'/regions/{id}/fulfillment-options':
get:
operationId: GetRegionsRegionFulfillmentOptions
summary: List Fulfillment Options available in the Region
description: Gathers all the fulfillment options available to in the Region.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
fulfillment_options:
type: array
items:
properties:
provider_id:
type: string
description: id of the fulfillment provider
options:
type: object
description: fulfillment provider options
'/regions/{id}/countries/{country_code}':
delete:
operationId: PostRegionsRegionCountriesCountry
summary: Remove Country
x-authenticated: true
description: Removes a Country from the list of Countries in a Region
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
- in: path
name: country_code
required: true
description: The 2 character ISO code for the Country.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
'/regions/{id}/fulfillment-providers/{provider_id}':
delete:
operationId: PostRegionsRegionFulfillmentProvidersProvider
summary: Remove Fulfillment Provider
description: Removes a Fulfillment Provider.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
- in: path
name: provider_id
required: true
description: The id of the Fulfillment Provider.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
'/regions/{id}/payment-providers/{provider_id}':
delete:
operationId: PostRegionsRegionPaymentProvidersProvider
summary: Remove Payment Provider
description: Removes a Payment Provider.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
- in: path
name: provider_id
required: true
description: The id of the Payment Provider.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
'/regions/{id}/metadata':
post:
operationId: PostRegionsRegionMetadata
summary: Set the metadata of a Region
description: Sets the metadata of a Region
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Region.
schema:
type: string
tags:
- Region
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
region:
$ref: '#/components/schemas/region'
requestBody:
content:
application/json:
schema:
type: object
required:
- key
- value
properties:
key:
type: string
description: Key for the metadata value.
value:
type: string
description: The value that the key relates to.
/return-reasons:
post:
operationId: PostReturnReasons
summary: Create a Return Reason
description: Creates a Return Reason
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- label
- value
properties:
label:
description: The label to display to the Customer.
type: string
value:
description: >-
The value that the Return Reason will be identified by. Must
be unique.
type: string
parent_return_reason_id:
description: The id of the parent return reason.
type: string
description:
description: An optional description to for the Reason.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
tags:
- Return Reason
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
return_reason:
$ref: '#/components/schemas/return_reason'
get:
operationId: GetReturnReasons
summary: List Return Reasons
description: Retrieves a list of Return Reasons.
x-authenticated: true
tags:
- Return Reason
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
return_reasons:
type: array
items:
$ref: '#/components/schemas/return_reason'
'/return-reasons/{id}':
delete:
operationId: DeleteReturnReason
summary: Delete a return reason
description: Deletes a return reason.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the return reason
schema:
type: string
tags:
- Return Reason
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted return reason
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetReturnReasonsReason
summary: Retrieve a Return Reason
description: Retrieves a Return Reason.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Return Reason.
schema:
type: string
tags:
- Return Reason
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
return_reason:
$ref: '#/components/schemas/return_reason'
post:
operationId: PostReturnReasonsReason
summary: Update a Return Reason
description: Updates a Return Reason
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Return Reason.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
label:
description: The label to display to the Customer.
type: string
description:
description: An optional description to for the Reason.
type: string
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
tags:
- Return Reason
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
return_reason:
$ref: '#/components/schemas/return_reason'
'/returns/{id}/cancel':
post:
operationId: PostReturnsReturnCancel
summary: Cancel a Return
description: Registers a Return as canceled.
parameters:
- in: path
name: id
required: true
description: The id of the Return.
schema:
type: string
tags:
- Return
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
return:
$ref: '#/components/schemas/order'
/returns:
get:
operationId: GetReturns
summary: List Returns
description: Retrieves a list of Returns
parameters:
- in: path
name: limit
required: true
description: The upper limit for the amount of responses returned.
schema:
type: number
- in: path
name: offset
required: true
description: The offset of the list returned.
schema:
type: number
tags:
- Return
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
returns:
type: array
items:
$ref: '#/components/schemas/return'
'/returns/{id}/receive':
post:
operationId: PostReturnsReturnReceive
summary: Receive a Return
description: >-
Registers a Return as received. Updates statuses on Orders and Swaps
accordingly.
parameters:
- in: path
name: id
required: true
description: The id of the Return.
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- items
properties:
items:
description: The Line Items that have been received.
type: array
items:
properties:
item_id:
description: The id of the Line Item.
type: string
quantity:
description: The quantity of the Line Item.
type: integer
refund:
description: The amount to refund.
type: integer
tags:
- Return
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
return:
$ref: '#/components/schemas/return'
/shipping-options:
post:
operationId: PostShippingOptions
summary: Create Shipping Option
description: Creates a Shipping Option
x-authenticated: true
requestBody:
content:
application/json:
schema:
properties:
name:
description: The name of the Shipping Option
type: string
region_id:
description: >-
The id of the Region in which the Shipping Option will be
available.
type: string
provider_id:
description: >-
The id of the Fulfillment Provider that handles the Shipping
Option.
type: string
profile_id:
description: >-
The id of the Shipping Profile to add the Shipping Option
to.
type: number
data:
description: >-
The data needed for the Fulfillment Provider to handle
shipping with this Shipping Option.
type: object
price_type:
description: The type of the Shipping Option price.
type: string
enum:
- flat_rate
- calculated
amount:
description: The amount to charge for the Shipping Option.
type: integer
requirements:
description: >-
The requirements that must be satisfied for the Shipping
Option to be available.
type: array
items:
properties:
type:
description: The type of the requirement
type: string
enum:
- max_subtotal
- min_subtotal
amount:
description: The amount to compare with.
type: integer
is_return:
description: Whether the Shipping Option defines a return shipment.
type: boolean
admin_only:
description: 'If true, the option can be used for draft orders'
type: boolean
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
tags:
- Shipping Option
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_option:
$ref: '#/components/schemas/shipping_option'
get:
operationId: GetShippingOptions
summary: List Shipping Options
description: Retrieves a list of Shipping Options.
x-authenticated: true
parameters:
- in: query
name: region_id
schema:
type: string
description: Region to fetch options from
- in: query
name: is_return
schema:
type: boolean
description: Flag for fetching return options
- in: query
name: admin_only
schema:
type: boolean
description: Flag for fetching admin specific options
tags:
- Shipping Option
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_options:
type: array
items:
$ref: '#/components/schemas/shipping_option'
'/shipping-options/{id}':
delete:
operationId: DeleteShippingOptionsOption
summary: Delete a Shipping Option
description: Deletes a Shipping Option.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Shipping Option.
schema:
type: string
tags:
- Shipping Option
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Shipping Option.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetShippingOptionsOption
summary: Retrieve a Shipping Option
description: Retrieves a Shipping Option.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Shipping Option.
schema:
type: string
tags:
- Shipping Option
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_option:
$ref: '#/components/schemas/shipping_option'
post:
operationId: PostShippingOptionsOption
summary: Update Shipping Option
description: Updates a Shipping Option
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Shipping Option.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
name:
description: The name of the Shipping Option
type: string
amount:
description: The amount to charge for the Shipping Option.
type: integer
admin_only:
description: 'If true, the option can be used for draft orders'
type: boolean
metadata:
description: >-
An optional set of key-value pairs with additional
information.
type: object
requirements:
description: >-
The requirements that must be satisfied for the Shipping
Option to be available.
type: array
items:
properties:
type:
description: The type of the requirement
type: string
enum:
- max_subtotal
- min_subtotal
amount:
description: The amount to compare with.
type: integer
tags:
- Shipping Option
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_option:
$ref: '#/components/schemas/shipping_option'
/shipping-profiles:
post:
operationId: PostShippingProfiles
summary: Create a Shipping Profile
description: Creates a Shipping Profile
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- name
properties:
name:
description: The name of the Shipping Profile
type: string
tags:
- Shipping Profile
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_profile:
$ref: '#/components/schemas/shipping_profile'
get:
operationId: GetShippingProfiles
summary: List Shipping Profiles
description: Retrieves a list of Shipping Profile.
x-authenticated: true
tags:
- Shipping Profile
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_profiles:
type: array
items:
$ref: '#/components/schemas/shipping_profile'
'/shipping-profiles/{id}':
delete:
operationId: DeleteShippingProfilesProfile
summary: Delete a Shipping Profile
description: Deletes a Shipping Profile.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Shipping Profile.
schema:
type: string
tags:
- Shipping Profile
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Shipping Profile.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
get:
operationId: GetShippingProfilesProfile
summary: Retrieve a Shipping Profile
description: Retrieves a Shipping Profile.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Shipping Profile.
schema:
type: string
tags:
- Shipping Profile
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_profile:
$ref: '#/components/schemas/shipping_profile'
post:
operationId: PostShippingProfilesProfile
summary: Update a Shipping Profiles
description: Updates a Shipping Profile
parameters:
- in: path
name: id
required: true
description: The id of the Shipping Profile.
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
name:
description: The name of the Shipping Profile
type: string
tags:
- Shipping Profile
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
shipping_profiles:
$ref: '#/components/schemas/shipping_profile'
'/store/currencies/{code}':
post:
operationId: PostStoreCurrenciesCode
summary: Add a Currency Code
description: Adds a Currency Code to the available currencies.
x-authenticated: true
parameters:
- in: path
name: code
required: true
description: The 3 character ISO currency code.
schema:
type: string
tags:
- Store
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
store:
$ref: '#/components/schemas/store'
delete:
operationId: DeleteStoreCurrenciesCode
summary: Remove a Currency Code
description: Removes a Currency Code from the available currencies.
x-authenticated: true
parameters:
- in: path
name: code
required: true
description: The 3 character ISO currency code.
schema:
type: string
tags:
- Store
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
store:
$ref: '#/components/schemas/store'
/store:
get:
operationId: GetStore
summary: Retrieve Store details.
description: Retrieves the Store details
x-authenticated: true
tags:
- Store
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
store:
$ref: '#/components/schemas/store'
post:
operationId: PostStore
summary: Update Store details.
description: Updates the Store details
x-authenticated: true
requestBody:
content:
application/json:
schema:
properties:
name:
description: The name of the Store
type: string
swap_link_template:
description: >-
A template for Swap links - use `{{cart_id}}` to insert the
Swap Cart id
type: string
payment_link_template:
description: >-
A template for payment links links - use `{{cart_id}}` to
insert the Cart id
type: string
invite_link_template:
description: >-
A template for invite links - use `{{invite_token}}` to
insert the invite token
type: string
default_currency_code:
description: The default currency code for the Store.
type: string
tags:
- Store
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
store:
$ref: '#/components/schemas/store'
/store/payment-providers:
get:
operationId: GetStorePaymentProviders
summary: Retrieve configured Payment Providers
description: Retrieves the configured Payment Providers
x-authenticated: true
tags:
- Store
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
payment_providers:
type: array
items:
$ref: '#/components/schemas/store'
/store/tax-providers:
get:
operationId: GetStoreTaxProviders
summary: Retrieve configured Tax Providers
description: Retrieves the configured Tax Providers
x-authenticated: true
tags:
- Store
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_providers:
type: array
items:
$ref: '#/components/schemas/store'
'/swaps/{id}':
get:
operationId: GetSwapsSwap
summary: Retrieve a Swap
description: Retrieves a Swap.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Swap.
schema:
type: string
tags:
- Swap
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
swap:
$ref: '#/components/schemas/swap'
/swaps:
get:
operationId: GetSwaps
summary: List Swaps
description: Retrieves a list of Swaps.
x-authenticated: true
tags:
- Swap
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
swaps:
type: array
items:
$ref: '#/components/schemas/swap'
'/tax-rates/:id/product-types/batch':
post:
operationId: PostTaxRatesTaxRateProductTypes
summary: Add Tax Rate to Product Types
description: Associates a Tax Rate with a list of Product Types
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
delete:
operationId: DeleteTaxRatesTaxRateProductTypes
summary: Remove Tax Rate from Product Types
description: Removes a Tax Rate from a list of Product Types
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
'/tax-rates/:id/products/batch':
post:
operationId: PostTaxRatesTaxRateProducts
summary: Add Tax Rate to Products
description: Associates a Tax Rate with a list of Products
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
delete:
operationId: DeleteTaxRatesTaxRateProducts
summary: Removes Tax Rate from Products
description: Removes a Tax Rate from a list of Products
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
'/tax-rates/:id/shipping-options/batch':
post:
operationId: PostTaxRatesTaxRateShippingOptions
summary: Add Tax Rate to Product Types
description: Associates a Tax Rate with a list of Product Types
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
delete:
operationId: DeleteTaxRatesTaxRateShippingOptions
summary: Removes a Tax Rate from Product Types
description: Removes a Tax Rate from a list of Product Types
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
/tax-rates:
post:
operationId: PostTaxRates
summary: Create a Tax Rate
description: Creates a Tax Rate
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
get:
operationId: GetTaxRates
summary: List Tax Rates
description: Retrieves a list of TaxRates
x-authenticated: true
parameters:
- in: query
name: q
description: Query used for searching orders.
schema:
type: string
- in: query
name: id
description: Id of the order to search for.
schema:
type: string
- in: query
name: region_id
description: to search for.
schema:
type: string
- in: query
name: code
description: to search for.
schema:
type: string
- in: query
name: rate
description: to search for.
schema:
type: string
- in: query
name: created_at
description: >-
Date comparison for when resulting orders was created, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: updated_at
description: >-
Date comparison for when resulting orders was updated, i.e. less
than, greater than etc.
schema:
type: object
- in: query
name: offset
description: How many orders to skip in the result.
schema:
type: string
- in: query
name: limit
description: Limit the number of orders returned.
schema:
type: string
- in: query
name: fields
description: >-
(Comma separated) Which fields should be included in each order of
the result.
schema:
type: string
tags:
- Order
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
orders:
type: array
items:
$ref: '#/components/schemas/order'
'/tax-rates/{id}':
delete:
operationId: DeleteTaxRatesTaxRate
summary: Delete a Tax Rate
description: Deletes a Tax Rate
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the Shipping Option.
schema:
type: string
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Shipping Option.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
'/tax-rates/:id':
get:
operationId: GetTaxRatesTaxRate
summary: Get Tax Rate
description: Retrieves a TaxRate
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
post:
operationId: PostTaxRatesTaxRate
summary: Update a Tax Rate
description: Updates a Tax Rate
x-authenticated: true
tags:
- Tax Rates
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
tax_rate:
type: array
items:
$ref: '#/components/schemas/tax_rate'
/:
post:
operationId: PostUploads
summary: Uploads an array of files
description: >-
Uploads an array of files to the specific fileservice that is installed
in medusa.
x-authenticated: true
tags:
- Uploads
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
files:
type: array
items:
type: string
format: binary
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
uploads:
type: array
items:
type: string
/users:
post:
operationId: PostUsers
summary: Create a User
description: Creates a User
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- email
- password
properties:
email:
description: The Users email.
type: string
first_name:
description: The name of the User.
type: string
last_name:
description: The name of the User.
type: string
role:
description: Userrole assigned to the user.
type: string
password:
description: The Users password.
type: string
tags:
- Users
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
user:
$ref: '#/components/schemas/user'
get:
operationId: GetUsers
summary: Retrieve all users
description: Retrieves all users.
x-authenticated: true
tags:
- Users
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
users:
type: array
items:
$ref: '#/components/schemas/user'
'/users/{user_id}':
delete:
operationId: DeleteUsersUser
summary: Delete a User
description: Deletes a User
x-authenticated: true
parameters:
- in: path
name: user_id
required: true
description: The id of the User.
schema:
type: string
tags:
- Users
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
id:
type: string
description: The id of the deleted Shipping Profile.
object:
type: string
description: The type of the object that was deleted.
deleted:
type: boolean
post:
operationId: PostUsersUser
summary: Update a User
description: Updates a User
x-authenticated: true
parameters:
- in: path
name: user_id
required: true
description: The id of the User.
schema:
type: string
tags:
- Users
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
user:
$ref: '#/components/schemas/user'
requestBody:
content:
application/json:
schema:
type: object
required:
- first_name
- last_name
- role
- api_token
properties:
first_name:
type: string
description: The name of the User.
last_name:
type: string
description: The name of the User.
role:
type: string
description: 'The role of the User(admin, member, developer).'
api_token:
type: string
description: The api_token of the User.
'/users/{id}':
get:
operationId: GetUsersUser
summary: Retrieve a User
description: Retrieves a User.
x-authenticated: true
parameters:
- in: path
name: id
required: true
description: The id of the User.
schema:
type: string
tags:
- Users
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
user:
$ref: '#/components/schemas/user'
/users/password-token:
post:
operationId: PostUsersUserPassword
summary: Set the password for a User.
description: Sets the password for a User given the correct token.
x-authenticated: true
requestBody:
content:
application/json:
schema:
required:
- email
- token
- password
properties:
email:
description: The Users email.
type: string
token:
description: The token generated from the 'password-token' endpoint.
type: string
password:
description: The Users new password.
type: string
tags:
- Users
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
user:
$ref: '#/components/schemas/user'
/variants:
get:
operationId: GetVariants
summary: List Product Variants.
description: Retrieves a list of Product Variants
x-authenticated: true
parameters:
- in: query
name: q
description: Query used for searching variants.
schema:
type: string
- in: query
name: offset
description: How many variants to skip in the result.
schema:
type: string
- in: query
name: limit
description: Limit the number of variants returned.
schema:
type: string
tags:
- Product Variant
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
variants:
type: array
items:
$ref: '#/components/schemas/product_variant'
components:
schemas:
address:
title: Address
description: An address.
x-resourceId: address
properties:
id:
type: string
customer_id:
type: string
company:
type: string
first_name:
type: string
last_name:
type: string
address_1:
type: string
address_2:
type: string
city:
type: string
country_code:
type: string
country:
$ref: '#/components/schemas/country'
batch_job:
title: Batch Job
description: A Batch Job.
x-resourceId: batch_job
properties:
id:
description: The unique identifier for the batch job.
type: string
type:
description: The type of batch job.
type: string
enum:
- product_import
- product_export
status:
description: The status of the batch job.
type: string
enum:
- created
- pre_processed
- processing
- completed
- canceled
- failed
created_by:
description: The unique identifier of the user that created the batch job.
type: string
context:
description: >-
The context of the batch job, the type of the batch job determines
what the context should contain.
type: object
dry_run:
description: Specify if the job must apply the modifications or not.
type: boolean
default: false
result:
description: The result of the batch job.
type: object
pre_processed_at:
description: The date from which the job has been pre processed.
type: string
format: date-time
confirmed_at:
description: The date when the confirmation has been done.
type: string
format: date-time
completed_at:
description: The date of the completion.
type: string
format: date-time
canceled_at:
description: The date of the concellation.
type: string
format: date-time
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
cart:
title: Cart
description: Represents a user cart
x-resourceId: cart
properties:
id:
type: string
email:
type: string
billing_address_id:
type: string
billing_address:
$ref: '#/components/schemas/address'
shipping_address_id:
type: string
shipping_address:
$ref: '#/components/schemas/address'
items:
type: array
items:
$ref: '#/components/schemas/line_item'
region_id:
type: string
region:
$ref: '#/components/schemas/region'
discounts:
type: array
items:
$ref: '#/components/schemas/region'
gift_cards:
type: array
items:
$ref: '#/components/schemas/gift_card'
customer_id:
type: string
customer:
$ref: '#/components/schemas/customer'
payment_session:
$ref: '#/components/schemas/payment_session'
payment_sessions:
type: array
items:
$ref: '#/components/schemas/payment_session'
payment:
$ref: '#/components/schemas/payment'
shipping_methods:
type: array
items:
$ref: '#/components/schemas/shipping_method'
type:
type: string
enum:
- default
- swap
- payment_link
completed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object
shipping_total:
type: integer
discount_total:
type: integer
tax_total:
type: integer
subtotal:
type: integer
refundable_amount:
type: integer
gift_card_total:
type: integer
claim_image:
title: Claim Image
description: Represents photo documentation of a claim.
x-resourceId: claim_image
properties:
id:
type: string
claim_item_id:
type: string
url:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object
claim_item:
title: Claim Item
description: >-
Represents a claimed item along with information about the reasons for
the claim.
x-resourceId: claim_item
properties:
id:
type: string
images:
type: array
items:
$ref: '#/components/schemas/claim_image'
claim_order_id:
type: string
item_id:
type: string
item:
description: The Line Item that the claim refers to
$ref: '#/components/schemas/line_item'
variant_id:
type: string
variant:
description: The Product Variant that is claimed.
$ref: '#/components/schemas/product_variant'
reason:
description: The reason for the claim
type: string
enum:
- missing_item
- wrong_item
- production_failure
- other
note:
description: 'An optional note about the claim, for additional information'
type: string
quantity:
description: >-
The quantity of the item that is being claimed; must be less than or
equal to the amount purchased in the original order.
type: integer
tags:
description: User defined tags for easy filtering and grouping.
type: array
items:
$ref: '#/components/schemas/claim_tag'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object
claim_order:
title: Claim Order
description: >-
Claim Orders represent a group of faulty or missing items. Each claim
order consists of a subset of items associated with an original order,
and can contain additional information about fulfillments and returns.
x-resourceId: claim_order
properties:
id:
type: string
type:
type: string
enum:
- refund
- replace
payment_status:
type: string
enum:
- na
- not_refunded
- refunded
fulfillment_status:
type: string
enum:
- not_fulfilled
- partially_fulfilled
- fulfilled
- partially_shipped
- shipped
- partially_returned
- returned
- canceled
- requires_action
claim_items:
description: The items that have been claimed
type: array
items:
$ref: '#/components/schemas/claim_item'
additional_items:
description: >-
Refers to the new items to be shipped when the claim order has the
type `replace`
type: array
items:
$ref: '#/components/schemas/line_item'
order_id:
description: The id of the order that the claim comes from.
type: string
return_order:
description: Holds information about the return if the claim is to be returned
$ref: '#/components/schemas/return'
shipping_address_id:
description: The id of the address that the new items should be shipped to
type: string
shipping_address:
description: The address that the new items should be shipped to
$ref: '#/components/schemas/address'
shipping_methods:
description: The shipping methods that the claim order will be shipped with.
type: array
items:
$ref: '#/components/schemas/shipping_method'
fulfillments:
description: The fulfillments of the new items to be shipped
type: array
items:
$ref: '#/components/schemas/fulfillment'
refund_amount:
description: The amount that will be refunded in conjunction with the claim
type: integer
canceled_at:
description: The date with timezone at which the Swap was canceled.
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
no_notification:
description: >-
Flag for describing whether or not notifications related to this
should be send.
type: boolean
metadata:
type: object
claim_tag:
title: Claim Tag
description: >-
Claim Tags are user defined tags that can be assigned to claim items for
easy filtering and grouping.
x-resourceId: claim_tag
properties:
id:
description: The id of the claim tag. Will be prefixed by `ctag_`.
type: string
value:
description: The value that the claim tag holds
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
update_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
country:
title: Country
description: Country details
x-resourceId: country
properties:
id:
description: The database id of the country
type: integer
iso_2:
description: The 2 character ISO code for the country.
type: string
iso_3:
description: The 3 character ISO code for the country.
type: string
num_code:
description: The numerical ISO code for the country.
type: string
name:
description: The normalized country name; in upper case.
type: string
display_name:
description: The country name appropriate for display.
type: string
currency:
title: Currency
description: Currency
x-resourceId: currency
properties:
code:
description: The 3 character ISO code for the currency.
type: string
symbol:
description: The symbol used to indicate the currency.
type: string
symbol_native:
description: The native symbol used to indicate the currency.
type: string
name:
description: The written name of the currency
type: string
custom_shipping_option:
title: Custom Shipping Option
description: >-
Custom Shipping Options are 'overriden' Shipping Options. Store managers
can attach a Custom Shipping Option to a cart in order to set a custom
price for a particular Shipping Option
x-resourceId: custom_shipping_option
properties:
id:
description: >-
The id of the Custom Shipping Option. This value will be prefixed
with `cso_`.
type: string
price:
description: >-
The custom price set that will override the shipping option's
original price
type: integer
shipping_option_id:
description: >-
The id of the Shipping Option that the custom shipping option
overrides
anyOf:
- $ref: '#/components/schemas/shipping_option'
cart_id:
description: The id of the Cart that the custom shipping option is attached to
anyOf:
- $ref: '#/components/schemas/cart'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
customer_group:
title: Customer Group
description: Represents a customer group
x-resourceId: customer_group
properties:
id:
type: string
name:
type: string
customers:
type: array
items:
$ref: '#/components/schemas/customer'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object
customer:
title: Customer
description: Represents a customer
x-resourceId: customer
properties:
id:
type: string
email:
type: string
billing_address_id:
type: string
billing_address:
description: The Customer's billing address.
anyOf:
- $ref: '#/components/schemas/address'
shipping_addresses:
type: array
items:
$ref: '#/components/schemas/address'
first_name:
type: string
last_name:
type: string
phone:
type: string
has_account:
type: boolean
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object
discount_condition_customer_group:
title: Product Tag Discount Condition
description: Associates a discount condition with a customer group
x-resourceId: discount_condition_customer_group
properties:
customer_group_id:
description: The id of the Product Tag
type: string
condition_id:
description: The id of the Discount Condition
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
discount_condition_product_collection:
title: Product Collection Discount Condition
description: Associates a discount condition with a product collection
x-resourceId: discount_condition_product_collection
properties:
product_collection_id:
description: The id of the Product Collection
type: string
condition_id:
description: The id of the Discount Condition
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
discount_condition_product_tag:
title: Product Tag Discount Condition
description: Associates a discount condition with a product tag
x-resourceId: discount_condition_product_tag
properties:
product_tag_id:
description: The id of the Product Tag
type: string
condition_id:
description: The id of the Discount Condition
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
discount_condition_product_type:
title: Product Type Discount Condition
description: Associates a discount condition with a product type
x-resourceId: discount_condition_product
properties:
product_type_id:
description: The id of the Product Type
type: string
condition_id:
description: The id of the Discount Condition
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
discount_condition_product:
title: Product Discount Condition
description: Associates a discount condition with a product
x-resourceId: discount_condition_product
properties:
product_id:
description: The id of the Product
type: string
condition_id:
description: The id of the Discount Condition
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
discount_condition:
title: Discount Condition
description: Holds rule conditions for when a discount is applicable
x-resourceId: discount_condition
properties:
id:
description: The id of the Discount Condition. Will be prefixed by `discon_`.
type: string
type:
description: The type of the Condition
type: string
enum:
- products
- product_types
- product_collections
- product_tags
- customer_groups
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
update_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
discount_rule:
title: Discount Rule
description: >-
Holds the rules that governs how a Discount is calculated when applied
to a Cart.
x-resourceId: discount_rule
properties:
id:
description: The id of the Discount Rule. Will be prefixed by `dru_`.
type: string
type:
description: >-
The type of the Discount, can be `fixed` for discounts that reduce
the price by a fixed amount, `percentage` for percentage reductions
or `free_shipping` for shipping vouchers.
type: string
enum:
- fixed
- percentage
- free_shipping
description:
description: A short description of the discount
type: string
value:
description: >-
The value that the discount represents; this will depend on the type
of the discount
type: integer
allocation:
description: The scope that the discount should apply to.
type: string
enum:
- total
- item
conditions:
description: >-
A set of conditions that can be used to limit when the discount can
be used
type: array
items:
$ref: '#/components/schemas/discount_condition'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
update_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
discount:
title: Discount
description: >-
Represents a discount that can be applied to a cart for promotional
purposes.
x-resourceId: discount
properties:
id:
description: The id of the Discount. Will be prefixed by `disc_`.
type: string
code:
description: >-
A unique code for the discount - this will be used by the customer
to apply the discount
type: string
is_dynamic:
description: >-
A flag to indicate if multiple instances of the discount can be
generated. I.e. for newsletter discounts
type: boolean
rule:
description: The Discount Rule that governs the behaviour of the Discount
anyOf:
- $ref: '#/components/schemas/discount_rule'
is_disabled:
description: >-
Whether the Discount has been disabled. Disabled discounts cannot be
applied to carts
type: boolean
parent_discount_id:
description: >-
The Discount that the discount was created from. This will always be
a dynamic discount
type: string
starts_at:
description: The time at which the discount can be used.
type: string
format: date-time
ends_at:
description: The time at which the discount can no longer be used.
type: string
format: date-time
regions:
description: The Regions in which the Discount can be used
type: array
items:
$ref: '#/components/schemas/region'
usage_limit:
description: The maximum number of times that a discount can be used.
type: integer
usage_count:
description: The number of times a discount has been used.
type: integer
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
draft-order:
title: DraftOrder
description: Represents a draft order
x-resourceId: draft-order
properties:
id:
type: string
status:
type: string
enum:
- open
- completed
display_id:
type: string
cart_id:
type: string
cart:
anyOf:
- $ref: '#/components/schemas/cart'
order_id:
type: string
order:
anyOf:
- $ref: '#/components/schemas/order'
canceled_at:
type: string
format: date-time
created_at:
type: string
format: date-time
update_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
completed_at:
type: string
format: date-time
no_notification_order:
type: boolean
metadata:
type: object
idempotency_key:
type: string
fulfillment_item:
title: Fulfillment Item
description: >-
Correlates a Line Item with a Fulfillment, keeping track of the quantity
of the Line Item.
x-resourceId: fulfillment_item
properties:
fulfillment_id:
description: The id of the Fulfillment that the Fulfillment Item belongs to.
type: string
item_id:
description: The id of the Line Item that the Fulfillment Item references.
type: string
item:
description: The Line Item that the Fulfillment Item references.
anyOf:
- $ref: '#/components/schemas/line_item'
quantity:
description: The quantity of the Line Item that is included in the Fulfillment.
type: integer
fulfillment_provider:
title: Fulfillment Provider
description: >-
Represents a fulfillment provider plugin and holds its installation
status.
x-resourceId: fulfillment_provider
properties:
id:
description: The id of the fulfillment provider as given by the plugin.
type: string
is_installed:
description: >-
Whether the plugin is installed in the current version. Plugins that
are no longer installed are not deleted by will have this field set
to `false`.
type: boolean
fulfillment:
title: Fulfillment
description: >-
Fulfillments are created once store operators can prepare the purchased
goods. Fulfillments will eventually be shipped and hold information
about how to track shipments. Fulfillments are created through a
provider, which is typically an external shipping aggregator, shipping
partner og 3PL, most plugins will have asynchronous communications with
these providers through webhooks in order to automatically update and
synchronize the state of Fulfillments.
x-resourceId: fulfillment
properties:
id:
description: The id of the Fulfillment. This value will be prefixed by `ful_`.
type: string
claim_order_id:
description: The id of the Claim that the Fulfillment belongs to.
type: string
swap_id:
description: The id of the Swap that the Fulfillment belongs to.
type: string
order_id:
description: The id of the Order that the Fulfillment belongs to.
type: string
provider_id:
description: >-
The id of the Fulfillment Provider responsible for handling the
fulfillment
type: string
items:
description: >-
The Fulfillment Items in the Fulfillment - these hold information
about how many of each Line Item has been fulfilled.
type: array
items:
$ref: '#/components/schemas/fulfillment_item'
tracking_links:
description: >-
The Tracking Links that can be used to track the status of the
Fulfillment, these will usually be provided by the Fulfillment
Provider.
type: array
items:
$ref: '#/components/schemas/tracking_link'
tracking_numbers:
deprecated: true
description: >-
The tracking numbers that can be used to track the status of the
fulfillment.
type: array
items:
type: string
shipped_at:
description: The date with timezone at which the Fulfillment was shipped.
type: string
format: date-time
no_notification:
description: >-
Flag for describing whether or not notifications related to this
should be send.
type: boolean
canceled_at:
description: The date with timezone at which the Fulfillment was canceled.
type: string
format: date-time
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
gift_card_transaction:
title: Gift Card Transaction
description: >-
Gift Card Transactions are created once a Customer uses a Gift Card to
pay for their Order
x-resourceId: gift_card_transaction
properties:
id:
description: >-
The id of the Gift Card Transaction. This value will be prefixed by
`gct_`.
type: string
gift_card_id:
description: The id of the Gift Card that was used in the transaction.
type: string
gift_card:
description: The Gift Card that was used in the transaction.
anyOf:
- $ref: '#/components/schemas/gift_card'
order_id:
description: The id of the Order that the Gift Card was used to pay for.
type: string
amount:
description: The amount that was used from the Gift Card.
type: integer
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
gift_card:
title: Gift Card
description: >-
Gift Cards are redeemable and represent a value that can be used towards
the payment of an Order.
x-resourceId: gift_card
properties:
id:
description: The id of the Gift Card. This value will be prefixed by `gift_`.
type: string
code:
description: >-
The unique code that identifies the Gift Card. This is used by the
Customer to redeem the value of the Gift Card.
type: string
value:
description: The value that the Gift Card represents.
type: integer
balance:
description: The remaining value on the Gift Card.
type: integer
region_id:
description: The id of the Region in which the Gift Card is available.
type: string
region:
description: The Region in which the Gift Card is available.
anyOf:
- $ref: '#/components/schemas/region'
order_id:
description: The id of the Order that the Gift Card was purchased in.
type: string
is_disabled:
description: >-
Whether the Gift Card has been disabled. Disabled Gift Cards cannot
be applied to carts.
type: boolean
ends_at:
description: The time at which the Gift Card can no longer be used.
type: string
format: date-time
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
image:
title: Image
description: Images holds a reference to a URL at which the image file can be found.
x-resourceId: image
properties:
id:
description: The id of the Image. This value will be prefixed by `img_`.
type: string
url:
description: The URL at which the image file can be found.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
update_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
invite:
title: Invite
description: Represents an invite
x-resourceId: invite
properties:
id:
type: string
user_email:
type: string
role:
type: string
enum:
- admin
- member
- developer
accepted:
type: boolean
token:
type: string
expores_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object
line_item:
title: Line Item
description: >-
Line Items represent purchasable units that can be added to a Cart for
checkout. When Line Items are purchased they will get copied to the
resulting order and can eventually be referenced in Fulfillments and
Returns. Line Items may also be created when processing Swaps and
Claims.
x-resourceId: line_item
properties:
id:
description: The id of the Line Item. This value will be prefixed by `item_`.
type: string
cart_id:
description: The id of the Cart that the Line Item belongs to.
type: string
order_id:
description: The id of the Order that the Line Item belongs to.
type: string
swap_id:
description: The id of the Swap that the Line Item belongs to.
type: string
claim_order_id:
description: The id of the Claim that the Line Item belongs to.
type: string
title:
description: >-
The title of the Line Item, this should be easily identifiable by
the Customer.
type: string
description:
description: A more detailed description of the contents of the Line Item.
type: string
thumbnail:
description: A URL string to a small image of the contents of the Line Item.
type: string
is_giftcard:
description: Flag to indicate if the Line Item is a Gift Card.
type: boolean
should_merge:
description: >-
Flag to indicate if new Line Items with the same variant should be
merged or added as an additional Line Item.
type: boolean
allow_discounts:
description: >-
Flag to indicate if the Line Item should be included when doing
discount calculations.
type: boolean
unit_price:
description: >-
The price of one unit of the content in the Line Item. This should
be in the currency defined by the Cart/Order/Swap/Claim that the
Line Item belongs to.
type: boolean
variant_id:
description: The id of the Product Variant contained in the Line Item.
type: string
variant:
description: The Product Variant contained in the Line Item.
anyOf:
- $ref: '#/components/schemas/product_variant'
quantity:
description: The quantity of the content in the Line Item.
type: integer
fulfilled_quantity:
description: The quantity of the Line Item that has been fulfilled.
type: integer
returned_quantity:
description: The quantity of the Line Item that has been returned.
type: integer
shipped_quantity:
description: The quantity of the Line Item that has been shipped.
type: integer
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
refundable:
description: >-
The amount that can be refunded from the given Line Item. Takes
taxes and discounts into consideration.
type: integer
money_amount:
title: Money Amount
description: >-
Money Amounts represents an amount that a given Product Variant can be
purcased for. Each Money Amount either has a Currency or Region
associated with it to indicate the pricing in a given Currency or, for
fully region-based pricing, the given price in a specific Region. If
region-based pricing is used the amount will be in the currency defined
for the Reigon.
x-resourceId: money_amount
properties:
id:
description: The id of the Money Amount. This value will be prefixed by `ma_`.
type: string
currency_code:
description: The 3 character currency code that the Money Amount is given in.
type: string
amount:
description: >-
The amount in the smallest currecny unit (e.g. cents 100 cents to
charge $1) that the Product Variant will cost.
type: integer
min_quantity:
description: >-
The minimum quantity that the Money Amount applies to. If this value
is not set, the Money Amount applies to all quantities.
type: integer
max_quantity:
description: >-
The maximum quantity that the Money Amount applies to. If this value
is not set, the Money Amount applies to all quantities.
type: integer
variant_id:
description: The id of the Product Variant that the Money Amount belongs to.
type: string
region_id:
description: The id of the Region that the Money Amount is defined for.
type: string
region:
description: The Region that the Money Amount is defined for.
anyOf:
- $ref: '#/components/schemas/region'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
note:
title: Note
description: >-
Notes are elements which we can use in association with different
resources to allow users to describe additional information in relation
to these.
x-resourceId: note
properties:
id:
description: The id of the Note. This value will be prefixed by `note_`.
type: string
resource_type:
description: The type of resource that the Note refers to.
type: string
resource_id:
description: The id of the resource that the Note refers to.
type: string
value:
description: The contents of the note.
type: string
author:
description: The author of the note.
anyOf:
- $ref: '#/components/schemas/user'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
notification_provider:
title: Notification Provider
description: >-
Represents a notification provider plugin and holds its installation
status.
x-resourceId: notification_provider
properties:
id:
description: The id of the notification provider as given by the plugin.
type: string
is_installed:
description: >-
Whether the plugin is installed in the current version. Plugins that
are no longer installed are not deleted by will have this field set
to `false`.
type: boolean
notification:
title: Notification
description: >-
Notifications a communications sent via Notification Providers as a
reaction to internal events such as `order.placed`. Notifications can be
used to show a chronological timeline for communications sent to a
Customer regarding an Order, and enables resends.
x-resourceId: notification
properties:
id:
description: The id of the Notification. This value will be prefixed by `noti_`.
type: string
event_name:
description: The name of the event that the notification was sent for.
type: string
resource_type:
description: The type of resource that the Notification refers to.
type: string
resource_id:
description: The id of the resource that the Notification refers to.
type: string
customer_id:
description: The id of the Customer that the Notification was sent to.
type: string
customer:
description: The Customer that the Notification was sent to.
anyOf:
- $ref: '#/components/schemas/customer'
to:
description: >-
The address that the Notification was sent to. This will usually be
an email address, but represent other addresses such as a chat bot
user id
type: string
data:
description: >-
The data that the Notification was sent with. This contains all the
data necessary for the Notification Provider to initiate a resend.
type: object
parent_id:
description: The id of the Notification that was originally sent.
type: string
resends:
description: >-
The resends that have been completed after the original
Notification.
type: array
items:
$ref: '#/components/schemas/notification_resend'
provider_id:
description: The id of the Notification Provider that handles the Notification.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
notification_resend:
title: Notification Resend
description: A resend of a Notification.
x-resourceId: notification_resend
properties:
id:
description: The id of the Notification. This value will be prefixed by `noti_`.
type: string
event_name:
description: The name of the event that the notification was sent for.
type: string
resource_type:
description: The type of resource that the Notification refers to.
type: string
resource_id:
description: The id of the resource that the Notification refers to.
type: string
to:
description: >-
The address that the Notification was sent to. This will usually be
an email address, but represent other addresses such as a chat bot
user id
type: string
data:
description: >-
The data that the Notification was sent with. This contains all the
data necessary for the Notification Provider to initiate a resend.
type: object
parent_id:
description: The id of the Notification that was originally sent.
type: string
provider_id:
description: The id of the Notification Provider that handles the Notification.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
OAuth:
title: OAuth
description: Represent an OAuth app
x-resourceId: OAuth
properties:
id:
type: string
display_name:
type: string
application_name:
type: string
install_url:
type: string
uninstall_url:
type: integer
data:
type: object
order:
title: Order
description: Represents an order
x-resourceId: order
properties:
id:
type: string
status:
type: string
enum:
- pending
- completed
- archived
- canceled
- requires_action
fulfillment_status:
type: string
enum:
- not_fulfilled
- partially_fulfilled
- fulfilled
- partially_shipped
- shipped
- partially_returned
- returned
- canceled
- requires_action
payment_status:
type: string
enum:
- not_paid
- awaiting
- captured
- partially_refunded
- refuneded
- canceled
- requires_action
display_id:
type: integer
cart_id:
type: string
currency_code:
type: string
tax_rate:
type: number
discounts:
type: array
items:
$ref: '#/components/schemas/discount'
email:
type: string
billing_address_id:
type: string
billing_address:
anyOf:
- $ref: '#/components/schemas/address'
shipping_address_id:
type: string
shipping_address:
anyOf:
- $ref: '#/components/schemas/address'
items:
type: array
items:
$ref: '#/components/schemas/line_item'
region_id:
type: string
region:
anyOf:
- $ref: '#/components/schemas/region'
gift_cards:
type: array
items:
$ref: '#/components/schemas/gift_card'
customer_id:
type: string
customer:
anyOf:
- $ref: '#/components/schemas/customer'
payment_session:
anyOf:
- $ref: '#/components/schemas/payment_session'
payment_sessions:
type: array
items:
$ref: '#/components/schemas/payment_session'
payments:
type: array
items:
$ref: '#/components/schemas/payment'
shipping_methods:
type: array
items:
$ref: '#/components/schemas/shipping_method'
fulfillments:
type: array
items:
$ref: '#/components/schemas/fulfillment'
returns:
type: array
items:
$ref: '#/components/schemas/return'
claims:
type: array
items:
$ref: '#/components/schemas/claim_order'
refunds:
type: array
items:
$ref: '#/components/schemas/refund'
swaps:
type: array
items:
$ref: '#/components/schemas/refund'
gift_card_transactions:
type: array
items:
$ref: '#/components/schemas/gift_card_transaction'
canceled_at:
type: string
format: date-time
created_at:
type: string
format: date-time
update_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object
shipping_total:
type: integer
discount_total:
type: integer
tax_total:
type: integer
subtotal:
type: integer
refundable_amount:
type: integer
gift_card_total:
type: integer
paid_total:
type: integer
no_notification:
description: >-
Flag for describing whether or not notifications related to this
should be send.
type: boolean
payment_provider:
title: Payment Provider
description: Represents a Payment Provider plugin and holds its installation status.
x-resourceId: payment_provider
properties:
id:
description: The id of the payment provider as given by the plugin.
type: string
is_installed:
description: >-
Whether the plugin is installed in the current version. Plugins that
are no longer installed are not deleted by will have this field set
to `false`.
type: boolean
payment_session:
title: Payment Session
description: >-
Payment Sessions are created when a Customer initilizes the checkout
flow, and can be used to hold the state of a payment flow. Each Payment
Session is controlled by a Payment Provider, who is responsible for the
communication with external payment services. Authorized Payment
Sessions will eventually get promoted to Payments to indicate that they
are authorized for capture/refunds/etc.
x-resourceId: payment_session
properties:
id:
description: >-
The id of the Payment Session. This value will be prefixed with
`ps_`.
type: string
cart_id:
description: The id of the Cart that the Payment Session is created for.
type: string
provider_id:
description: >-
The id of the Payment Provider that is responsible for the Payment
Session
type: string
is_selected:
description: >-
A flag to indicate if the Payment Session has been selected as the
method that will be used to complete the purchase.
type: boolean
status:
description: >-
Indicates the status of the Payment Session. Will default to
`pending`, and will eventually become `authorized`. Payment Sessions
may have the status of `requires_more` to indicate that further
actions are to be completed by the Customer.
type: string
enum:
- authorized
- pending
- requires_more
- error
- canceled
data:
description: >-
The data required for the Payment Provider to identify, modify and
process the Payment Session. Typically this will be an object that
holds an id to the external payment session, but can be an empty
object if the Payment Provider doesn't hold any state.
type: object
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
payment:
title: Payment
description: >-
Payments represent an amount authorized with a given payment method,
Payments can be captured, canceled or refunded.
x-resourceId: payment
properties:
id:
description: The id of the Payment. This value will be prefixed with `pay_`.
type: string
swap_id:
description: The id of the Swap that the Payment is used for.
type: string
order_id:
description: The id of the Order that the Payment is used for.
type: string
cart_id:
description: The id of the Cart that the Payment Session is created for.
type: string
amount:
description: The amount that the Payment has been authorized for.
type: integer
currency_code:
description: The 3 character ISO currency code that the Payment is completed in.
type: string
amount_refunded:
description: >-
The amount of the original Payment amount that has been refunded
back to the Customer.
type: integer
provider_id:
description: The id of the Payment Provider that is responsible for the Payment
type: string
data:
description: >-
The data required for the Payment Provider to identify, modify and
process the Payment. Typically this will be an object that holds an
id to the external payment session, but can be an empty object if
the Payment Provider doesn't hold any state.
type: object
captured_at:
description: The date with timezone at which the Payment was captured.
type: string
format: date-time
canceled_at:
description: The date with timezone at which the Payment was canceled.
type: string
format: date-time
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
price_list:
title: Price List
description: >-
Price Lists represents a set of prices that overrides the default price
for one or more product variants.
x-resourceId: price_list
properties:
id:
description: The id of the Price List. This value will be prefixed by `pl_`.
type: string
type:
description: >-
The type of Price List. This can be one of either `sale` or
`override`.
type: string
enum:
- sale
- override
starts_at:
description: The date with timezone that the Price List starts being valid.
type: string
format: date-time
ends_at:
description: The date with timezone that the Price List stops being valid.
type: string
format: date-time
customer_groups:
description: The Customer Groups that the Price List applies to.
type: array
items:
$ref: '#/components/schemas/customer_group'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
product_collection:
title: Product Collection
description: Product Collections represents a group of Products that are related.
x-resourceId: product_collection
properties:
id:
description: >-
The id of the Product Collection. This value will be prefixed with
`pcol_`.
type: string
title:
description: The title that the Product Collection is identified by.
type: string
handle:
description: >-
A unique string that identifies the Product Collection - can for
example be used in slug structures.
type: string
products:
description: The Products contained in the Product Collection.
type: array
items:
$ref: '#/components/schemas/product'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product_option_value:
title: Product Option Value
description: >-
A value given to a Product Variant's option set. Product Variant have a
Product Option Value for each of the Product Options defined on the
Product.
x-resourceId: product_option_value
properties:
id:
description: >-
The id of the Product Option Value. This value will be prefixed with
`optval_`.
type: string
value:
description: >-
The value that the Product Variant has defined for the specific
Product Option (e.g. if the Product Option is "Size" this value
could be "Small", "Medium" or "Large").
type: string
option_id:
description: >-
The id of the Product Option that the Product Option Value is
defined for.
type: string
variant_id:
description: >-
The id of the Product Variant that the Product Option Value is
defined for.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product_option:
title: Product Option
description: >-
Product Options define properties that may vary between different
variants of a Product. Common Product Options are "Size" and "Color",
but Medusa doesn't limit what Product Options that can be defined.
x-resourceId: product_option
properties:
id:
description: >-
The id of the Product Option. This value will be prefixed with
`opt_`.
type: string
title:
description: The title that the Product Option is defined by (e.g. "Size").
type: string
values:
description: The Product Option Values that are defined for the Product Option.
type: array
items:
$ref: '#/components/schemas/product_option_value'
product_id:
description: The id of the Product that the Product Option is defined for.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product_tag:
title: Product Tag
description: Product Tags can be added to Products for easy filtering and grouping.
x-resourceId: product_tag
properties:
id:
description: The id of the Product Tag. This value will be prefixed with `ptag_`.
type: string
value:
description: The value that the Product Tag represents (e.g. "Pants").
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product_tax_rate:
title: Product Tax Rate
description: >-
Associates a tax rate with a product to indicate that the product is
taxed in a certain way
x-resourceId: product_tax_rate
properties:
product_id:
description: The id of the Product
type: string
rate_id:
description: The id of the Tax Rate
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product_type_tax_rate:
title: Product Type Tax Rate
description: >-
Associates a tax rate with a product type to indicate that the product
type is taxed in a certain way
x-resourceId: product_type_tax_rate
properties:
product_type_id:
description: The id of the Product type
type: string
rate_id:
description: The id of the Tax Rate
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product_type:
title: Product Type
description: >-
Product Type can be added to Products for filtering and reporting
purposes.
x-resourceId: product_type
properties:
id:
description: >-
The id of the Product Type. This value will be prefixed with
`ptyp_`.
type: string
value:
description: The value that the Product Type represents (e.g. "Clothing").
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product_variant:
title: Product Variant
description: >-
Product Variants represent a Product with a specific set of Product
Option configurations. The maximum number of Product Variants that a
Product can have is given by the number of available Product Option
combinations.
x-resourceId: product_variant
properties:
id:
description: >-
The id of the Product Variant. This value will be prefixed with
`variant_`.
type: string
title:
description: >-
A title that can be displayed for easy identification of the Product
Variant.
type: string
product_id:
description: The id of the Product that the Product Variant belongs to.
type: string
prices:
description: >-
The Money Amounts defined for the Product Variant. Each Money Amount
represents a price in a given currency or a price in a specific
Region.
type: array
items:
$ref: '#/components/schemas/money_amount'
sku:
description: >-
The unique stock keeping unit used to identify the Product Variant.
This will usually be a unqiue identifer for the item that is to be
shipped, and can be referenced across multiple systems.
type: string
barcode:
description: >-
A generic field for a GTIN number that can be used to identify the
Product Variant.
type: string
ean:
description: >-
An EAN barcode number that can be used to identify the Product
Variant.
type: string
upc:
description: >-
A UPC barcode number that can be used to identify the Product
Variant.
type: string
inventory_quantity:
description: The current quantity of the item that is stocked.
type: integer
allow_backorder:
description: >-
Whether the Product Variant should be purchasable when
`inventory_quantity` is 0.
type: boolean
manage_inventory:
description: Whether Medusa should manage inventory for the Product Variant.
type: boolean
hs_code:
description: >-
The Harmonized System code of the Product Variant. May be used by
Fulfillment Providers to pass customs information to shipping
carriers.
type: string
origin_country:
description: >-
The country in which the Product Variant was produced. May be used
by Fulfillment Providers to pass customs information to shipping
carriers.
type: string
mid_code:
description: >-
The Manufacturers Identification code that identifies the
manufacturer of the Product Variant. May be used by Fulfillment
Providers to pass customs information to shipping carriers.
type: string
material:
description: >-
The material and composition that the Product Variant is made of,
May be used by Fulfillment Providers to pass customs information to
shipping carriers.
type: string
weight:
description: >-
The weight of the Product Variant. May be used in shipping rate
calculations.
type: string
height:
description: >-
The height of the Product Variant. May be used in shipping rate
calculations.
type: string
width:
description: >-
The width of the Product Variant. May be used in shipping rate
calculations.
type: string
length:
description: >-
The length of the Product Variant. May be used in shipping rate
calculations.
type: string
options:
description: The Product Option Values specified for the Product Variant.
type: array
items:
$ref: '#/components/schemas/product_option_value'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
product:
title: Product
description: >-
Products are a grouping of Product Variants that have common properties
such as images and descriptions. Products can have multiple options
which define the properties that Product Variants differ by.
x-resourceId: product
properties:
id:
description: The id of the Product. This value will be prefixed with `prod_`.
type: string
title:
description: >-
A title that can be displayed for easy identification of the
Product.
type: string
subtitle:
description: >-
An optional subtitle that can be used to further specify the
Product.
type: string
description:
description: A short description of the Product.
type: string
handle:
description: A unique identifier for the Product (e.g. for slug structure).
type: string
is_giftcard:
description: >-
Whether the Product represents a Gift Card. Products that represent
Gift Cards will automatically generate a redeemable Gift Card code
once they are purchased.
type: boolean
discountable:
description: >-
Whether the Product can be discounted. Discounts will not apply to
Line Items of this Product when this flag is set to `false`.
type: boolean
images:
description: Images of the Product
type: array
items:
$ref: '#/components/schemas/image'
thumbnail:
description: A URL to an image file that can be used to identify the Product.
type: string
options:
description: >-
The Product Options that are defined for the Product. Product
Variants of the Product will have a unique combination of Product
Option Values.
type: array
items:
$ref: '#/components/schemas/product_option'
variants:
description: >-
The Product Variants that belong to the Product. Each will have a
unique combination of Product Option Values.
type: array
items:
$ref: '#/components/schemas/product_variant'
profile_id:
description: >-
The id of the Shipping Profile that the Product belongs to. Shipping
Profiles have a set of defined Shipping Options that can be used to
Fulfill a given set of Products.
type: string
hs_code:
description: >-
The Harmonized System code of the Product Variant. May be used by
Fulfillment Providers to pass customs information to shipping
carriers.
type: string
origin_country:
description: >-
The country in which the Product Variant was produced. May be used
by Fulfillment Providers to pass customs information to shipping
carriers.
type: string
mid_code:
description: >-
The Manufacturers Identification code that identifies the
manufacturer of the Product Variant. May be used by Fulfillment
Providers to pass customs information to shipping carriers.
type: string
material:
description: >-
The material and composition that the Product Variant is made of,
May be used by Fulfillment Providers to pass customs information to
shipping carriers.
type: string
weight:
description: >-
The weight of the Product Variant. May be used in shipping rate
calculations.
type: string
height:
description: >-
The height of the Product Variant. May be used in shipping rate
calculations.
type: string
width:
description: >-
The width of the Product Variant. May be used in shipping rate
calculations.
type: string
length:
description: >-
The length of the Product Variant. May be used in shipping rate
calculations.
type: string
type:
description: The Product Type of the Product (e.g. "Clothing")
anyOf:
- $ref: '#/components/schemas/product_type'
collection:
description: The Product Collection that the Product belongs to (e.g. "SS20")
anyOf:
- $ref: '#/components/schemas/product_collection'
tags:
description: The Product Tags assigned to the Product.
type: array
items:
$ref: '#/components/schemas/product_tag'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
refund:
title: Refund
description: >-
Refund represent an amount of money transfered back to the Customer for
a given reason. Refunds may occur in relation to Returns, Swaps and
Claims, but can also be initiated by a store operator.
x-resourceId: refund
properties:
id:
description: The id of the Refund. This value will be prefixed with `ref_`.
type: string
order_id:
description: The id of the Order that the Refund is related to.
type: string
amount:
description: The amount that has be refunded to the Customer.
type: integer
note:
description: An optional note explaining why the amount was refunded.
type: string
reason:
description: >-
The reason given for the Refund, will automatically be set when
processed as part of a Swap, Claim or Return.
type: string
enum:
- discount
- return
- swap
- claim
- other
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
region:
title: Region
description: >-
Regions hold settings for how Customers in a given geographical location
shop. The is, for example, where currencies and tax rates are defined. A
Region can consist of multiple countries to accomodate common shopping
settings across countries.
x-resourceId: region
properties:
id:
description: The id of the Region. This value will be prefixed with `reg_`.
type: string
name:
description: >-
The name of the region as displayed to the customer. If the Region
only has one country it is recommended to write the country name.
type: string
currency_code:
description: >-
The 3 character ISO currency code that Customers will shop in in the
Region.
type: string
tax_rate:
description: The tax rate that should be charged on purchases in the Region.
type: number
tax_code:
description: >-
The tax code used on purchases in the Region. This may be used by
other systems for accounting purposes.
type: string
countries:
description: The countries that are included in the Region.
type: array
items:
$ref: '#/components/schemas/country'
payment_providers:
description: >-
The Payment Providers that can be used to process Payments in the
Region.
type: array
items:
$ref: '#/components/schemas/payment_provider'
fulfillment_providers:
description: >-
The Fulfillment Providers that can be used to fulfill orders in the
Region.
type: array
items:
$ref: '#/components/schemas/fulfillment_provider'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
return_item:
title: Return Item
description: >-
Correlates a Line Item with a Return, keeping track of the quantity of
the Line Item that will be returned.
x-resourceId: return_item
properties:
return_id:
description: The id of the Return that the Return Item belongs to.
type: string
item_id:
description: The id of the Line Item that the Return Item references.
type: string
item:
description: The Line Item that the Return Item references.
anyOf:
- $ref: '#/components/schemas/line_item'
quantity:
description: The quantity of the Line Item that is included in the Return.
type: integer
is_requested:
description: >-
Whether the Return Item was requested initially or received
unexpectedly in the warehouse.
type: boolean
requested_quantity:
description: The quantity that was originally requested to be returned.
type: integer
recieved_quantity:
description: The quantity that was received in the warehouse.
type: integer
reason:
description: The reason for returning the item.
anyOf:
- $ref: '#/components/schemas/return_reason'
note:
description: An optional note with additional details about the Return.
type: string
metadata:
description: An optional key-value map with additional information.
type: object
return_reason:
title: Return Reason
description: >-
A Reason for why a given product is returned. A Return Reason can be
used on Return Items in order to indicate why a Line Item was returned.
x-resourceId: return_reason
properties:
id:
description: The id of the Return Reason will start with `rr_`.
type: string
description:
description: A description of the Reason.
type: string
label:
description: A text that can be displayed to the Customer as a reason.
type: string
value:
description: The value to identify the reason by.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
return:
title: Return
description: >-
Return orders hold information about Line Items that a Customer wishes
to send back, along with how the items will be returned. Returns can be
used as part of a Swap.
x-resourceId: return
properties:
id:
description: The id of the Return. This value will be prefixed with `ret_`.
type: string
status:
description: Status of the Return.
type: string
enum:
- requested
- received
- requires_action
items:
description: >-
The Return Items that will be shipped back to the warehouse. type:
array items: $ref:
swap_id:
description: The id of the Swap that the Return is a part of.
type: string
order_id:
description: The id of the Order that the Return is made from.
type: string
claim_order_id:
description: The id of the Claim that the Return is a part of.
type: string
shipping_method:
description: >-
The Shipping Method that will be used to send the Return back. Can
be null if the Customer facilitates the return shipment themselves.
anyOf:
- $ref: '#/components/schemas/shipping_method'
shipping_data:
description: >-
Data about the return shipment as provided by the Fulfilment
Provider that handles the return shipment.
type: object
refund_amount:
description: The amount that should be refunded as a result of the return.
type: integer
received_at:
description: The date with timezone at which the return was received.
type: string
format: date-time
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
no_notification:
description: >-
When set to true, no notification will be sent related to this
return.
type: boolean
metadata:
description: An optional key-value map with additional information.
type: object
shipping_method:
title: Shipping Method
description: >-
Shipping Methods represent a way in which an Order or Return can be
shipped. Shipping Methods are built from a Shipping Option, but may
contain additional details, that can be necessary for the Fulfillment
Provider to handle the shipment.
x-resourceId: shipping_method
properties:
id:
description: >-
The id of the Shipping Method. This value will be prefixed with
`sm_`.
type: string
shipping_option_id:
description: >-
The id of the Shipping Option that the Shipping Method is built
from.
type: string
shipping_option:
description: The Shipping Option that the Shipping Method is built from.
anyOf:
- $ref: '#/components/schemas/shipping_option'
order_id:
description: The id of the Order that the Shipping Method is used on.
type: string
return_id:
description: The id of the Return that the Shipping Method is used on.
type: string
swap_id:
description: The id of the Swap that the Shipping Method is used on.
type: string
cart_id:
description: The id of the Cart that the Shipping Method is used on.
type: string
claim_order_id:
description: The id of the Claim that the Shipping Method is used on.
type: string
price:
description: >-
The amount to charge for the Shipping Method. The currency of the
price is defined by the Region that the Order that the Shipping
Method belongs to is a part of.
type: integer
data:
description: >-
Additional data that the Fulfillment Provider needs to fulfill the
shipment. This is used in combination with the Shipping Options
data, and may contain information such as a drop point id.
type: object
shipping_option_requirement:
title: Shipping Option Requirement
description: >-
A requirement that a Cart must satisfy for the Shipping Option to be
available to the Cart.
x-resourceId: shipping_option_requirement
properties:
id:
description: >-
The id of the Shipping Option Requirement. This value will be
prefixed with `sor_`.
type: string
shipping_option_id:
description: >-
The id of the Shipping Option that the Shipping Option Requirement
belongs to.
type: string
type:
description: >-
The type of the requirement, this defines how the value will be
compared to the Cart's total. `min_subtotal` requirements define the
minimum subtotal that is needed for the Shipping Option to be
available, while the `max_subtotal` defines the maximum subtotal
that the Cart can have for the Shipping Option to be available.
type: string
enum:
- min_subtotal
- max_subtotal
amount:
description: The amount to compare the Cart subtotal to.
type: integer
shipping_option:
title: Shipping Option
description: >-
Shipping Options represent a way in which an Order or Return can be
shipped. Shipping Options have an associated Fulfillment Provider that
will be used when the fulfillment of an Order is initiated. Shipping
Options themselves cannot be added to Carts, but serve as a template for
Shipping Methods. This distinction makes it possible to customize
individual Shipping Methods with additional information.
x-resourceId: shipping_option
properties:
id:
description: >-
The id of the Shipping Option. This value will be prefixed with
`so_`.
type: string
name:
description: >-
The name given to the Shipping Option - this may be displayed to the
Customer.
type: string
region_id:
description: The id of the Region that the Shipping Option belongs to.
type: string
region:
description: The id of the Region that the Shipping Option belongs to.
anyOf:
- $ref: '#/components/schemas/region'
profile_id:
description: >-
The id of the Shipping Profile that the Shipping Option belongs to.
Shipping Profiles have a set of defined Shipping Options that can be
used to Fulfill a given set of Products.
type: string
provider_id:
description: >-
The id of the Fulfillment Provider, that will be used to process
Fulfillments from the Shipping Option.
type: string
price_type:
description: >-
The type of pricing calculation that is used when creatin Shipping
Methods from the Shipping Option. Can be `flat_rate` for fixed
prices or `calculated` if the Fulfillment Provider can provide price
calulations.
type: string
enum:
- flat_rate
- calculated
amount:
description: >-
The amount to charge for shipping when the Shipping Option price
type is `flat_rate`.
type: integer
is_return:
description: >-
Flag to indicate if the Shipping Option can be used for Return
shipments.
type: boolean
requirements:
description: >-
The requirements that must be satisfied for the Shipping Option to
be available for a Cart.
type: array
items:
$ref: '#/components/schemas/shipping_option_requirement'
data:
description: >-
The data needed for the Fulfillment Provider to identify the
Shipping Option.
type: object
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
shipping_profile:
title: Shipping Profile
description: >-
Shipping Profiles have a set of defined Shipping Options that can be
used to fulfill a given set of Products.
x-resourceId: shipping_profile
properties:
id:
description: >-
The id of the Shipping Profile. This value will be prefixed with
`sp_`.
type: string
name:
description: >-
The name given to the Shipping profile - this may be displayed to
the Customer.
type: string
type:
description: >-
The type of the Shipping Profile, may be `default`, `gift_card` or
`custom`.
type: string
enum:
- default
- gift_card
- custom
products:
description: The Products that the Shipping Profile defines Shipping Options for.
type: array
items:
$ref: '#/components/schemas/product'
shipping_options:
description: >-
The Shipping Options that can be used to fulfill the Products in the
Shipping Profile.
type: array
items:
anyOf:
- $ref: '#/components/schemas/shipping_option'
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
shipping_tax_rate:
title: Shipping Tax Rate
description: >-
Associates a tax rate with a shipping option to indicate that the
shipping option is taxed in a certain way
x-resourceId: shipping_tax_rate
properties:
shipping_option_id:
description: The id of the Shipping Option
type: string
rate_id:
description: The id of the Tax Rate
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
store:
title: Store
description: 'Holds settings for the Store, such as name, currencies, etc.'
x-resourceId: store
properties:
id:
description: The id of the Store. This value will be prefixed with `store_`.
type: string
name:
description: The name of the Store - this may be displayed to the Customer.
type: string
default_currency_code:
description: >-
The default currency code used when no other currency code is
specified.
type: string
currencies:
description: The currencies that are enabled for the Store.
type: array
items:
$ref: '#/components/schemas/currency'
swap_link_template:
description: >-
A template to generate Swap links from use {{cart_id}} to include
the Swap's `cart_id` in the link.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
swap:
title: Swap
description: >-
Swaps can be created when a Customer wishes to exchange Products that
they have purchased to different Products. Swaps consist of a Return of
previously purchased Products and a Fulfillment of new Products, the
amount paid for the Products being returned will be used towards payment
for the new Products. In the case where the amount paid for the the
Products being returned exceed the amount to be paid for the new
Products, a Refund will be issued for the difference.
x-resourceId: swap
properties:
id:
description: The id of the Swap. This value will be prefixed with `swap_`.
type: string
fulfillment_status:
description: The status of the Fulfillment of the Swap.
type: string
enum:
- not_fulfilled
- partially_fulfilled
- fulfilled
- partially_shipped
- shipped
- partially_returned
- returned
- canceled
- requires_action
payment_status:
description: >-
The status of the Payment of the Swap. The payment may either refer
to the refund of an amount or the authorization of a new amount.
type: string
enum:
- not_paid
- awaiting
- captured
- canceled
- difference_refunded
- requires_action
order_id:
description: >-
The id of the Order where the Line Items to be returned where
purchased.
type: string
additional_items:
description: The new Line Items to ship to the Customer.
type: array
items:
$ref: '#/components/schemas/line_item'
return_order:
description: The Return that is issued for the return part of the Swap.
anyOf:
- $ref: '#/components/schemas/return'
fulfillments:
description: The Fulfillments used to send the new Line Items.
type: array
items:
$ref: '#/components/schemas/fulfillment'
payment:
description: >-
The Payment authorized when the Swap requires an additional amount
to be charged from the Customer.
anyOf:
- $ref: '#/components/schemas/payment'
difference_due:
description: >-
The difference that is paid or refunded as a result of the Swap. May
be negative when the amount paid for the returned items exceed the
total of the new Products.
type: integer
shipping_address:
description: >-
The Address to send the new Line Items to - in most cases this will
be the same as the shipping address on the Order.
anyOf:
- $ref: '#/components/schemas/address'
shipping_methods:
description: The Shipping Methods used to fulfill the addtional items purchased.
type: array
items:
$ref: '#/components/schemas/shipping_method'
cart_id:
description: The id of the Cart that the Customer will use to confirm the Swap.
type: string
allow_backorder:
description: 'If true, swaps can be completed with items out of stock'
type: boolean
confirmed_at:
description: >-
The date with timezone at which the Swap was confirmed by the
Customer.
type: string
format: date-time
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
canceled_at:
description: The date with timezone at which the Swap was canceled.
type: string
format: date-time
no_notification:
description: 'If set to true, no notification will be sent related to this swap'
type: boolean
metadata:
description: An optional key-value map with additional information.
type: object
tax_line:
title: Tax Line
description: Line item that specifies an amount of tax to add to a line item.
x-resourceId: tax_line
properties:
id:
description: The id of the Tax Line. This value will be prefixed by `tl_`.
type: string
code:
description: A code to identify the tax type by
type: string
name:
description: A human friendly name for the tax
type: string
rate:
description: The numeric rate to charge tax by
type: number
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
tax_provider:
title: Tax Provider
description: The tax service used to calculate taxes
x-resourceId: tax_provider
properties:
id:
description: The id of the tax provider as given by the plugin.
type: string
is_installed:
description: >-
Whether the plugin is installed in the current version. Plugins that
are no longer installed are not deleted by will have this field set
to `false`.
type: boolean
tax_rate:
title: Tax Rate
description: >-
A Tax Rate can be used to associate a certain rate to charge on products
within a given Region
x-resourceId: line_item
properties:
id:
description: The id of the Tax Rate. This value will be prefixed by `txr_`.
type: string
rate:
description: The numeric rate to charge
type: number
code:
description: A code to identify the tax type by
type: string
name:
description: A human friendly name for the tax
type: string
region_id:
description: The id of the Region that the rate belongs to
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
refundable:
description: >-
The amount that can be refunded from the given Line Item. Takes
taxes and discounts into consideration.
type: integer
tracking_link:
title: Tracking Link
description: >-
Tracking Link holds information about tracking numbers for a
Fulfillment. Tracking Links can optionally contain a URL that can be
visited to see the status of the shipment.
x-resourceId: tracking_link
properties:
id:
description: >-
The id of the Tracking Link. This value will be prefixed with
`tlink_`.
type: string
url:
description: The URL at which the status of the shipment can be tracked.
type: string
tracking_number:
description: The tracking number given by the shipping carrier.
type: string
fulfillment_id:
description: The id of the Fulfillment that the Tracking Link references.
type: string
created_at:
description: The date with timezone at which the resource was created.
type: string
format: date-time
updated_at:
description: The date with timezone at which the resource was last updated.
type: string
format: date-time
deleted_at:
description: The date with timezone at which the resource was deleted.
type: string
format: date-time
metadata:
description: An optional key-value map with additional information.
type: object
user:
title: User
description: Represents a User who can manage store settings.
x-resourceId: user
properties:
id:
description: The unique id of the User. This will be prefixed with `usr_`
type: string
email:
description: The email of the User
type: string
first_name:
type: string
last_name:
description: The Customer's billing address.
anyOf:
- $ref: '#/components/schemas/address'
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
metadata:
type: object