When a customer has a card on file and you want to charge it for something OTHER than an autopay cycle, use the 'Charge now' button on their detail page. Common cases: same-day repair labor where you don't want to send-then-wait for the customer to pay, or a follow-up parts upcharge after the original invoice closed.
How it works
- 1Open customer detail page
Card-on-file section at the top.
- 2Click 'Charge now'
Modal opens. Only enabled when there's actually a saved card.
- 3Enter amount + description
Description shows on the customer's bank statement AND on the new invoice. Be specific — 'Same-day water heater install — labor + parts' beats 'Service'.
- 4Click 'Charge $X'
Plyrium creates a draft invoice + line item, then runs the off-session charge against the saved card. On success: invoice flips to paid + payment row created; you're redirected to the invoice detail page.
What gets created
- A new paid invoice with the description as the title and a single line item.
- A payment row linked to the Stripe PaymentIntent.
- An audit-log event in /admin (you can trace the charge later if needed).
When the charge fails
Two failure modes:
- Card declined (insufficient funds, expired card, etc.) — the draft invoice is automatically VOIDED so you don't have abandoned drafts cluttering /portal/invoices. Modal surfaces the Stripe decline reason.
- Bank requires authentication (SCA / 3DS step-up — rare for off-session, common in EU but US cards occasionally) — invoice voided, modal says 'send a fresh invoice link instead.' Use that to email the customer a regular Stripe Checkout link where they can authenticate in-browser.
Charges fire immediately against the live card. There's no preview / dry-run. Double-check the amount before clicking. Refunds go through the invoice detail page if you make a mistake.
If the customer is responsive and you have time, sending a regular invoice (with the 'Charge ··4242' button on it) gives them a chance to dispute or ask questions before the money moves. Charge-now is for situations where speed matters and you've already gotten verbal/in-person sign-off.