Create a product
Creates a new product. Set frequencyInDays to define the billing cycle:
- Omit or set to
null→ one-time product - Set to
30→ monthly subscription,365→ yearly, etc.
Custom pricing (isCustomPrice: true)
When enabled, the product has no fixed price. Instead, you pass priceCents and currency each time you create a payment or subscription.
One-time + custom price — ideal for variable amounts:
- Wallet top-ups (user chooses how much to add)
- Donations or tips
- Invoices with different totals
Subscription + custom price — ideal when the price is decided at checkout:
- Tiered pricing (e.g. user picks a seat count or plan level)
- Negotiated rates set per-customer
When
isCustomPriceistrue, do not setpriceCentsorcurrencyon the product — they are provided per-payment viaPOST /api/payment/createorPOST /api/subscription/create.
Platform: Only WEB and INVOICE are supported via the API.
Documentation Index
Fetch the complete documentation index at: https://documentation.suby.fi/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
API key authentication
Body
Product display name
1 - 50"Premium Access"
Payment methods to enable:
CRYPTO— wallet connect and QR code (requires merchant receiving address)CARD— credit/debit card (requires merchant verification + payout address)
1CRYPTO, CARD ["CRYPTO", "CARD"]Product description visible to customers
200"Monthly premium membership"
Billing cycle in days. Omit or set to null for one-time products.
Common values: 7 (weekly), 30 (monthly), 90 (quarterly), 365 (yearly)
x >= 130
Set to true to create a sandbox (test) product.
Sandbox products only support Base Testnet (84532) for crypto.
If no chains/assets are specified, Base Testnet and its active assets are auto-selected.
Card payments use test card numbers instead of real transactions.
false
Set to true for dynamic pricing. When enabled, priceCents must NOT be set on the product.
Instead, the price is provided per-payment via priceCents when creating a payment or subscription.
false
Price in cents as a string. Required when isCustomPrice is false (default).
Must NOT be provided when isCustomPrice is true.
For CARD payments, minimum is "200" (2.00 USD/EUR).
"999"
Price currency. Required when isCustomPrice is false (default).
Must NOT be provided when isCustomPrice is true.
USD, EUR "EUR"
Target platform. Defaults to WEB
WEB, INVOICE "WEB"
Crypto only. Ignored when paymentMethods is ["CARD"] only.
Token symbols to accept (e.g. ["USDC", "USDT"]).
Automatically resolved across all accepted chains.
If omitted, all active assets are enabled.
["USDC", "USDT"]Crypto only. Ignored when paymentMethods is ["CARD"] only.
Blockchain chain IDs to accept.
Common IDs: 8453 (Base), 42161 (Arbitrum), 1 (Ethereum), 56 (BSC), 101 (Solana).
If omitted, all active chains matching your merchant addresses are enabled.
[8453, 42161]Maximum number of subscriptions or one-time purchases available. Omit for unlimited.
x >= 1100
Product image URL displayed on checkout
"https://example.com/product.png"

