Checkout and Payments
Buyer checkout and payment outcomes that lead to provisioning — either a SaaS PlatformPlan for using MyHoreca Licensing, or a vendor commerce purchase that results in license grants. PSP secrets and webhook signing credentials are never published on this site.
Three names that must stay distinct
| Term | Meaning |
|---|---|
| PlatformPlan (SaaS) | Subscription tier for using the Licensing platform (dogfood / internal forever-free ≠ customer Free trial) |
| License Plan (POL) | Vendor packaging for a catalog Product — features/limits |
| Offer / price book (VCM) | Vendor-facing commerce price for selling their software |
UI and integrator docs should qualify Platform plan (SaaS) vs License plan (packaging) vs Offer. See also Plans · Trials.
Payment planes (boundaries)
| Plane | Role |
|---|---|
| Platform Billing (PBL) | Charges for MyHoreca SaaS / PlatformPlan |
| Vendor Commerce (VCM) | Vendor buyer checkout that fulfills licenses / grants |
They use separate provider wiring and webhook routes. Runtime does not call payment providers.
Public PlatformPlan pricing source
Anonymous pricing consumers may read GET /api/v1/public/platform-plans.
The route returns only PlatformPlans explicitly marked both Active and
Public, in deterministic order. Internal, Draft and Retired plans are not
returned. The payload contains safe price and platform-capacity fields only;
it contains no PSP reference, tenant, Product, Customer, License or Runtime
authority. Responses support a strong ETag and bounded public caching.
The bilingual WWW route /{locale}/pricing renders this catalog directly. It
shows locale-aware prices and platform limits with explicit loading, empty and
retryable failure states. Malformed or unavailable evidence produces no
partial cards and no fallback to old hard-coded prices.
Live vs Fake
When live PSP credentials are unset, Fake remains the safe default for development. First live PSP family is Stripe (Checkout Sessions + inbound webhooks; opt-in via ops secrets). Other PSPs are follow-ups — this page does not invent multi-PSP UX.
Buyer SPA may show Fake succeed/fail only in Fake mode; live checkout uses provider redirect + webhook fulfillment. No card data or PSP secret keys in SPA or docs samples.
What operators must never put in public docs
- Live Stripe (or other) secret keys / webhook signing secrets
- Full webhook payloads with PII in examples
- Private Host /
platform.jsoncredential material — see Secrets
Related
- Customer Portal · Reseller Portal
- Plans · Products · Entitlements
- Webhooks (integrator events ≠ PSP ingress internals)
- API Reference · Error catalog
Next steps
- Getting Started
- Trust after license issue: Verify trust (JWKS)