Status Reference
Every status label you might see in MemberPass — subscription statuses, member statuses, and payment statuses — explained in plain language.
A colour-coded pill on a list row is worth a thousand words — but only if you know what it means. This page is the reference for every status badge and enum value across the MemberPass dashboard.
Subscription statuses (13 total)
The SubscriptionStatus enum appears on the Managing Subscriptions page and on subscriber-facing views.
| Status | Badge colour | Meaning | Typical next step |
|---|---|---|---|
| Trialing | yellow | Inside a plan's trial period; no real charge has occurred. | Convert to Active at trial end (card-required) or let it expire (cardless). |
| Active | green | Currently paid and granting access. | Renew on cycle end. |
| Incomplete | orange | Payment didn't complete in the provider's expected window. | Manual follow-up — the subscriber may need to retry the charge. |
| Expired | red | Billing cycle ended; access has stopped. | Resubscribe if desired. |
| Past Due | red | A renewal charge failed; retry window is open. | Update payment method in the provider's dashboard. |
| Canceled | zinc | The subscriber or creator cancelled; access continues until cycle end. | No action — will flip to Expired automatically. |
| Unpaid | red | Payment failed and retries are exhausted. | Subscription lapses; resubscribe to restore access. |
| Paused | yellow | Temporarily paused by you or the provider. | Unpause to resume billing. |
| Processing | blue | Payment is being processed by the provider. | Wait — status refreshes when the provider finishes. |
| Succeeded | green | Payment completed successfully. | Bot activates access automatically. |
| Capturable | blue | Payment is authorized but not yet captured. | Capture (usually automatic). |
| Failed | red | Payment outright failed (declined, fraud hold, etc.). | Subscriber retries or picks a different method. |
| Pending | blue | Payment submitted, awaiting confirmation. | Wait for provider webhook (fiat: minutes; crypto: up to an hour). |
Member statuses (5 total)
The ProjectUserStatus enum appears on the Managing Members page.
| Status | Badge colour | Meaning |
|---|---|---|
| Lead | zinc | Interacted with your bot but hasn't subscribed or trialled yet. |
| Trialing | yellow | Inside a trial period of a plan. |
| Customer | green | Has an active paid subscription. |
| Churned | red | Previously Customer or Trialing; no longer has active access. |
| Banned | black | Explicitly banned via /ban admin command or equivalent. |
Transitions
- Lead → Trialing — start a trial.
- Lead / Trialing → Customer — complete a paid subscription.
- Customer / Trialing → Churned — cancellation reaches cycle end, or payment failure exhausts retries.
- Any → Banned — admin action.
Status changes are automatic and driven by the subscription lifecycle — you don't change a member's status directly from the Members page.
Payment statuses (used inside Payment History)
The ProjectSubscriptionPaymentStatus enum appears on the portal's Payment history rows.
| Status | Badge colour | Meaning |
|---|---|---|
| Successful | green | The payment completed and settled. |
| Pending | amber | Submitted to the provider, awaiting confirmation. |
| Failed | red | The payment did not go through. |
| Refunded | zinc | The creator (or provider) refunded the payment. |
Payment provider modes
From the PaymentProviderMode enum:
| Mode | Meaning |
|---|---|
| Live | Production — real money moves. |
| Test / Sandbox | No real money; use provider-specific test credentials. Note: Telegram Stars and Access Codes are Live-only. |
Billing cycles
From the SubscriptionBillingCycle enum, on plans:
| Cycle | Meaning |
|---|---|
| Days | Billed every N days (e.g. every 7 Days). |
| Weeks | Billed every N weeks. |
| Months | Billed every N months. |
| Years | Billed every N years. |
| Lifetime | One-time payment, permanent access. Cycle count is locked to 1 for Lifetime. |
Trial mode types
From the TrialModeType enum:
| Type | Meaning |
|---|---|
| Project | A subscriber gets one trial across any plan in the project. |
| Plan | A subscriber can trial this plan once, even if they trialled a different plan previously. |
Resource types
From the ResourceType enum:
| Type | Meaning | Creatable from dashboard? |
|---|---|---|
| Manual | A free-form placeholder you fulfil yourself. | ✅ Yes |
| Channel | A Telegram broadcast channel. | ❌ Created via bot when you grant it admin rights in Telegram. |
| Group | A Telegram group. | ❌ Created via bot. |
| Supergroup | A Telegram supergroup with topics. | ❌ Created via bot. |
Platform types
From the PlatformType enum:
| Type | Status |
|---|---|
| Telegram | ✅ Live |
| Slack | ⏳ Coming soon |
| Discord | ⏳ Coming soon |
| Viber | ⏳ Coming soon |
API error codes
Every REST API or MCP error carries a machine-readable error.code. The canonical list is published at https://api.memberpass.net/error-codes.json and on the errors page. Condensed here for quick reference:
| Code | HTTP | Meaning |
|---|---|---|
VALIDATION_FAILED | 422 | Request body didn't pass validation rules. |
AUTHENTICATION_REQUIRED | 401 | Missing or invalid bearer token. |
TOKEN_MISSING_ABILITY | 403 | Token lacks the ability the endpoint requires. |
TENANT_MISMATCH | 404 | Resource exists but is out of the token's team scope. |
RESOURCE_NOT_FOUND | 404 | Resource doesn't exist. |
PLAN_CURRENCY_MISMATCH | 400 | Plan currency doesn't match the project's payment method currency. |
PLAN_PROVIDER_UNSUPPORTED | 400 | Plan configuration isn't supported by the selected provider. |
PAYMENT_METHOD_NOT_CONFIGURED | 400 | Project has no active payment method matching the request. |
SUBSCRIPTION_ALREADY_ACTIVE | 400 | Subscriber already has an active subscription. |
ACCESS_CODE_INVALID | 400 | Access code doesn't exist. |
ACCESS_CODE_EXPIRED | 400 | Access code is past its expiry window. |
ACCESS_CODE_ALREADY_REDEEMED | 400 | Access code has already been consumed. |
ACCESS_CODE_CAP_EXCEEDED | 400 | Project has exhausted its plan's access-code allowance. |
IDEMPOTENCY_KEY_MISSING | 400 | Write request lacks the Idempotency-Key header. |
IDEMPOTENCY_KEY_REUSED | 409 | Key reused with a different request body. |
IDEMPOTENCY_REPLAY_IN_PROGRESS | 425 | Concurrent request with the same key is still executing. |
RATE_LIMITED | 429 | Rate limit bucket exhausted. |
TEAM_TIER_REQUIRED | 403 | Operation requires a higher MemberPass creator tier. |
WEBHOOK_ENDPOINT_UNREACHABLE | 424 | Target URL is not reachable during a test fire. |
INTERNAL_SERVER_ERROR | 500 | Uncaught server-side failure. |
Related
- Managing subscriptions — where most of these statuses appear.
- Managing members — member statuses.
- Troubleshooting — what to do when a status looks wrong.
- Glossary — every MemberPass term.
How is this guide?