Card Expiration Email Template for Subscription and SaaS Billing

A card-expiration email should prevent a predictable billing failure. It is a service message, not a scare tactic: the recipient needs to know which account is affected, what date matters, and where the secure update flow lives.
Trigger and data contract
Fire the message from a payment-provider event or a verified billing-service check, not from a guessed date in a marketing database.
| Field | Example | Required behavior |
|---|---|---|
| Customer name | Maya Chen | Fall back to “there” |
| Product or workspace | Acme Analytics | Identify the affected account |
| Card brand and last four | Visa ending in 4242 | Never expose the full number |
| Expiration month/year | 08/26 | Use the provider’s canonical value |
| Billing portal URL | Secure account link | Generate a signed, expiring or authenticated link |
| Next charge date | August 15, 2026 | Omit if the date is unknown |
| Support path | Help center or reply address | Keep available when self-service fails |
Suppress the email when the payment method is updated, the subscription is canceled, the account is already past due, or another billing workflow has taken ownership of the case.
Timing that respects the customer
Use a small sequence rather than one message:
- Early notice when the provider reports the upcoming expiration.
- Reminder before the next charge if the card is still unchanged.
- Follow-up only if the charge is imminent and the account is eligible to renew.
Do not continue the expiration sequence after a successful update. If a payment fails, transition to the failed-payment or dunning flow so the customer does not receive two contradictory explanations.
Template
Subject: Your card ending in {{card_last4}} expires soon
Preheader: Update your payment method before your next {{product_name}} charge.
Hello {{customer_name}},
The {{card_brand}} card ending in {{card_last4}} expires on {{expiration_date}}. To keep {{product_name}} active, update your payment method before {{next_charge_date}}.
[Update payment method]
You will be taken to a secure billing page. We will never ask you to send your full card number by email.
If you already updated your card, no further action is needed. Need help? Contact {{support_email}}.
{{company_name}}
What the email should not say
- “Your account will be deleted today” unless that is actually the product policy.
- The complete card number, CVV, or a payment credential.
- A generic “urgent action required” subject with no date or account context.
- A link that exposes billing data without authentication.
- A reminder after the card was replaced.
Workflow rules
| Condition | Action |
|---|---|
| Provider says card expires but an update event arrives | Cancel pending messages |
| Customer has several workspaces | Identify the workspace and billing owner |
| Card is already expired | Use a payment-method or failed-payment flow, not a future-expiration notice |
| Subscription is canceled | Suppress unless a final invoice still needs payment |
| Billing portal is unavailable | Provide support contact and retry the job |
QA checklist
- Test the message with a missing customer name and missing next-charge date.
- Verify the last four digits match the provider event.
- Confirm the update link opens the correct account and does not leak an identifier.
- Check that the email is not sent to a canceled or already-updated account.
- Test timezone and date formatting for the customer’s locale.
- Render the message in a narrow mobile viewport.
The payment method update email template is a broader recovery message; use this page when the specific trigger is expiration.
Variants worth keeping
Multiple cards or billing profiles
Name the billing profile or subscription, not just the last four digits. “Your card ending in 4242” is ambiguous when a customer manages several workspaces. Link directly to the affected billing profile and make the profile name visible on the destination page.
Card already expired
Do not reuse the future-expiration copy. Say that the saved method is no longer valid, explain the current account state, and route the customer to the payment-method or dunning workflow.
Account owner is different from the end user
Send the notice to the authorized billing contact. If the product allows team members to notify an owner, show the workspace name and avoid exposing billing details to an ordinary member.
Measurement and ownership
Track successful payment-method updates, failed renewals after the notice, support contacts, and unsubscribe or complaint changes. A high click rate with no updates usually means the portal is confusing or the message is reaching the wrong role.
Assign ownership to billing operations. Product owns the account state and engineering owns event delivery; marketing should not be the only team responsible for a billing-critical message.