Skip to main content
POST
Import a Stripe export (customers, plans, subscriptions)
Takes the same payload as preview and performs the import. Re-running is safe: already-imported Stripe ids and records that already exist (by email or plan code) are skipped. Subscriptions are imported in their current billing state via a direct insert — no invoice, charge, or ledger entry is generated — so Recurso takes over at the next renewal instead of re-billing the current cycle. Card payment methods are NOT imported: card data can’t be migrated from a static export.

Example request

The response contains the executed plan, a created map of per-kind counts, and a failures array (kind, stripe_id, error) — per-object failures are reported there rather than aborting the whole import. After committing, prove the migration with the compare gate before pointing billing at Recurso.

Authorizations

Authorization
string
header
required

Tenant API key obtained from POST /auth/register or POST /v1/developer/keys.

Body

application/json

The Stripe export JSON (same shape as the preview endpoint).

customers
object[]
products
object[]
prices
object[]
subscriptions
object[]
payment_methods
object[]

Response

The commit result.

plan
object
created
object
failures
object[]