Skip to main content
POST
/
api
/
v1
/
subscriptions
curl --request POST \
  --url https://your-site.example/api/v1/subscriptions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Netflix",
  "category": "Streaming",
  "amount": 15.99,
  "currency": "USD",
  "period": "monthly",
  "lastPaymentDate": "2026-06-01",
  "notificationEnabled": true
}
'
{
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "category": "<string>",
    "amount": 499999.995,
    "lastPaymentDate": "2026-06-01",
    "nextPaymentDate": "2026-06-01",
    "notificationEnabled": true,
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "customDate": "<string>"
  },
  "requestId": "<string>"
}

Authorizations

Authorization
string
header
default:subm_your_key_here
required

Developer API key generated in the app. Keys carry scopes; a read key can call list, get, analytics, and audit endpoints, while a write key additionally allows create, update, cancel, pause, resume, and delete.

Body

application/json
name
string
required

Human-readable service or product name.

Required string length: 1 - 120
category
string
required

User-visible category label used for grouping and analytics.

Required string length: 1 - 80
amount
number
required

Payment amount in major currency units, with at most 2 decimal places.

Required range: 0 <= x <= 999999.99Must be a multiple of 0.01
currency
enum<string>
required

ISO-like currency code supported by the app.

Available options:
CNY,
USD,
EUR,
JPY,
GBP,
AUD,
CAD,
CHF,
HKD,
SGD
period
enum<string>
required

Billing cadence used to calculate nextPaymentDate.

Available options:
monthly,
yearly,
custom
lastPaymentDate
string
required

Most recent payment date. The server calculates nextPaymentDate from this value and period.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-06-01"

customDate
string

Required only when period is custom. Despite the legacy name, this is a positive whole-number string of days, not a calendar date.

Pattern: ^[1-9]\d*$
notificationEnabled
boolean
default:true
status
enum<string>

Lifecycle state. active means billing; paused means temporarily stopped; cancelled means no longer billing but kept for history.

Available options:
active,
paused,
cancelled

Response

Subscription created.

data
object
required
requestId
string
required