Subscription Statuses

Subscription Statuses

StatusDescription
INITIATIONSubscription has been created but the customer hasn't completed checkout yet
ACTIVESubscription is active and billing normally
PAST_DUEA recurring payment has failed. Inflow will retry automatically
UNPAIDMultiple payment attempts have failed
INACTIVESubscription is no longer active (e.g., all cycles completed)
PENDING_CANCELLATIONCancellation requested — will take effect at the end of the current billing cycle
CANCELEDSubscription has been fully canceled

Subscription Lifecycle

INITIATION → ACTIVE → (recurring billing) → ACTIVE
                                           ↘ PAST_DUE → ACTIVE (retry success)
                                                      → UNPAID (retry exhausted)
                                           ↘ PENDING_CANCELLATION → CANCELED
                                           ↘ INACTIVE (cycles completed)

Typical Flow

  1. INITIATION — Customer starts the checkout process.
  2. ACTIVE — First payment succeeds. Recurring billing begins.
  3. ACTIVE (ongoing) — Each billing cycle processes successfully.
  4. PAST_DUE — A payment fails. Inflow retries automatically.
  5. ACTIVE — Payment retry succeeds, subscription returns to normal.
  6. CANCELED — Subscription is canceled by the merchant, customer, or due to payment failures.

Waitlist Statuses

If the offer has waitlist enabled, subscriptions also have a separate waitlist status:

Waitlist StatusDescription
pending_waitlistCustomer subscribed, awaiting merchant approval
approvedMerchant approved, payment will be processed within 24 hours
activePayment successful, subscription is active
failed_capturePayment attempt failed after approval
declinedMerchant declined the subscriber

Status in the API

When querying subscriptions via the API, the status field contains the subscription status:

{
  "id": "sub_abc123",
  "status": "ACTIVE",
  "name": "Pro Plan",
  "amountInCents": 2999,
  "currency": "EUR",
  "interval": "month",
  "intervalCount": 1,
  "createdAt": "2025-01-15T10:30:00.000Z",
  "updatedAt": "2025-02-15T10:30:00.000Z"
}

Filtering by Status

You can filter subscriptions by status in both the Dashboard and the API:

curl "https://api.inflowpay.xyz/subscription?status=ACTIVE" \
  -H "X-Inflow-Api-Key: your_private_key"

Available filter values: INITIATION, ACTIVE, PAST_DUE, UNPAID, INACTIVE, PENDING_CANCELLATION, CANCELED