# Payment Expiry Alert

A self-service component that warns subscribers when their default payment method is expiring soon or has already expired. The component has two independently configurable states — **expiring soon** and **expired** — so you can escalate urgency as the deadline approaches.

You can configure the component to accommodate scenarios where your billing system cannot switch to backup payment methods if the default method fails. Without intervention, an expired card means failed billing and potential service interruption.

<figure><img src="https://430995084-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSe5wc9RXUPzSYeMZJDNj%2Fuploads%2FVmAMm1HMAT835wmQJmUZ%2FScreenshot%202026-03-24%20at%2012.32.52.png?alt=media&#x26;token=00e2b489-ed9a-4e43-8c38-2631888f7baf" alt=""><figcaption></figcaption></figure>

Once the payment method is expired, the visual will automatically change:

<figure><img src="https://430995084-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSe5wc9RXUPzSYeMZJDNj%2Fuploads%2FPik6djtfu4Rh5OF5BNLH%2FScreenshot%202026-03-24%20at%2013.17.00.png?alt=media&#x26;token=bfef7c7e-0e31-48f5-9b91-3ba5386fc5ad" alt=""><figcaption></figcaption></figure>

The component is built to be used alongside [Component: Saved Payment Methods](https://app.gitbook.com/s/AIj7bFbTc7K2038CWL50/component-library/self-service-components/component-saved-payment-methods "mention"), however it can be used anywhere within Limio Self-Service.

## How it works

The component checks the subscriber's default payment method expiry date against a configurable threshold (default: 90 days). Depending on the result, it renders one of two states:

* **Expiring soon** — the card will expire within the threshold. Shows a warning with a countdown (`{{daysUntilExpiry}}` days remaining)
* **Expired** — the card's expiry date has passed. Shows a more urgent alert prompting immediate action

Both states support template variables (`{{brand}}`, `{{last4}}`, `{{daysUntilExpiry}}`) so you can modify the copy.

A "`Show when backup payment exists`" toggle controls whether the alert appears even when other payment methods are on file. The default is "Yes — always show" because connected billing systems, such as Zuora, don't necessarily auto-fallback to backups

{% hint style="warning" %}
**Zuora users:** Zuora does not automatically fall back to backup payment methods. You need [Cascading Payment Methods](https://docs.zuora.com/en/zuora-payments/payment-orchestration/cascade-payment-methods/overview) enabled for that. This is why the default here is "always show" — only set it to "No" if Cascading is active on your tenant.
{% endhint %}

## Configuration

Everything is configurable through Page Builder prompts:

* **Per-state copy** — separate heading and description for "expiring soon" and "expired" states
* **Expiry threshold** — how many days before expiry the alert starts appearing (default: 90)
* **Backup visibility** — choose whether to show the alert when backup methods exist (recommended: yes)
* **CTA button** — configurable text and URL, shared between both states
* **Colours** — background, border, and text colour (amber warning by default, can be set to red for urgency)

For maximum control, you can place the component twice on the same page — one configured for the expiring-soon state (amber, high threshold) and one for the expired state (red, threshold set to 0).

## Placement

Designed to sit above the saved-payment-methods component on a self-service page, so it's the first thing subscribers see. Matches the same 724px desktop / full-width mobile grid layout for visual alignment.

## Why it matters

Expired payment methods are a leading cause of involuntary churn. Giving subscribers advance warning — and a clear path to update their details — reduces failed payments, support tickets, and the revenue leakage that comes with billing failures.

***

{% hint style="info" %}
**This is a Labs feature.** We're experimenting with this and it's not yet part of the core platform. Interested in early access or want to help shape it?

[Request access →](mailto:hello@limio.com?subject=Labs%20—%20Payment%20Expiry%20Alert)
{% endhint %}
