Skip to main content
POST
Create a product

Authorizations

X-Suby-Api-Key
string
header
required

Secret API key. sk_live_… (production) or sk_sandbox_… (sandbox).

Body

application/json
name
string
required

Display name, shown at checkout and snapshotted onto every Payment. Required.

Maximum string length: 200
description
string | null

Optional long description (checkout + receipts).

Maximum string length: 2000
imageUrl
string<uri> | null

Optional public https image URL.

status
enum<string>
default:ACTIVE

ACTIVE = sellable at checkout (default) · DRAFT = created but hidden from checkout (publish later by flipping to ACTIVE) · ARCHIVED = retired.

Available options:
DRAFT,
ACTIVE,
ARCHIVED
priceCents
string | null

Price in the smallest currency unit as a STRING of digits (cents), e.g. "1999" = 19.99. Optional at create; REQUIRED (with currency) before the product can be sold.

Pattern: ^\d+$
currency
enum<string> | null

ISO 4217 currency. Required alongside priceCents.

Available options:
EUR,
USD
recurringInterval
enum<string> | null

Set to make this a SUBSCRIPTION product; omit for a one-time product.

Available options:
DAY,
WEEK,
MONTH,
YEAR
recurringIntervalCount
integer
default:1

Multiplies the interval (e.g. MONTH ×3 = quarterly). Only meaningful with recurringInterval.

Required range: x >= 1
recurringCycleCount
integer | null

Caps the number of renewal cycles: null = renews indefinitely; N = the subscription auto-expires after N cycles (enforced by the renewal worker).

Required range: x >= 1
quantity
integer | null

Optional stock cap; omit/null = unlimited.

Required range: x >= 0
customFields
object[]

Extra fields collected on the hosted checkout page (max 10).

Maximum array length: 10
paymentMethods
enum<string>[] | null

Per-product payment-method whitelist. null / [] / omitted = the product accepts every method enabled on the account. A non-empty list restricts checkout to these categories (always intersected with the account's enabled methods, so listing a disabled method is a harmless no-op).

Available options:
CARD,
APPLE_PAY,
GOOGLE_PAY,
KLARNA,
IDEAL,
BANCONTACT,
TWINT,
BLIK,
AFFIRM,
MULTIBANCO,
PAYPAL,
SEPA_DIRECT_DEBIT,
ACH_DIRECT_DEBIT,
STABLECOIN,
VOLATILE_CRYPTO
successUrl
string<uri> | null

After-payment redirect for this product's hosted checkout. Null → Suby's generic confirmation page.

cancelUrl
string<uri> | null

Back-button target on the hosted checkout.

Response

Product created

success
boolean
required
Example:

true

data
object
required

Endpoint-specific payload.

message
string