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

  1. Create a Stripe account
    Sign 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.
  2. Get your API keys
    In the Stripe dashboard, open Developers → API keys. Copy the Publishable key and the Secret key.
  3. Enable Stripe in Advik Booking
    Paste the keys into the Stripe settings. Keep Test mode on for now. Save.
  4. Set up the webhook
    The 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:
    text
    payment_intent.succeeded
    payment_intent.payment_failed
    charge.refunded
    charge.dispute.created
    After saving, copy the Signing secret and paste it back into the plugin's Webhook secret field.
  5. Test a booking
    Open your booking page, walk through the flow, and on the Payment step use the Stripe test card 4242 4242 4242 4242 with any future expiry and any CVC.
  6. Switch to live
    When 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

OptionEffect
Charge full amountCustomer pays 100% at booking. Booking → confirmed after webhook.
Charge depositCustomer 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.

  1. In the plugin: Charge type = Deposit, Deposit type = Percentage, Deposit value = 25.
  2. Customer pays $50 at booking. Booking status is pending.
  3. 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

FieldWhere fromNotes
Publishable keyStripe dashboardStarts with pk_live_ or pk_test_.
Secret keyStripe dashboardStarts with sk_live_ or sk_test_. Never share.
Webhook secretStripe webhook endpointStarts with whsec_.
Test modeToggleOn = use test keys. Off = use live keys.
EnabledToggleOff = 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 in pending.