Skip to main content
POST
/
api
/
payment
/
create
Create a one-time payment
curl --request POST \
  --url https://api.suby.fi/api/payment/create \
  --header 'Content-Type: application/json' \
  --header 'X-Suby-Api-Key: <api-key>' \
  --data '
{
  "productId": "pro_abc123",
  "customerEmail": "customer@example.com",
  "priceCents": "2500",
  "currency": "USD",
  "externalRef": "order_789",
  "metadata": {},
  "successUrl": "https://your-app.com/success",
  "cancelUrl": "https://your-app.com/cancel"
}
'
{
  "success": true,
  "data": {
    "paymentId": "pay_abc123",
    "paymentUrl": "https://checkout.suby.fi/pay/pay_abc123",
    "metadata": {}
  }
}

Authorizations

X-Suby-Api-Key
string
header
required

API key authentication

Body

application/json
productId
string
required

ID of a one-time product

Example:

"pro_abc123"

customerEmail
string<email>
required

Customer email. A user account is created automatically if it doesn't exist.

Example:

"customer@example.com"

priceCents
string

Price in cents as a string. Required when the product has isCustomPrice: true. Must NOT be provided for fixed-price products.

Example:

"2500"

currency
enum<string>

Currency for the price. Required when priceCents is provided, ignored otherwise.

Available options:
USD,
EUR
Example:

"USD"

externalRef
string

Your internal reference (order ID, invoice number, etc.)

Maximum string length: 255
Example:

"order_789"

metadata
object

Custom key-value pairs. Returned in webhooks.

successUrl
string<uri>

Redirect URL after successful payment

Example:

"https://your-app.com/success"

cancelUrl
string<uri>

Redirect URL if customer cancels

Example:

"https://your-app.com/cancel"

Response

Payment created

success
boolean
Example:

true

data
object