Skip to main content

Subscriptions

Manage your FiscalAPI subscription and merchant count. All endpoints require authentication.

Create a subscription

POST /v1/subscriptions

Creates a new subscription with Stripe billing. Each account can have one active subscription.

Request body

FieldTypeRequiredDescription
company_namestringYesCompany name (1-100 characters)
billing_emailstringYesEmail for invoices and billing notifications
payment_method_idstringYesStripe payment method ID
merchant_countintegerYesNumber of merchants (minimum 1)
billing_intervalstringNomonth or year (default: month)

Example

curl -X POST https://api.fiscalapi.com/v1/subscriptions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer fsk_test_abc123def456..." \
-d '{
"company_name": "Acme Corp",
"billing_email": "billing@acme.com",
"payment_method_id": "pm_1234567890",
"merchant_count": 10,
"billing_interval": "month"
}'

Response 201 Created

{
"id": "sub_abc123",
"account_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"stripe_customer_id": "cus_abc123",
"stripe_subscription_id": "sub_stripe_abc123",
"status": "active",
"merchant_count": 10,
"billing_interval": "month",
"current_tier": "starter",
"monthly_amount": 9000,
"created_at": "2026-03-15T12:00:00Z"
}

The monthly_amount is in cents (€90.00 = 9000). See the Billing guide for pricing tier calculations.

Errors

StatusErrorCause
400company_name is requiredMissing or empty company name
400billing_email is requiredMissing or invalid email
400payment_method_id is requiredMissing payment method
400merchant_count must be at least 1Zero or negative merchant count
400billing_interval must be "month" or "year"Invalid billing interval
409subscription already existsAccount already has an active subscription

Update a subscription

PATCH /v1/subscriptions

Updates the merchant count for your subscription. Stripe automatically prorates charges for the remainder of the billing period.

Request body

FieldTypeRequiredDescription
merchant_countintegerYesNew merchant count (minimum 1)

Example

curl -X PATCH https://api.fiscalapi.com/v1/subscriptions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer fsk_test_abc123def456..." \
-d '{
"merchant_count": 30
}'

Response 200 OK

{
"id": "sub_abc123",
"account_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"stripe_customer_id": "cus_abc123",
"stripe_subscription_id": "sub_stripe_abc123",
"status": "active",
"merchant_count": 30,
"billing_interval": "month",
"current_tier": "growth",
"monthly_amount": 23000,
"created_at": "2026-03-15T12:00:00Z"
}

Errors

StatusErrorCause
400merchant_count must be at least 1Zero or negative merchant count
404subscription not foundNo active subscription for this account

Get subscription

GET /v1/subscriptions

Returns the current subscription for the authenticated account.

Example

curl https://api.fiscalapi.com/v1/subscriptions \
-H "Authorization: Bearer fsk_test_abc123def456..."

Response 200 OK

Returns a Subscription object.

Errors

StatusError
404subscription not found

Subscription object

FieldTypeDescription
idstringSubscription identifier
account_iduuidOwning account identifier
stripe_customer_idstringStripe customer ID
stripe_subscription_idstringStripe subscription ID
statusstringSubscription status (active, suspended)
merchant_countintegerCurrent merchant count
billing_intervalstringmonth or year
current_tierstringRate limit tier (starter, growth, scale, enterprise)
monthly_amountintegerMonthly cost in cents
created_atdatetimeCreation timestamp