Get DineKit — Free

How to take card payments with Stripe

Connect your own Stripe account to take booking deposits and order payments on-site — you keep 100%. Includes test mode and Apple/Google Pay.

Card payments let you take booking deposits and get paid for online orders right on your own website — no redirects to a third-party checkout. Payments run through your own Stripe account, so you keep 100% of the money and only pay Stripe’s standard card processing fees.

New here? This is the step-by-step setup guide. For the bigger picture — how keeping your own Stripe account saves a restaurant money versus renting a card machine or a POS contract — see Take card payments on your restaurant website.

Before you start

Taking a card payment in DineKit
Card payments are taken from the same order pad as cash. Scroll the image sideways to see the full screen.
  • DineKit installed and active on your WordPress site.
  • A free Stripe account for your business — DineKit uses your own account, not a shared one, so your money settles straight to your bank as normal.
  • If you plan to take bookings or online orders, set those up first: see Take table bookings and Set up online ordering.
  • If you also want to take cards face-to-face at the till, you’ll need a Stripe smart reader or pay-by-QR — covered in Using the POS.

Step by step

  1. In your Stripe Dashboard, make sure you’re in Test mode (toggle top-right), then copy your test publishable key and secret key from Developers > API keys.
  2. In DineKit, go to Integrations and paste your Stripe publishable key and secret key into the Stripe section.
  3. Click Test connection. DineKit checks the key against your Stripe account and confirms it’s valid, shows which mode it’s in (test or live), and that charges are enabled.
  4. Once the connection succeeds, DineKit automatically registers a payment webhook on your Stripe account for you — there’s no webhook URL or signing secret to copy and paste yourself.
  5. Turn the enable toggle on to switch payments live across DineKit (bookings and ordering).
  6. Try a test booking deposit or a test order and pay with Stripe’s test card 4242 4242 4242 4242, any future expiry date, and any 3-digit CVC. Nothing is actually charged in test mode, so this is safe to try as many times as you like.
  7. When you’re happy, go back to Stripe, switch to Live mode, copy your live publishable and secret keys, and paste them into DineKit’s Integrations in place of the test keys. Run Test connection again to confirm, and you’re ready to take real payments.

Where payments apply

Once Stripe is connected and enabled, card payments are available in two places:

  • Booking deposits — if a booking rule requires a deposit, the diner pays it on the spot when they book, reducing no-shows.
  • Online order payments — eat-in (QR order-at-table), takeaway and delivery orders placed through your DineKit ordering pages are paid for online at checkout.

On-site checkout, no redirect

Payments use Stripe’s Payment Element embedded directly in your booking or checkout page, so diners never leave your site or bounce through a separate payment provider’s page. Apple Pay and Google Pay are supported automatically where the diner’s device and browser support them, appearing as one-tap options alongside card entry.

Security

Your Stripe secret key is stored on your server and encrypted at rest — it’s never sent to the browser. Card numbers and details are entered into Stripe’s own secure fields and go straight to Stripe; your WordPress site never sees or stores them. This keeps you at Stripe’s lightest PCI compliance level, SAQ A.

Tips

  • Always test with your Stripe test keys first and the 4242 4242 4242 4242 card before switching to live keys — it’s the easiest way to check the whole flow works before real money is involved.
  • Standard Stripe card processing fees apply to every payment you take, on top of whatever DineKit itself charges (nothing, for on-site payments — DineKit doesn’t take a commission).
  • Card payments taken online (deposits, orders) are separate from taking a card in person at the till — for face-to-face payment at the POS you’ll need a Stripe smart reader or pay-by-QR, set up from Using the POS.
  • If a booking or order isn’t marked as paid after a successful Stripe payment, double-check the webhook is registered — re-running Test connection in Integrations will re-register it if needed.

Related guides