Stripe
Accept card payments, Apple Pay, Google Pay, and SEPA direct debit through Stripe. Advik Booking uses Stripe Elements, so card details never touch your server.
What you need
- A Stripe account (free to create — stripe.com/register).
- Publishable key + secret key from the Stripe dashboard.
- A webhook endpoint URL (provided by the plugin).
Where to find it
Advik Booking → Settings → Payments → Stripe.
Setup — 5 minutes
- Create a Stripe accountSign up at stripe.com. You can do everything below with the test mode toggled on — no need to verify your identity for the first tests.
- Get your API keysIn the Stripe dashboard, open Developers → API keys. Copy the Publishable key and the Secret key.
- Enable Stripe in Advik BookingPaste the keys into the Stripe settings. Keep Test mode on for now. Save.
- Set up the webhookThe plugin shows a webhook URL — something like
https://yourdomain.com/wp-json/advik/v1/webhooks/stripe. In the Stripe dashboard go to Developers → Webhooks → Add endpoint and paste the URL. Subscribe to these events:textAfter saving, copy the Signing secret and paste it back into the plugin's Webhook secret field.payment_intent.succeeded payment_intent.payment_failed charge.refunded charge.dispute.created - Test a bookingOpen your booking page, walk through the flow, and on the Payment step use the Stripe test card
4242 4242 4242 4242with any future expiry and any CVC. - Switch to liveWhen you're happy, toggle off Test mode in the plugin, swap to your live API keys, and update the webhook endpoint to use the live URL.
Charge type
| Option | Effect |
|---|---|
| Charge full amount | Customer pays 100% at booking. Booking → confirmed after webhook. |
| Charge deposit | Customer pays X% or $Y. Booking → pending; balance is collected separately (in person or via a second PaymentIntent). |
Deposit example
You sell a $200 service. You want 25% upfront to deter missed appointments.
- In the plugin: Charge type = Deposit, Deposit type = Percentage, Deposit value = 25.
- Customer pays $50 at booking. Booking status is
pending. - You complete the job. In the booking admin, click Mark as paid in full to record the remaining $150 as collected (cash / card reader / bank transfer).
Refunds
From the booking detail view in admin, click Refund. The full or partial amount is refunded via Stripe. The customer receives a Stripe-generated email. The booking status moves to cancelled (full refund) or stays completed (partial refund).
Supported payment methods
Stripe Elements automatically offers the payment methods enabled in your Stripe dashboard. Most commonly:
- Card (all major schemes)
- Apple Pay (on supported devices)
- Google Pay (on supported devices)
- SEPA Direct Debit (EU)
- ACH (US)
- Klarna / Afterpay (where available)
!
SSL required
Stripe requires HTTPS. Make sure your site has an SSL certificate before going live. Most hosts include Let's Encrypt for free.Field reference
| Field | Where from | Notes |
|---|---|---|
| Publishable key | Stripe dashboard | Starts with pk_live_ or pk_test_. |
| Secret key | Stripe dashboard | Starts with sk_live_ or sk_test_. Never share. |
| Webhook secret | Stripe webhook endpoint | Starts with whsec_. |
| Test mode | Toggle | On = use test keys. Off = use live keys. |
| Enabled | Toggle | Off = Stripe is hidden from the Payment step. |
i
Sandbox first
Always test end-to-end with test cards before going live. A misconfigured webhook is the most common reason payments succeed in Stripe but the booking stays inpending.