Newstore sales-orders API
Operations related to sales order management.
Operations related to sales order management.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/newstore-sales-orders-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: '1.0'
title: NewStore Sales Orders API
description: NewStore public APIs
contact:
email: support@newstore.com
name: NewStore API Support
url: https://developer.newstore.com
servers:
- url: https://dodici-demo.p.newstore.net/
security: []
tags:
- name: sales-orders
description: Operations related to sales order management.
paths:
/v0/orders:
get:
description: "\n<div style=\"background-color: rgba(23, 162, 184, 0.15); border: 1px solid #17a2b8; border-left: 4px solid #17a2b8; padding: 12px; margin: 10px 0; border-radius: 4px; color: #17a2b8;\">\n <strong>ℹ️ Rate Limit:</strong> This endpoint is rate limited to 30 requests per second.\n</div>\n\n"
summary: showOrderHistoryForCustomer
tags:
- sales-orders
operationId: showOrderHistoryForCustomer
deprecated: false
parameters:
- name: customer_id
in: query
required: true
description: NewStore's unique UUID for the customer
schema:
type: string
- name: offset
in: query
required: false
description: The offset to be used for the resulting order list. Will only be accepted when using the ``Accept`` header with ``application/x.newstore.orders+json;version=2``.
schema:
type: integer
format: int32
default: 0
minimum: 0.0
- name: count
in: query
required: false
description: The number of requested orders. Will only be accepted when using the ``Accept`` header with ``application/x.newstore.orders+json;version=2``.
schema:
type: integer
format: int32
default: 10
maximum: 50.0
minimum: 1.0
responses:
default:
description: Unexpected Error
headers: {}
'200':
description: 'Returns the list of orders. If the ``Accept`` headers with ``application/x.newstore.orders+json;version=2`` is used,
it returns a paginated list as specified by the ``offset`` and ``count`` parameters.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/SalesOrderListResponse'
example:
orders: []
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/SalesOrderListResponse'
application/problem+json:
schema:
$ref: '#/components/schemas/SalesOrderListResponse'
'400':
description: Bad Request Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: bad_request
message: Query param 'customer_id' is required.
request_id: ec2f3c9bb016ba971bf6074098363
'404':
description: Customer not found. Only applicable when ``Accept`` header is ``application/json``.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: customer_not_found
message: customer with given customer_id not found
request_id: ec2f3c9bb016ba971bf6074098363
'409':
description: External webhook payload validation failed. Only applicable when ``Accept`` header is ``application/json``.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: conflict
message: 'Failed JSON schema validation with schema /opt/schema.json. Error: "orders" is a required attribute.'
request_id: ec2f3c9bb016ba971bf6074098363
'412':
description: Webhook configuration error. Only applicable when ``Accept`` header is ``application/json``.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: precondition_error
message: API Key is required to access external OMS
request_id: ec2f3c9bb016ba971bf6074098363
'429':
description: Too Many Requests
headers:
Retry-After:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'500':
description: Internal Server Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: internal_server_error
message: Couldn't process request due to an internal error.
request_id: ec2f3c9bb016ba971bf6074098363
'502':
description: Bad Gateway
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: External Server Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: external_server_error
message: API Key to the webhook is expired
request_id: ec2f3c9bb016ba971bf6074098363
security:
- oauth: []
/v0/orders/{id}:
get:
description: "\n<div style=\"background-color: rgba(23, 162, 184, 0.15); border: 1px solid #17a2b8; border-left: 4px solid #17a2b8; padding: 12px; margin: 10px 0; border-radius: 4px; color: #17a2b8;\">\n <strong>ℹ️ Rate Limit:</strong> This endpoint is rate limited to 100 requests per second.\n</div>\n\nRetrieves the specified order by order ID and ID type for the order.\n\nThis method allows you to retrieve information about orders that were placed in the platform,\nas well as outside of the NewStore platform.\n\n**Note**: In case of ``internal`` id type the API will only return orders that exists in the NewStore database and will **NOT** call the external OMS webhook. Furthermore, the `payment_history` field will be empty in this case.\nIn case of ``external`` id type this API will check if the external OMS webhook is configured. In this case the API will fetch the order data from the configured webhook. If no external OMS is configured then the order will be fetched from the NewStore database.\n"
summary: showSalesOrderByIdAndIdType
tags:
- sales-orders
operationId: showSalesOrderByIdAndIdType
deprecated: false
parameters:
- name: id
in: path
required: true
description: ID of the order.
schema:
type: string
- name: id_type
in: query
required: true
description: ID type on which order should be fetched. Example "external" in case of human-readable identifier of the order, else "internal" in case of system-generated UUID (by NewStore).
schema:
type: string
- name: Accept
in: header
required: false
description: Accepted values are ``application/json`` and ``application/x.newstore.orders+json;version=2``. When ``application/x.newstore.orders+json;version=2`` is provided, the ``placed_at`` timestamp is returned with UTC+0.
schema:
type: string
responses:
default:
description: Unexpected Error
headers: {}
'200':
description: Successfully fetch order by ID and ID type
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/SalesOrderDetailResponse'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/SalesOrderDetailResponse'
application/problem+json:
schema:
$ref: '#/components/schemas/SalesOrderDetailResponse'
'400':
description: Validation for the request failed
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'404':
description: Order with provided ID and ID type was not found
headers: {}
'409':
description: External webhook payload validation failed.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: conflict
message: 'Failed JSON schema validation with schema /opt/schema.json. Error: "orders" is a required attribute.'
request_id: ec2f3c9bb016ba971bf6074098363
'412':
description: Webhook configuration error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: precondition_error
message: API Key is required to access external OMS
request_id: ec2f3c9bb016ba971bf6074098363
'429':
description: Too Many Requests
headers:
Retry-After:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'500':
description: Internal Server Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'502':
description: Bad Gateway
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: External Server Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/x.newstore.orders+json;version=2:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: external_server_error
message: API Key to the webhook is expired
request_id: ec2f3c9bb016ba971bf6074098363
security:
- oauth: []
/v0/orders/{id}/_extend_grace_period:
post:
description: 'Use this method to extend the [grace period](https://docs.newstore.com/docs/glossary#remorse-period) timer
for the specified order by **15 minutes**, if the grace period of the order has not yet expired.
'
summary: createGracePeriod
tags:
- sales-orders
operationId: createGracePeriod
deprecated: false
parameters:
- name: id
in: path
required: true
description: ID of the order.
schema:
type: string
- name: id_type
in: query
required: true
description: Type of the order id which should be used to extend the order grace period. Example "external" for human-readable identifiers, and "internal" for system-generated UUIDs (by NewStore).
schema:
type: string
responses:
default:
description: Unexpected Error
headers: {}
'200':
description: The grace period got extended by 15 minutes.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Extendorder%27sgraceperiodtimer'
application/problem+json:
schema:
$ref: '#/components/schemas/Extendorder%27sgraceperiodtimer'
'404':
description: Order with id and id type not found.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'409':
description: A concurrent request extended the grace period already.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'412':
description: The order is not in the grace period.
headers: {}
'429':
description: Too Many Requests
headers:
Retry-After:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'500':
description: Internal Server Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: internal_server_error
message: Couldn't process request due to an internal error.
request_id: ec2f3c9bb016ba971bf6074098363
'502':
description: Bad Gateway
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: Service Unavailable
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
security:
- oauth: []
/v0/orders/{id}/cancel:
get:
description: API to get cancellation status by order ID
summary: showCancellationStatus
tags:
- sales-orders
operationId: showCancellationStatus
deprecated: false
parameters:
- name: id
in: path
required: true
description: ID of the order.
schema:
type: string
- name: id_type
in: query
required: true
description: ID type on which order should be fetched. Example "external".
schema:
type: string
responses:
default:
description: Unexpected Error
headers: {}
'200':
description: Successfully fetched cancellation status for the order.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/SalesOrderCancellationResponse'
example:
cancelable: true
canceled: false
is_safe: true
application/problem+json:
schema:
$ref: '#/components/schemas/SalesOrderCancellationResponse'
'400':
description: Bad request
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'404':
description: Order with given order ID does not exist
headers: {}
'429':
description: Too Many Requests
headers:
Retry-After:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'500':
description: Internal server error
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: internal_server_error
message: Couldn't process request due to an internal error.
request_id: ec2f3c9bb016ba971bf6074098363
'502':
description: Bad Gateway
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: Service Unavailable
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
security:
- oauth: []
post:
description: 'Initiates the cancellation of the specified order.
When using this method to cancel an order, you must specify a reason for cancellation,
such as ``Item was damaged during shipping``. You can also include a note to provide a
longer explanation for the cancellation of the order.
'
summary: createCancellation
tags:
- sales-orders
operationId: createCancellation
deprecated: false
parameters:
- name: id
in: path
required: true
description: ID of the order.
schema:
type: string
- name: id_type
in: query
required: true
description: Type of order id which should be used for cancellation. Example "external".
schema:
type: string
- name: Content-Type
in: header
required: false
description: ''
schema:
type: string
enum:
- application/json
responses:
default:
description: Unexpected Error
headers: {}
'200':
description: Successfully cancelled order by ID and ID type
headers: {}
'400':
description: Bad request
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: bad_request
message: 'Validation of cancel order request failed with error: ''reason'' is a required property.'
request_id: ec2f3c9bb016ba971bf6074098363
'404':
description: Order with provided ID and ID type was not found.
headers: {}
'429':
description: Too Many Requests
headers:
Retry-After:
schema:
type: string
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'500':
description: Internal Server Error.
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: internal_server_error
message: Couldn't process request due to an internal error.
request_id: ec2f3c9bb016ba971bf6074098363
'502':
description: Bad Gateway
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: Service Unavailable
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
security:
- oauth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SalesOrderCancellationRequest'
/v0/orders/{id}/items/{item_uuid}/cancel:
post:
description: 'Use this resource to cancel line items.
**Note:**
1. This API currently only supports pre-ordered line items and will throw an error for other line items.
2. The line item can only be cancelled for non-terminal item statuses.
'
summary: createLineItemCancellation
tags:
- sales-orders
operationId: createLineItemCancellation
deprecated: false
parameters:
- name: id
in: path
required: true
description: UUID of the order.
schema:
type: string
- name: item_uuid
in: path
required: true
description: UUID of the order item.
schema:
type: string
- name: id_type
in: query
required: true
description: Type of order id which should be used for cancellation of line items. Example "external" for human-readable identifiers, and "internal" for system-generated UUIDs (by NewStore).
schema:
type: string
responses:
default:
description: Unexpected Error
headers: {}
'200':
description: Successfully cancelled order item by UUID.
headers: {}
'400':
description: Bad request
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: bad_request
message: 'Validation of cancel order request failed with error: ''reason'' is a required property.'
request_id: ec2f3c9bb016ba971bf6074098363
'404':
description: Order item with provided UUID was not found.
headers: {}
'429':
description: Too Many Requests
headers:
Retry-After:
schema:
type: string
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'500':
description: Internal Server Error.
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: internal_server_error
message: Couldn't process request due to an internal error.
request_id: ec2f3c9bb016ba971bf6074098363
'502':
description: Bad Gateway
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: Service Unavailable
headers: {}
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
security:
- oauth: []
/v0/orders/{id}/prices:
post:
description: 'Use this method to retrieve price information for products or shipping options, defined
in ``items`` in the request payload. The price information includes the gross price of the item,
the net price, and the tax levied on the item.
If the prices you requested are for products, the response payload also contains the status
of the product. For example, ``cancelled`` or ``pending``, or ``in_fulfillment``, and so on.
**Important**: You can only request for the pricing information of a maximum of **500**
items, exceeding which the method returns a ``400`` error.
'
summary: createPriceInformationForItems
tags:
- sales-orders
operationId: createPriceInformationForItems
deprecated: false
parameters:
- name: id
in: path
required: true
description: The identifier of the order.
schema:
type: string
- name: Content-Type
in: header
required: false
description: ''
schema:
type: string
enum:
- application/json
responses:
default:
description: Unexpected Error
headers: {}
'200':
description: Price information for the provided items.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/SalesOrderPricesResponse'
application/problem+json:
schema:
$ref: '#/components/schemas/SalesOrderPricesResponse'
'400':
description: Bad Request Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: bad_request
message: The number of products can't exceed 500.
request_id: ec2f3c9bb016ba971bf6074098363
'404':
description: Not found Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: not_found
message: The order '57787cdb-3474-47b5-b3ec-7b776731309e' couldn't be found.
request_id: ec2f3c9bb016ba971bf6074098363
'429':
description: Too Many Requests
headers:
Retry-After:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'500':
description: Internal Server Error.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
example:
error_code: internal_server_error
message: Couldn't process request due to an internal error.
request_id: ec2f3c9bb016ba971bf6074098363
'502':
description: Bad Gateway
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: Service Unavailable
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
security:
- oauth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SalesOrderPricesRequest'
required: true
/v0/orders/{id}/serial_numbers:
patch:
description: 'Use this method to add serial numbers to specified items of the order. Serial numbers will be overwritten in case
some or all of the items have already serial numbers attached.
The maximum number of items in this request cannot exceed **500**, otherwise this method will return a ``400`` error.
'
summary: updateSalesOrderSerialNumbers
tags:
- sales-orders
operationId: updateSalesOrderSerialNumbers
deprecated: false
parameters:
- name: id
in: path
required: true
description: The internal identifier of the order, for example, ``b604ffda-7e31-4338-beab-7f939a8c2322``.
schema:
type: string
- name: Content-Type
in: header
required: false
description: ''
schema:
type: string
enum:
- application/json
responses:
default:
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/newstore/refs/heads/main/openapi/newstore-sales-orders-api-openapi.yml