Each scenario shows the customer email rendered inline (left) and the admin email plain text (right). Built from the actual deployed code paths with realistic per-scenario values.
Activation — Booking Monthly only
Brand new customer activates Booking on Monthly. $19 charged, renews next month.
Customer email
Subject: Your Booking Monthly plan is active
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Your Booking Monthly plan is active on your account.
You were charged $19 today.
Your next renewal is on May 27, 2026.
Details
Amount charged: $19
Payment reference: billpay_act_monthly_001
Next renewal: May 27, 2026
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer started their Booking Monthly plan.
What happened
They paid $19 today.
Their next renewal is May 27, 2026.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_act_monthly_001
PayPal capture ID: 5XL_BOOKING_MONTHLY_001
Charge attempt ID: att_act_monthly_001
Charge request ID: req_act_monthly_001
Resulting state
Active subscription: Booking Monthly. Next renewal: May 27, 2026.
Activation — Booking Yearly only
Brand new customer activates Booking on Yearly. $190 charged, renews next year.
Customer email
Subject: Your Booking Yearly plan is active
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Your Booking Yearly plan is active on your account.
You were charged $190 today.
Your next renewal is on April 27, 2027.
Details
Amount charged: $190
Payment reference: billpay_act_yearly_001
Next renewal: April 27, 2027
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer started their Booking Yearly plan.
What happened
They paid $190 today.
Their next renewal is April 27, 2027.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_act_yearly_001
PayPal capture ID: 5XL_BOOKING_YEARLY_001
Charge attempt ID: att_act_yearly_001
Charge request ID: req_act_yearly_001
Resulting state
Active subscription: Booking Yearly. Next renewal: April 27, 2027.
Activation — Booking + Scheduling Monthly
Brand new customer activates both products on Monthly.
Customer email
Subject: Your Booking + Scheduling Monthly plan is active
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Your Booking + Scheduling Monthly plan is active on your account.
You were charged $38 today.
Your next renewal is on May 27, 2026.
Details
Amount charged: $38
Payment reference: billpay_act_combo_monthly_001
Next renewal: May 27, 2026
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer started their Booking + Scheduling Monthly plan.
What happened
They paid $38 today.
Their next renewal is May 27, 2026.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_act_combo_monthly_001
PayPal capture ID: 5XL_COMBO_MONTHLY_001
Charge attempt ID: att_act_combo_monthly_001
Charge request ID: req_act_combo_monthly_001
Resulting state
Active subscription: Booking + Scheduling Monthly. Next renewal: May 27, 2026.
Activation — Booking + Scheduling Yearly
Brand new customer activates both products on Yearly.
Customer email
Subject: Your Booking + Scheduling Yearly plan is active
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Your Booking + Scheduling Yearly plan is active on your account.
You were charged $380 today.
Your next renewal is on April 27, 2027.
Details
Amount charged: $380
Payment reference: billpay_act_combo_yearly_001
Next renewal: April 27, 2027
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer started their Booking + Scheduling Yearly plan.
What happened
They paid $380 today.
Their next renewal is April 27, 2027.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_act_combo_yearly_001
PayPal capture ID: 5XL_COMBO_YEARLY_001
Charge attempt ID: att_act_combo_yearly_001
Charge request ID: req_act_combo_yearly_001
Resulting state
Active subscription: Booking + Scheduling Yearly. Next renewal: April 27, 2027.
Customer on Booking Monthly adds Scheduling on Monthly. Prorated charge today; combined plan from now on.
Customer email
Subject: Scheduling was added to your plan
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Scheduling now starts right away on your account.
You were charged $19 today.
Your next renewal on May 27, 2026 includes Booking + Scheduling together.
Details
Amount charged: $19
Payment reference: billpay_upg_05_001
Next renewal: May 27, 2026
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer added Scheduling Monthly to their account.
What happened
Scheduling starts right away.
They paid $19 today.
Their next renewal on May 27, 2026 includes Booking + Scheduling together.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_upg_05_001
PayPal capture ID: 5XL_UPG_05_001
Charge attempt ID: att_upg_05_001
Charge request ID: req_upg_05_001
Resulting state
Active subscription: Booking + Scheduling Monthly. Next renewal: May 27, 2026.
Checkout
Checkout request ID: chkreq_upg_05_001
Selection: scheduling_monthly
Customer schedules Booking to switch to Yearly at end of current Monthly period. No charge today.
Customer email
Subject: Your Booking change to Yearly is scheduled
Preheader: No charge was due today
No charge was due today
PETCARE DEV
No charge was due today.
Booking will switch to Yearly on May 27, 2026.
Details
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer scheduled their Booking plan to switch to Yearly.
What happened
No charge was due today.
Booking is scheduled to switch to Yearly on May 27, 2026.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Resulting state
Active subscription: Booking Monthly. Pending change: Booking switches to Yearly on May 27, 2026.
Checkout
Checkout request ID: chkreq_upg_06_001
Selection: booking_yearly
Adds Scheduling immediately AND schedules combined Yearly switch.
Customer email
Subject: Scheduling was added and Booking + Scheduling Yearly is scheduled
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Scheduling now starts right away on your account.
You were charged $19 today.
Booking + Scheduling will switch to Yearly on May 27, 2026.
Details
Amount charged: $19
Payment reference: billpay_upg_07_001
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer added Scheduling now and scheduled Booking + Scheduling to switch to Yearly.
What happened
Scheduling starts right away.
They paid $19 today.
Booking + Scheduling is scheduled to switch to Yearly on May 27, 2026.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_upg_07_001
PayPal capture ID: 5XL_UPG_07_001
Charge attempt ID: att_upg_07_001
Charge request ID: req_upg_07_001
Resulting state
Active subscription: Booking + Scheduling Monthly. Pending change: Booking + Scheduling switches to Yearly on May 27, 2026.
Checkout
Checkout request ID: chkreq_upg_07_001
Selection: booking_scheduling_yearly
Booking already scheduled to Yearly; customer adds Scheduling so it joins the pending Yearly.
Customer email
Subject: Scheduling was added to your pending Yearly change
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Scheduling now starts right away on your account.
You were charged $19 today.
Scheduling will switch to Yearly on May 27, 2026 with Booking.
Details
Amount charged: $19
Payment reference: billpay_upg_08_001
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer added Scheduling while Booking was already scheduled to switch to Yearly.
What happened
Scheduling starts right away.
They paid $19 today.
Scheduling is scheduled to switch to Yearly on May 27, 2026 with Booking.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_upg_08_001
PayPal capture ID: 5XL_UPG_08_001
Charge attempt ID: att_upg_08_001
Charge request ID: req_upg_08_001
Resulting state
Active subscription: Booking + Scheduling Monthly. Pending change: Booking + Scheduling switches to Yearly on May 27, 2026.
Checkout
Checkout request ID: chkreq_upg_08_001
Selection: scheduling_yearly
Upgrade — Booking Yearly + add Scheduling Yearly
Customer on Booking Yearly adds Scheduling on Yearly. Prorated charge today; both renew together.
Customer email
Subject: Scheduling was added to your Yearly plan
Preheader: Thanks for your payment
Thanks for your payment
PETCARE DEV
Thanks for your payment. Scheduling now starts right away on your account.
You were charged $190 today.
Booking + Scheduling will renew together on April 27, 2027.
Details
Amount charged: $190
Payment reference: billpay_upg_09_001
Next renewal: April 27, 2027
You're receiving this because a billing change was made on your account. Receipts are available from your Billing page.
Admin email (plain text)
A customer added Scheduling to an existing Booking Yearly plan.
What happened
Scheduling starts right away.
They paid $190 today.
Booking + Scheduling will renew together on April 27, 2027.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_upg_09_001
PayPal capture ID: 5XL_UPG_09_001
Charge attempt ID: att_upg_09_001
Charge request ID: req_upg_09_001
Resulting state
Active subscription: Booking + Scheduling Yearly. Next renewal: April 27, 2027.
Checkout
Checkout request ID: chkreq_upg_09_001
Selection: booking_scheduling_yearly
Upgrade — Booking + Scheduling Monthly → Yearly together (no charge today)
Customer with both products on Monthly schedules combined Yearly switch.
Customer email
Subject: Your Booking + Scheduling change to Yearly is scheduled
Preheader: No charge was due today
No charge was due today
PETCARE DEV
No charge was due today.
Booking + Scheduling will switch to Yearly on May 27, 2026.
Details
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer scheduled Booking + Scheduling to switch to Yearly.
What happened
No charge was due today.
Booking + Scheduling is scheduled to switch to Yearly on May 27, 2026.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Resulting state
Active subscription: Booking + Scheduling Monthly. Pending change: Booking + Scheduling switches to Yearly on May 27, 2026.
Checkout
Checkout request ID: chkreq_upg_10_001
Selection: booking_scheduling_yearly
Upgrade — Booking + Scheduling Monthly → Booking Yearly only (no charge)
Customer schedules Booking Yearly switch but leaves Scheduling on Monthly.
Customer email
Subject: Your Booking change to Yearly is scheduled
Preheader: No charge was due today
No charge was due today
PETCARE DEV
No charge was due today.
Booking will switch to Yearly on May 27, 2026.
Scheduling remains Monthly and will not switch to Yearly with this change.
Details
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer scheduled Booking to switch to Yearly, but left Scheduling Monthly.
What happened
No charge was due today.
Booking is scheduled to switch to Yearly on May 27, 2026.
Scheduling remains Monthly.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Resulting state
Active subscription: Booking + Scheduling Monthly. Pending change: Booking switches to Yearly on May 27, 2026. Scheduling stays Monthly.
Checkout
Checkout request ID: chkreq_upg_11_001
Selection: booking_yearly
Refund — Booking Monthly activation payment
Refund of the customer's Booking Monthly activation. No other paid access remains; account moves to unpaid.
Customer email
Subject: Your payment was refunded
Preheader: Your refund has been recorded
Your refund has been recorded
PETCARE DEV
Your payment for Booking was refunded.
We updated your account to reflect that refund. Any plan access or scheduled change from that payment has been removed.
PayPal may take a little time to show the refund in your account, depending on how the original payment was funded.
Details
Amount refunded: $19
Payment reference: billpay_act_monthly_001
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer payment was refunded, and PCD updated the account to undo what that payment provided.
What happened
Refunded amount: $19
Account update: Booking Monthly subscription expired, access removed, account marked unpaid.
Payment reference: billpay_act_monthly_001
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_act_monthly_001
PayPal capture ID: 5XL_BOOKING_MONTHLY_001
PayPal refund ID: 9PR_REFUND_act_monthly
Charge attempt ID: att_act_monthly_001
Charge request ID: req_act_monthly_001
Resulting state
Account status: unpaid. Active subscriptions: none.
Refund — Booking Yearly activation payment
Refund of the customer's Booking Yearly activation. Account moves to unpaid.
Customer email
Subject: Your payment was refunded
Preheader: Your refund has been recorded
Your refund has been recorded
PETCARE DEV
Your payment for Booking was refunded.
We updated your account to reflect that refund. Any plan access or scheduled change from that payment has been removed.
PayPal may take a little time to show the refund in your account, depending on how the original payment was funded.
Details
Amount refunded: $190
Payment reference: billpay_act_yearly_001
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer payment was refunded, and PCD updated the account to undo what that payment provided.
What happened
Refunded amount: $190
Account update: Booking Yearly subscription expired, access removed, account marked unpaid.
Payment reference: billpay_act_yearly_001
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_act_yearly_001
PayPal capture ID: 5XL_BOOKING_YEARLY_001
PayPal refund ID: 9PR_REFUND_act_yearly
Charge attempt ID: att_act_yearly_001
Charge request ID: req_act_yearly_001
Resulting state
Account status: unpaid. Active subscriptions: none.
Refund of a payment that BOTH added Scheduling immediately AND created a pending Yearly switch. Both effects undone: Scheduling removed and the pending Yearly change canceled. Booking returns to plain Monthly.
Customer email
Subject: Your payment was refunded
Preheader: Your refund has been recorded
Your refund has been recorded
PETCARE DEV
Your payment for Scheduling was refunded.
We updated your account to reflect that refund. Any plan access or scheduled change from that payment has been removed.
PayPal may take a little time to show the refund in your account, depending on how the original payment was funded.
Details
Amount refunded: $19
Payment reference: billpay_upg_07_001
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer payment was refunded, and PCD updated the account to undo what that payment provided.
What happened
Refunded amount: $19
Account update: Scheduling subscription expired and access removed; pending Yearly change for Booking + Scheduling canceled. Booking remains on Monthly.
Payment reference: billpay_upg_07_001
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_upg_07_001
PayPal capture ID: 5XL_UPG_07_001
PayPal refund ID: 9PR_REFUND_upg_07
Charge attempt ID: att_upg_07_001
Charge request ID: req_upg_07_001
Resulting state
Account status: active. Active subscriptions: Booking Monthly.
Customer had Booking Monthly with pending Yearly already scheduled. They added Scheduling onto that pending Yearly. Refund undoes Scheduling but does NOT cancel Booking's pending Yearly (which existed before this payment).
Customer email
Subject: Your payment was refunded
Preheader: Your refund has been recorded
Your refund has been recorded
PETCARE DEV
Your payment for Scheduling was refunded.
We updated your account to reflect that refund. Any plan access or scheduled change from that payment has been removed.
PayPal may take a little time to show the refund in your account, depending on how the original payment was funded.
Details
Amount refunded: $19
Payment reference: billpay_upg_08_001
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer payment was refunded, and PCD updated the account to undo what that payment provided.
What happened
Refunded amount: $19
Account update: Scheduling subscription expired and access removed; Booking's pre-existing pending Yearly change preserved.
Payment reference: billpay_upg_08_001
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Payment
Payment ID: billpay_upg_08_001
PayPal capture ID: 5XL_UPG_08_001
PayPal refund ID: 9PR_REFUND_upg_08
Charge attempt ID: att_upg_08_001
Charge request ID: req_upg_08_001
Resulting state
Account status: active. Active subscriptions: Booking Monthly. Pending change: Booking switches to Yearly on May 27, 2026.
Customer with Booking + Scheduling Monthly cancels just Scheduling's pending Yearly switch. Booking still pending Yearly.
Customer email
Subject: Scheduling Yearly was canceled
Preheader: Scheduling will stay Monthly
Scheduling will stay Monthly
PETCARE DEV
Your pending Scheduling change to Yearly was canceled.
Scheduling remains Monthly through May 27, 2026.
Booking is still scheduled to switch to Yearly on May 27, 2026.
Details
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer canceled their Scheduling Yearly change.
What happened
Scheduling will stay Monthly through May 27, 2026.
Booking is still scheduled to switch to Yearly on May 27, 2026.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Resulting state
Active subscription: Booking + Scheduling Monthly. Pending change: Booking switches to Yearly on May 27, 2026.
Preheader: Your pending Booking change was removed
Your pending Booking change was removed
PETCARE DEV
Your pending Booking change to Yearly was canceled.
Booking remains Monthly through May 27, 2026.
Scheduling's linked Yearly change was canceled at the same time.
Details
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer canceled their Booking Yearly change.
What happened
Booking will stay Monthly through May 27, 2026.
Scheduling's linked Yearly change was canceled too.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Resulting state
Active subscription: Booking + Scheduling Monthly. Pending change: none. Scheduling Yearly change canceled too.
Restore — Booking pending Yearly
Customer restores Booking pending Yearly. As part of the restore, Scheduling auto-renew is turned off so Scheduling will end with the current Monthly period — preventing the impossible state of Scheduling Monthly running while Booking is on Yearly. To keep Scheduling alongside the new Booking Yearly, the customer restores Scheduling Yearly separately.
Customer email
Subject: Booking Yearly was restored
Preheader: Your pending Booking Yearly change is active again
Your pending Booking Yearly change is active again
PETCARE DEV
Your pending Booking change to Yearly is active again.
Booking will switch to Yearly on May 27, 2026.
Scheduling will end with your current Monthly period.
To keep Scheduling active alongside Booking Yearly, restore Scheduling Yearly separately.
Details
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer restored their Booking Yearly change.
What happened
Booking is scheduled to switch to Yearly on May 27, 2026.
Scheduling auto-renew was turned off as part of this restore; Scheduling will end at the current period boundary unless the customer restores Scheduling Yearly separately.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Resulting state
Pending change: Booking switches to Yearly on May 27, 2026. Scheduling ends with the current Monthly period.
Preheader: Your pending Scheduling Yearly change is active again
Your pending Scheduling Yearly change is active again
PETCARE DEV
Your pending Scheduling change to Yearly was restored.
Booking is already scheduled to switch to Yearly on May 27, 2026.
Scheduling will switch to Yearly on May 27, 2026.
Details
Effective date: May 27, 2026
You're receiving this because a billing change was made on your account.
Admin email (plain text)
A customer restored their Scheduling Yearly change.
What happened
Scheduling is scheduled to switch to Yearly on May 27, 2026.
Booking is already scheduled to switch to Yearly on May 27, 2026.
Customer
Email: jane.doe@example.com
User ID: usr_jane_doe_abc123
Resulting state
Pending change: Booking switches to Yearly on May 27, 2026. Scheduling switches to Yearly on May 27, 2026.