Products

Create and manage products and pricing.

Products are not mode-dependent — they exist across both live and test modes.

List Products

List all active (non-archived) products.

GEThttps://paysio.com/api/v1/products

Authorizations

Authorizationstringheaderrequired

Any API key. Prepend your key with Bearer, e.g. Bearer sk_test_your_secret_key.

Query parameters

limitinteger

1-100, default 10

starting_afterstring

Cursor for pagination

Get Product

Retrieve a single product by ID.

GEThttps://paysio.com/api/v1/products/:id

Authorizations

Authorizationstringheaderrequired

Any API key. Prepend your key with Bearer, e.g. Bearer sk_test_your_secret_key.

Create Product

Create a new product.

POSThttps://paysio.com/api/v1/products

Authorizations

Authorizationstringheaderrequired

Secret key (sk_*). Prepend your key with Bearer, e.g. Bearer sk_test_your_secret_key.

Body

namestringrequired

Product name

descriptionstring

Product description

pricingTypestring

one_time (default), recurring, or pay_what_you_want

priceinteger

Price in cents (e.g. 2999 = $29.99)

currencystring

3-letter ISO code (default: USD)

billingPeriodstring

monthly or yearly (for recurring products)

imagesstring[]

Array of image URLs

trackInventoryboolean

Enable inventory tracking (default: false)

stockQuantityinteger

Initial stock quantity

collectTaxboolean

Enable tax collection (default: false)

taxTypestring

percentage or fixed

taxValuenumber

Tax rate or fixed amount

tagsstring[]

Array of tags

categorystring

Product category

activeboolean

Whether the product is purchasable (default true). Set false to create it archived/hidden.

Update a product

Update an existing product. Only include the fields you want to change.

PATCHhttps://paysio.com/api/v1/products/:id

Authorizations

Authorizationstringheaderrequired

Secret key (sk_*). Prepend your key with Bearer, e.g. Bearer sk_test_your_secret_key.

Body

namestring

Product name

descriptionstring

Product description

pricingTypestring

one_time, recurring, or pay_what_you_want

priceinteger

Price in cents

currencystring

3-letter ISO code

billingPeriodstring

monthly or yearly

imagesstring[]

Array of image URLs

trackInventoryboolean

Enable inventory tracking

stockQuantityinteger

Stock quantity

collectTaxboolean

Enable tax collection

taxTypestring

percentage or fixed

taxValuenumber

Tax rate or fixed amount

tagsstring[]

Array of tags

categorystring

Product category

activeboolean

Set false to archive (hide) the product, true to unarchive

archivedboolean

Legacy alias for the inverse of active; still accepted (active wins if both are sent)

Adjust stock

Move stock atomically. Use this rather than PATCH /products/:id whenever a sale, fulfilment or any concurrent process changes the count: PATCH has to read the current value and write a new one, so two orders completing at the same instant both read 5, both write 4, and one unit is sold twice. This endpoint applies the change in a single statement, so concurrent callers are serialised by the database and an oversell is refused with 409 rather than silently allowed. Send exactly one of delta (relative, the right choice for a sale) or quantity (absolute, the right choice for an import). Requires the inventory:write scope.

POSThttps://paysio.com/api/v1/inventory/adjust

Authorizations

Authorizationstringheaderrequired

Secret key (sk_*) or app access token. Prepend your key with Bearer, e.g. Bearer sk_test_your_secret_key.

Body

product_idstringrequired

The product whose stock is moving

deltainteger

Relative change, e.g. -1 for one unit sold. Refused with 409 if it would take stock below zero.

quantityinteger

Absolute value to set. Does not respect a concurrent decrement, so use it for imports, never for a sale.

variant_idstring

Adjust a specific variant instead of the product itself