Skip to main content

Billing Guide

FiscalAPI uses Stripe for subscription management with per-merchant volume pricing. Your monthly cost scales with the number of merchants you onboard.

Pricing tiers

FiscalAPI uses graduated (cumulative) pricing -- each tier applies only to merchants within that range:

TierMerchantsPrice per merchant
Starter1 -- 10€9/month
Growth11 -- 50€7/month
Scale51 -- 250€5/month
Enterprise251+€3/month

Example calculation

For 30 merchants:

RangeCountRateSubtotal
1 -- 1010€9€90
11 -- 3020€7€140
Total30€230/month

Annual billing

Choose annual billing (billing_interval: "year") for a discounted rate. Annual pricing is configured in Stripe and applied automatically when you create or update your subscription.

Creating a subscription

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"
}'

This creates a Stripe customer, attaches your payment method, and starts a subscription with the specified merchant count.

Response

{
"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).

Updating merchant count

As you onboard more merchants, update your subscription to reflect the new count:

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

Stripe automatically prorates the charge for the remainder of the billing period.

Checking your subscription

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

Rate limit tiers

Your subscription's merchant count determines your API rate limit tier:

MerchantsRate limit tierRequests/min
1 -- 10Starter1,000
11 -- 50Growth5,000
51 -- 250Scale5,000
251+Enterprise20,000

See the Rate Limiting guide for details on token bucket behavior and response headers.

Stripe webhooks

FiscalAPI processes Stripe webhook events to handle billing lifecycle changes:

EventAction
invoice.payment_succeededAccount restored if previously suspended
invoice.payment_failedAccount suspended, notification email sent
customer.subscription.deletedAccount suspended, notification email sent
customer.subscription.updatedUpdate logged

See the Stripe Webhooks API reference for endpoint details and signature verification.

Account suspension

If a payment fails or your subscription is cancelled, your account is suspended:

  • API requests return errors
  • Existing data is preserved
  • Successful payment automatically restores access

A notification email is sent to your billing address when suspension begins.