ArcalotlArcalotl
Reference

Subscription and Purchase Lifecycle

Understand subscription and purchase states and how Arcalotl changes Discord access.

Arcalotl turns subscription and purchase events into Discord access, retention messages, and dashboard status. This lifecycle explains how billing changes become member-facing actions in your server.

Status reference

StatusMeaningAccess behavior
pendingCheckout or activation is in progressRole is not guaranteed yet
activeStripe says the subscription is activeRole should be granted
trialingStripe says the subscription is in a trial periodRole access follows the server trial setting
past_dueA renewal failed and payment recovery may be runningRole remains during the grace period
cancellingCancellation is scheduled for the end of the billing periodRole remains until access ends
cancelledSubscription has endedRole should be removed
pausingA pause save offer was accepted and Stripe pause confirmation is pendingRole behavior follows the pause flow until Stripe confirms
pausedStripe says the subscription is pausedAccess can be removed when the paid period expires
incompleteInitial payment needs action or has not completedRole is not granted as active access
incomplete_expiredStripe expired an incomplete initial paymentTerminal state, no automatic recovery path

Dashboard plan creation supports free trial days. By default, trialing members receive the configured Discord role. Limited-trial servers can disable trial role access from server settings.

Common transitions

TransitionTrigger
pending to activeStripe confirms checkout or subscription activation
active to past_dueStripe reports a failed invoice payment
past_due to activePayment succeeds after recovery
active to cancellingMember confirms cancellation
cancelling to activeMember reactivates before the period ends
cancelling to cancelledStripe confirms cancellation
active to pausingMember accepts a pause save offer
pausing to pausedStripe confirms pause
active to activeTerm optimization changes monthly billing to annual
active to activeA related-tier switch upgrades immediately or schedules a downgrade

Downgrades keep the current subscription active until the current billing period ends. /manage shows the pending target plan while the scheduled change waits for Stripe to apply it. Buying a different tier in the same upgrade group opens the same upgrade or downgrade confirmation on the existing subscription. In /manage, higher ranked related tiers appear behind Upgrade and lower ranked related tiers appear behind Downgrade.

Role access rules

Arcalotl grants the configured Discord role when a subscription becomes active. It removes the role when access ends, when payment recovery grace expires, or when a terminal billing state requires access removal.

The bot must be able to manage the configured role. If Discord blocks role changes, billing state may be correct while Discord access needs support attention.

One-time purchase access

One-time purchases do not renew and do not move through the subscription status table above. Arcalotl grants the configured Discord role after Stripe confirms the Checkout payment.

Access can be permanent or timed:

  • Permanent one-time access stays active until the purchase is refunded or disputed.
  • Timed one-time access ends after the configured number of access days.

When timed access expires, Arcalotl removes the role unless the member still has another active subscription or one-time purchase that grants the same role.

Refunds and open disputes remove one-time access. If a dispute is won and the purchase is still otherwise valid, Arcalotl can grant the role again.

Payment recovery grace

When a renewal fails, the subscription becomes past_due. Arcalotl starts payment recovery and keeps the role during the configured grace period.

If payment is still unresolved after the grace period, Arcalotl removes role access while the payment recovery sequence continues toward recovery or exhaustion.

On this page