Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Ready2order Product API

Products are the items sold at the point of sale. Each product belongs to a product group and carries a price, a VAT rate, and a set of optional features such as stock tracking, variations, and ingredients.**Identifiers**A product supports three optional identifiers alongside its system `product_id`:- `product_itemnumber`: the merchant's own article number, used on labels, in exports, and for stock lookups- `product_barcode`: EAN or barcode for scanning at the POS- `product_externalReference`: for integrators to store their own system's ID, so you can map between your records and ready2order without storing `product_id` on your side**Pricing and VAT**`product_price` is the base price. Set `product_priceIncludesVat` to `true` (the default) if that figure is gross, or `false` if it is net. A VAT rate is required on creation — supply either `product_vat` as a percentage or `product_vat_id` referencing a [VAT rate](#tag/Vat-Rate).Customers and customer categories can have individual price overrides managed via the [per-customer prices](#operation/productGetAllCustomerProductPrices) and [per-category prices](#operation/productGetAllCustomerCategoryProductPrices) endpoints.**Custom price and quantity**Set `product_customPrice: true` to let the cashier enter the price manually at checkout, which is useful for open-price items. `product_customQuantity: true` does the same for the quantity.**Stock**Stock tracking is optional and configured per product. Set `product_stock_enabled: true`, then use `product_stock_value` for the current quantity, `product_stock_safetyStock` for the minimum threshold, and `product_stock_reorderLevel` for the point at which the system alerts about low inventory. Use the [get stock](#operation/productGetStock) and [update stock](#operation/productUpdateStock) endpoints to read or update stock figures without touching other product fields.**Product type**`product_type` is mainly relevant in gastro mode, where it drives printer routing (e.g. kitchen vs. bar). Available values: `standard`, `food`, `drink`, `extra`, `sidedish`, `variation`, `ingredient`. For standard retail products, use `standard`.**Variations and ingredients**Variations (selectable add-ons or modifications) and ingredients (component tracking for recipes and partial-unit sales) are enabled per product with `product_variations_enabled` and `product_ingredients_enabled`. Both require the corresponding feature to be active on the account.**Keeping a catalogue in sync**The recommended approach is to subscribe to [webhooks](#tag/Webhook) for `product.created` and `product.updated` events. This avoids polling and ensures your system is updated in near real-time without unnecessary requests.If webhooks are not an option, use the `updatedAfter` query parameter on [list products](#operation/productGetAll) to fetch only products changed since a given timestamp. Use [batch create](#operation/productCreateBatch) to create multiple products in one request.

Ready2order Product API is one of 36 APIs that Ready2order publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Product. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 20 operations across 10 paths. It is described by OpenAPI 3.0.0, at version R2-2026.30.2.

Requests are made against a single base URL, https://api.ready2order.com/v1.

20 operations 10 paths 0 schemas 3 DELETE8 GET5 POST4 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
R2-2026.30.2
Base URL
https://api.ready2order.com/v1
Authentication
API Key
Contact
support@ready2order.com
License
proprietary
Resource Areas
1

Authentication & Security 1

Ready2order Product API declares 1 security scheme for authenticating requests. An API key is passed in the header as Authorization (Bearer).

  • Bearer — Account Token obtained after completing the authorization flow. See First Steps for details.

Paths & Operations 20

Across 10 paths, the API surfaces 20 operations — 3 DELETE, 8 GET, 5 POST, 4 PUT. Each is listed below with its method, path, parameters, and response codes.

Product 20

Products are the items sold at the point of sale. Each product belongs to a product group and carries a price, a VAT rate, and a set of optional features such as stock tracking, v…

POST
/products/batch
Create products in bulk
productCreateBatch body → 200400401403
POST
/products/batch/stock
Update stock in bulk
productUpdateStockInBatch body → 200400401403
GET
/products
List products
productGetAll 11 params → 200401403
POST
/products
Create a product
productCreate body → 200400401403
GET
/products/{id}
Get a product
productFindById 4 params → 200401403404
PUT
/products/{id}
Update a product
productUpdate 1 param body → 200400401403404
DELETE
/products/{id}
Delete a product
productDelete 1 param → 200400401403404
GET
/products/itemNumber/{itemNumber}/stock
Get product stock by item number
productGetStockByItemNumber 1 param → 200401403404
GET
/products/{id}/stock
Get product stock
productGetStock 1 param → 200401403404
PUT
/products/{id}/stock
Update product stock
productUpdateStock 1 param body → 200400401403404
GET
/products/{id}/price/customer
List per-customer prices
productGetAllCustomerProductPrices 1 param → 200401403404
POST
/products/{id}/price/customer
Set per-customer price
productAddCustomerProductPrice 1 param body → 200400401403404
GET
/products/{id}/price/customer/{customerId}
Get per-customer price
productGetCustomerProductPrice 2 params → 200401403404
PUT
/products/{id}/price/customer/{customerId}
Update per-customer price
productUpdateCustomerProductPrice 2 params body → 200400401403404
DELETE
/products/{id}/price/customer/{customerId}
Remove per-customer price
productDeleteCustomerProductPrice 2 params → 200400401403404
GET
/products/{id}/price/customerCategory
List customer category prices
productGetAllCustomerCategoryProductPrices 1 param → 200401403404
POST
/products/{id}/price/customerCategory
Set customer category price
productAddCustomerCategoryProductPrice 1 param body → 200400401403404
GET
/products/{id}/price/customerCategory/{customerCategoryId}
Get customer category price
productGetCustomerCategoryProductPrice 2 params → 200401403404
PUT
/products/{id}/price/customerCategory/{customerCategoryId}
Update customer category price
productUpdateCustomerCategoryProductPrice 2 params body → 200400401403404
DELETE
/products/{id}/price/customerCategory/{customerCategoryId}
Remove customer category price
productDeleteCustomerCategoryProductPrice 2 params → 200400401403404

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

ready2order-product-api-openapi.yml Raw ↑

Other APIs Ready2order publishes across the network.

Ready2order Account Token API
Ready2order Accounting Financial Year API
Ready2order Bill API
Ready2order Bill Type API
Ready2order Country API
Ready2order Coupon API
Ready2order Coupon Category API
Ready2order Currency API
Ready2order Customer API
Ready2order Customer Group API
Ready2order Daily Report API
Ready2order Device API