{"id":2593,"date":"2026-01-24T09:04:14","date_gmt":"2026-01-24T09:04:14","guid":{"rendered":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/?p=2593"},"modified":"2026-05-06T10:57:57","modified_gmt":"2026-05-06T10:57:57","slug":"stripe-payment-gateway","status":"publish","type":"post","link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/kivicare-stripe-addon\/documentation\/stripe-payment-gateway\/","title":{"rendered":"Stripe Payment Gateway"},"content":{"rendered":"<div class=\"nolwrap\">\n<p>This document explains how to configure and use the <strong>Stripe Payment Gateway Addon<\/strong> within the <strong>KiviCare Clinic Management System<\/strong>. It is intended for administrators who want to accept card payments directly during appointment booking.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Overview<\/strong><\/h2>\n\n\n\n<p>The Stripe Payment Gateway Addon allows clinics to accept <strong>credit and debit card payments<\/strong> seamlessly within the KiviCare booking flow.<\/p>\n\n\n\n<p>The integration uses <strong>Stripe Checkout (Embedded Mode)<\/strong>, ensuring:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Secure card handling<\/li>\n\n\n\n<li>PCI compliance via Stripe<\/li>\n\n\n\n<li>A smooth, in-page payment experience for patients<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Prerequisites<\/strong><\/h2>\n\n\n\n<p>Before configuring Stripe, ensure the following requirements are met:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>KiviCare Stripe Addon<\/strong>\n<ul class=\"wp-block-list\">\n<li>The Stripe Addon must be installed and activated.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Stripe Account<\/strong>\n<ul class=\"wp-block-list\">\n<li>A valid Stripe account created at stripe.com.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>SSL Certificate<\/strong>\n<ul class=\"wp-block-list\">\n<li>Your website must use HTTPS (required by Stripe).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Stripe Configuration in KiviCare<\/strong><\/h2>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Step 1: Navigate to Payment Settings<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to your <strong>WordPress Admin Dashboard<\/strong>.<\/li>\n\n\n\n<li>Go to <strong>KiviCare &gt; Settings &gt; Payment Settings<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Step 2: Enable Stripe Gateway<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Locate <strong>Stripe<\/strong> in the list of available payment gateways.<\/li>\n\n\n\n<li>Toggle the <strong>Enable<\/strong> switch (Green).<\/li>\n\n\n\n<li>Click <strong>Manage<\/strong> (or the edit icon) to open Stripe settings.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Step 3: Configure Stripe Settings<\/strong><\/h5>\n\n\n\n<p>Fill in the following fields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable Stripe<\/strong> <br>Must be checked to activate Stripe payments.<\/li>\n\n\n\n<li><strong>Mode<\/strong> <br>Must be checked to activate Stripe payments.\n<ul class=\"wp-block-list\">\n<li><strong>Sandbox (Test)<\/strong> \u2013 For testing payments<\/li>\n\n\n\n<li><strong>Live<\/strong> \u2013 For real transactions<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Secret API Key<\/strong><br>Enter your Stripe <strong>Secret Key<\/strong> (starts with <code>sk_<\/code>).<\/li>\n\n\n\n<li><strong>Publishable Key<\/strong><br>Enter your Stripe <strong>Publishable Key<\/strong> (starts with <code>pk_<\/code>).<\/li>\n\n\n\n<li><strong>Currency<\/strong><br>Choose the currency in which payments will be processed (e.g., USD, EUR, INR).<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Step 4: Save Settings<\/strong><\/h5>\n\n\n\n<p>Click the <strong>Save<\/strong> button to apply and store your Stripe configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to Obtain Stripe API Keys<\/strong><\/h2>\n\n\n\n<p>Follow these steps to retrieve your Stripe API keys:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to the <strong>Stripe Dashboard<\/strong>.<\/li>\n\n\n\n<li>Navigate to <strong>Developers &gt; API Keys<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Test Mode Keys<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Enable <strong>Test Mode<\/strong> using the toggle at the top-right.<\/li>\n\n\n\n<li>Copy the <strong>Publishable Key<\/strong> (e.g., <code>pk_test_...<\/code>).<\/li>\n\n\n\n<li>Reveal and copy the <strong>Secret Key<\/strong> (e.g., <code>sk_test_...<\/code>).<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Live Mode Keys<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Disable <strong>Test Mode<\/strong>.<\/li>\n\n\n\n<li>Copy the <strong>Publishable Key<\/strong> (e.g., <code>pk_live_...<\/code>).<\/li>\n\n\n\n<li>Reveal and copy the <strong>Secret Key<\/strong> (e.g., <code>sk_live_...<\/code>).<\/li>\n<\/ol>\n\n\n\n<p><strong>Important:<\/strong> Test keys work only in Sandbox mode, and Live keys work only in Live mode.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Payment Flow<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Patient books an appointment.<\/li>\n\n\n\n<li>Patient selects <strong>Stripe<\/strong> as the payment method.<\/li>\n\n\n\n<li>Stripe Checkout (Embedded Mode) loads securely on the booking page.<\/li>\n\n\n\n<li>Patient enters card details and completes payment.<\/li>\n\n\n\n<li>Upon successful payment:\n<ul class=\"wp-block-list\">\n<li>Appointment status is updated to <strong>Confirmed<\/strong>.<\/li>\n\n\n\n<li>Payment details are stored in KiviCare.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>If payment fails or is cancelled, the appointment remains Cancelled.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Stripe Webhook &amp; Signing Secret Configuration<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. Introduction<\/strong><\/h4>\n\n\n\n<p>The Stripe Webhook integration allows KiviCare to receive instant updates from Stripe when a payment is processed. This is essential for ensuring that appointments are confirmed immediately, even if a user&#8217;s browser crashes or they close the payment window prematurely.<\/p>\n\n\n\n<p>The <strong>Webhook Signing Secret<\/strong> is a security feature that verifies each message sent by Stripe, protecting your system from fraudulent payment notifications.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. Configuration Guide<\/strong><\/h4>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Step 1: KiviCare Setup<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to your WordPress Admin Dashboard.<\/li>\n\n\n\n<li>Navigate to\u00a0<strong>KiviCare Settings<\/strong>\u00a0\u2192\u00a0<strong>Payment Gateways<\/strong>\u00a0\u2192\u00a0<strong>Stripe<\/strong>.<\/li>\n\n\n\n<li><strong>Webhook URL<\/strong>: You will see a unique URL generated in the settings. Copy this URL to your clipboard.<\/li>\n\n\n\n<li>Keep this page open, as you will need to paste the &#8220;Signing Secret&#8221; here later.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Step 2: Stripe Dashboard Setup<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to your\u00a0<a href=\"https:\/\/dashboard.stripe.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Stripe Dashboard<\/a>.<\/li>\n\n\n\n<li>Navigate to\u00a0<strong>Developers<\/strong>\u00a0\u2192\u00a0<strong>Webhooks<\/strong>.<\/li>\n\n\n\n<li>Click on the\u00a0<strong>+ Add endpoint<\/strong>\u00a0button.<\/li>\n\n\n\n<li><strong>Endpoint URL<\/strong>: Paste the URL you copied from your KiviCare settings.<\/li>\n\n\n\n<li><strong>Select events to listen to<\/strong>: Click\u00a0<strong>+ Select events<\/strong>\u00a0and add the following:\n<ul class=\"wp-block-list\">\n<li><code>payment_intent.succeeded<\/code><\/li>\n\n\n\n<li><code>payment_intent.payment_failed<\/code><\/li>\n\n\n\n<li><code>checkout.session.completed<\/code><\/li>\n\n\n\n<li><code>charge.refunded<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click\u00a0<strong>Add endpoint<\/strong>.<\/li>\n\n\n\n<li>Once the endpoint is created, look for the\u00a0<strong>Signing secret<\/strong>\u00a0section and click\u00a0<strong>Reveal<\/strong>.<\/li>\n\n\n\n<li>Copy the secret key (it usually starts with\u00a0<code>whsec_<\/code>).<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Step 3: Finalize KiviCare Settings<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go back to your\u00a0<strong>KiviCare Settings<\/strong>\u00a0\u2192\u00a0<strong>Payment Gateways<\/strong>\u00a0\u2192\u00a0<strong>Stripe<\/strong>\u00a0page.<\/li>\n\n\n\n<li><strong>Webhook Signing Secret<\/strong>: Paste the\u00a0<code>whsec_<\/code>\u00a0key you copied from Stripe into this field.<\/li>\n\n\n\n<li>Click\u00a0<strong>Save Settings<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. Key Benefits &amp; Features<\/strong><\/h4>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Instant Booking Confirmation<\/strong><\/h5>\n\n\n\n<p>Webhooks allow KiviCare to confirm an appointment the exact millisecond a payment is successful. This prevents double-bookings and provides immediate peace of mind to your patients.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Robust Security<\/strong><\/h5>\n\n\n\n<p>By using a Signing Secret, KiviCare performs a cryptographic check on every notification. This ensures that only Stripe can trigger a &#8220;Paid&#8221; status on your appointments, shielding your clinic from unauthorized status changes.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Automatic Error Handling<\/strong><\/h5>\n\n\n\n<p>If a payment fails or is cancelled at the bank level after the user has left your site, the webhook will notify KiviCare to automatically release the appointment slot and mark the status as &#8220;Failed,&#8221; keeping your calendar accurate.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>4. Supported Payment Events<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Event<\/th><th class=\"has-text-align-left\" data-align=\"left\">Action in KiviCare<\/th><\/tr><\/thead><tbody><tr><td><code>payment_intent.succeeded<\/code><\/td><td>Confirms the appointment and sets payment to&nbsp;<strong>Completed<\/strong>.<\/td><\/tr><tr><td><code>checkout.session.completed<\/code><\/td><td>Finalizes the booking for web-based payments.<\/td><\/tr><tr><td><code>payment_intent.payment_failed<\/code><\/td><td>Cancels the appointment and marks payment as&nbsp;<strong>Failed<\/strong>.<\/td><\/tr><tr><td><code>charge.refunded<\/code><\/td><td>Updates the transaction record to&nbsp;<strong>Refunded<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Troubleshooting<\/strong><\/h2>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Common Issues and Solutions<\/strong><\/h5>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>Payment Failed<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verify the <strong>Secret Key<\/strong> and <strong>Publishable Key<\/strong> are correct.<\/li>\n\n\n\n<li>Ensure keys match the selected <strong>Mode<\/strong> (Test or Live).<\/li>\n\n\n\n<li>Confirm that your Stripe account is fully activated for live payments.<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>Currency Not Supported<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ensure the selected currency is supported by Stripe.<\/li>\n\n\n\n<li>Check currency availability in your Stripe account settings.<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>&#8220;Stripe gateway is not properly configured&#8221; Error<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This error indicates the <strong>Secret API Key<\/strong> is missing or invalid.<\/li>\n\n\n\n<li>Re-check the Stripe settings in KiviCare.<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>Stripe Form Not Loading<\/strong><\/h6>\n\n\n\n<p>Ensure your site is using HTTPS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Best Practices<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always test payments using <strong>Sandbox mode<\/strong> before switching to Live.<\/li>\n\n\n\n<li>Keep your <strong>Secret API Key<\/strong> confidential.<\/li>\n\n\n\n<li>Regularly review transactions from the Stripe Dashboard.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>This document explains how to configure and use the Stripe Payment Gateway Addon within the KiviCare Clinic Management System. It is intended for administrators who want to accept card payments directly during appointment booking. Overview The Stripe Payment Gateway Addon allows clinics to accept credit and debit card payments seamlessly within the KiviCare booking flow. [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"parent":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"class_list":["post-2593","post","type-post","status-publish","format-standard","hentry","category-documentation-kivicare-stripe-addon"],"featured_image_src":null,"author_info":{"display_name":"wordpressadminiq","author_link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/author\/wordpressadminiq\/"},"_links":{"self":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/2593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/comments?post=2593"}],"version-history":[{"count":8,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/2593\/revisions"}],"predecessor-version":[{"id":3275,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/2593\/revisions\/3275"}],"wp:attachment":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/media?parent=2593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/categories?post=2593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/tags?post=2593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}