Z Meetings
Take payment at the moment of booking — and keep all of it.
Auto-generated meeting links on every online booking.
No per-booking feeSCA / 3D Secure readyRefunds from WordPress
ZSecure checkout live
Deep tissue massage · 60 min$120.00
Aromatherapy add-on$25.00
Loyalty discount−$15.00
Pay today · 50% deposit$65.00
CardApple PayGoogle Pay
4242 4242 •••• 941212/27•••
Pay $65.00✓ Payment confirmed
✓
Settled to your bankZoom · no middleman
$0
Our cut
Why it matters
The business case, not the feature list.
✓
Per-booking fees compound against you
A platform taking even 1% of every booking costs more every year you grow. A flat licence does not — that gap widens permanently in your favour.
✓
Deposits move the no-show number more than reminders do
Operators collecting a deposit report no-shows falling by roughly a third. No reminder strategy alone matches that.
✓
Payment Intents means European bookings do not silently fail
SCA and 3D Secure are handled inside the widget. Plugins built on the old Charges API drop a meaningful share of EU card payments.
✓
Tokenisation keeps your PCI scope small
Card data goes straight to Zoom and never reaches your database, which keeps most businesses in the lightest self-assessment bracket.
$0
Fee from us
−38%
No-shows with deposits
135+
Currencies
2
Clicks to refund
Searching for “zoom wordpress appointment plugin”? That is what this page is written for. If you are weighing named products against each other, the comparison pages go feature by feature.
What you can charge
Zoom, properly wired.
Full payment at booking
Card, Apple Pay, Google Pay and Link in one flow. The slot is held for five minutes while checkout completes.
Fixed or percentage deposit
Take $25 or 50% now and the balance at the appointment, online or at the POS terminal.
Authorise now, capture later
Place a hold at booking and capture the real amount after a service whose price is not fixed up front.
Recurring memberships
Subscriptions billed on Zoom with allowances, member pricing and automatic dunning on failure.
Saved cards
Returning customers check out with a stored payment method instead of retyping a card.
Refunds, full or partial
Two clicks from the booking screen, synced to Zoom and written to the append-only audit log.
Before you start
Six things you need.
Worth knowing up front rather than halfway through the setup screen.
1
A Zoom account
Free to open. Available in 46 countries. You keep it if you ever leave us.
2
A restricted API key
Not your secret key. Scope it to charges and refunds only — instructions below.
3
HTTPS on your site
Zoom refuses live keys over plain HTTP, and so should you.
4
A webhook endpoint
We generate the URL; you paste it into Zoom so payment statuses come back.
5
Any Schedularity tier
Zoom is available from Starter upward. Manual payment works on the free plan.
6
PHP 8.1 or newer
Required by the Zoom PHP SDK we bundle.
Setup
Connected in about ten minutes.
No middleware, no Zapier hop — a first-class integration inside the plugin.
1
Create a restricted key
Zoom → Developers → API keys → Restricted keys. Grant write on Charges, Payment Intents, Customers and Refunds.
2
Paste into WordPress
Schedularity → Settings → Payments → Zoom. Start in test mode.
3
Register the webhook
Copy our endpoint into Zoom → Developers → Webhooks and select the payment events.
4
Set the rule and go live
Full payment, fixed deposit or percentage — per service. Then swap to live keys.
Credentials in detail
Publishable keyStarts pk_live_ or pk_test_. Safe to expose — it is what the browser uses to tokenise the card.
Restricted secret keyStarts rk_live_. Stored encrypted in your options table, never transmitted to us. Prefer a restricted key over sk_live_ so a leak cannot do arbitrary damage.
Webhook signing secretStarts whsec_. We verify every inbound event against it, so a forged payload cannot mark a booking paid.
Webhook endpointWe generate /wp-json/schedularity/v1/webhooks/zoom. Paste it into Zoom.
Statement descriptorWhat appears on the customer\u2019s bank statement. Set it to your trading name to cut chargebacks from people who do not recognise the charge.
Default currencyYour base currency. Per-location overrides let a multi-country install bill correctly in each market.
Test before you go live. The settings screen has a test action that runs a real call against your credentials and shows the raw response, so a bad key surfaces immediately rather than on a customer.
Reference
Webhook events we listen for
| Event | What we do | Why it matters |
|---|---|---|
payment_intent.succeeded | Mark the booking paid and release the slot hold | The booking is only confirmed once Zoom says the money moved |
payment_intent.payment_failed | Return the slot to open inventory | A failed card should not silently hold a slot that someone else could take |
charge.refunded | Update the booking and write to the audit log | Refunds issued in the Zoom dashboard stay in sync with WordPress |
charge.dispute.created | Flag the booking and notify an administrator | You hear about a chargeback from us, not from your bank a week later |
invoice.payment_succeeded | Extend the membership period | Recurring plans renew without anyone touching them |
invoice.payment_failed | Start the dunning sequence | Card expiry is the most common churn cause and the easiest to fix |
customer.subscription.deleted | End the membership and its allowances | Cancelled members lose member pricing at the next booking |
Where the money goes
Follow the money.
Step 1
Customer pays
Card tokenised in the browser
Zoom.js · Never touches your DBStep 2
Zoom processes
Standard Zoom rate applies
Their fee · 2.9% + 30¢ typicalStep 3
Schedularity takes
Nothing at all
Our fee · $0.00Step 4
You are paid out
Direct to your bank
Your account · On your Zoom scheduleWhat it costs
You pay the provider. We take nothing.
Indicative rates — confirm current pricing with the provider directly.
Zoom processing
2.9% + 30¢
Typical US online card rate, billed by Zoom directly to you. Rates vary by country and method.
Schedularity markup
$0
No per-booking fee, no percentage, no credit packs. On every tier, forever.
What a competitor takes
1–3%
Typical booking-platform commission on top of processing — on $100k of bookings that is $1,000–$3,000 a year.
Troubleshooting
When it does not work.
The five things that actually go wrong, and what each looks like in the log.
Card declined ·
card_declinedThe issuer refused it, not Zoom. The customer sees the real decline reason and can retry with another method — the slot stays held for the remainder of its five minutes.
Payments succeed but bookings stay unpaid
The webhook is not registered or its signing secret is wrong. Check
/wp-json/schedularity/v1/webhooks/zoom is reachable — a security plugin blocking REST routes is the usual culprit.3D Secure loop on European cards
You are on an old integration path. Confirm Payment Intents is enabled in settings; the legacy Charges API cannot complete SCA.
Invalid API key ·
401Test key in live mode, or a restricted key missing a scope. Check the key prefix matches the mode and that Refunds is granted if refunds fail specifically.
Amounts off by a factor of 100
A currency with no minor unit, such as JPY. Set the currency in settings rather than overriding the amount — we handle zero-decimal currencies correctly.
Questions
Zoom, specifically.
Do you add a fee on top of Zoom?
No. You pay Zoom\u2019s standard rate directly and we take nothing per booking, on any plan. That is the entire pricing difference against a commission-based platform.
Does it support SCA and 3D Secure?
Yes, through Payment Intents. The full authentication flow runs inside the booking widget, so European cards complete rather than dropping at the last step.
Can I refund from WordPress?
Yes — full or partial, two clicks from the booking. It syncs to Zoom immediately and writes to the audit log with the administrator who issued it.
Which countries and currencies work?
Anywhere Zoom operates — 46 countries, 135+ currencies. Multi-currency lets you present prices in the customer\u2019s currency from your base rate.
Is card data stored on my server?
Never. The card is tokenised in the browser by Zoom.js and your database only ever sees a token, which keeps you in the lightest PCI bracket.
Can I use Zoom alongside another gateway?
Yes. Run Zoom and Razorpay together and set a default per service or per location — useful for a business trading in two markets.
Does it handle Apple Pay and Google Pay?
Yes, through the Payment Request API. They appear automatically for customers whose device supports them, with no extra configuration.
What about subscriptions for memberships?
Memberships bill through Zoom subscriptions with automatic dunning. A failed card retries and notifies the member before you ever see it.
Keep reading
Related.
Fifty more where that came from.
Payments, video, calendars, email, SMS, CRM, automation and analytics — all included on every paid tier.