Cavaridge Academy
Quoting Mastery
Module 5 of 5

Billing handoff

Take a signed quote into Stripe with idempotency, the Pax8 handoff, and tax in the right places.

Video — pending production
Read the transcript below. Once recording is complete, the video will replace this notice.
--- title: Billing handoff status: draft note: AI-generated first-pass transcript pending video production + SME review. --- A signed quote becomes an active subscription via Stripe. The Cavaridge Operations billing handoff is built around three guardrails: idempotency, the customer-of-record rule, and tax in the right places. ## Idempotency Every Stripe write the platform issues carries an `Idempotency-Key` derived from the quote id + the action. If the network drops, if a worker restarts, if the queue replays — the same key returns the cached successful response. **Never** generate a fresh key on retry. That's how you get duplicate charges. When you see a webhook redelivery, the platform routes it through the same idempotency layer. The result: webhooks are safe to replay. ## Customer of record For direct-billed quotes: - Customer of record is the MSP's client. - The Stripe customer object lives in **the MSP's Connect account** with metadata.tenant_id pointing at the client. - Charges flow client → MSP's Stripe → Cavaridge™ wholesale cut. For Pax8-resold quotes: - Customer of record is _still_ the MSP's client. - Pax8 is the marketplace + reconciliation layer; not the customer. - Pax8 SKU mapping stays consistent across renewals. If you ever see Cavaridge™ as customer of record on a paying subscription, that's a bug. File it. ## Stripe Tax We're registered in Florida. Tax is computed automatically on Florida subscriptions. For other states, the operator registers per state and the platform picks up new state codes within a sync window. **Don't** hand-edit tax on a quote to make a number reconcile. If the auto-computed tax is wrong, the registration data is wrong; fix that upstream and resync. ## The handoff sequence 1. Customer signs the DocuSign quote. 2. Platform marks the quote as signed; `paid_conversion` Pulse fires only after payment, not after signature. 3. Stripe Subscription is created with the catalog id metadata, margin_overrides applied, and tax-region resolved. 4. First invoice is generated and sent. 5. On payment success, `paid_conversion` fires; subscriptions activate; tenant onboarding triggers. If any step fails, the platform pauses the rest. You won't end up with a half-activated subscription. Operator intervention via the billing runbook resolves the pause. ## Reconciliation Monthly: - Catalog → Stripe sync runs (no-op if no changes). - COGS audit runs (catches drift in COGS estimates). - Margin audit runs per active subscription (flags any below-floor drift from `margin_overrides` changes). The reports land in your Cavaridge Operations admin surface. Read them when they fire. The cost of not reading is silent margin erosion. ## Final assessment That wraps the path. The final assessment combines all five modules. Pass and you'll receive a signed Quoting Mastery credential with a public verify URL — share it with your team or your customer success manager. They'll know exactly what you've shown you can do.

Knowledge check

  1. Question 1 · select one
    Stripe Tax computes for tenants registered in
  2. Question 2 · select one
    For Pax8-resold subscriptions, the customer of record is
  3. Question 3 · select all that apply
    Idempotency keys on Stripe writes prevent