{"id":2565,"date":"2026-01-24T08:01:48","date_gmt":"2026-01-24T08:01:48","guid":{"rendered":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/?p=2565"},"modified":"2026-05-06T11:04:00","modified_gmt":"2026-05-06T11:04:00","slug":"paypal-payment-gateway","status":"publish","type":"post","link":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/kivicare-lite\/documentation\/payment-integration\/paypal-payment-gateway\/","title":{"rendered":"PayPal Payment Gateway"},"content":{"rendered":"<div class=\"nolwrap\">\n<p>This document explains how to configure, enable, and use the <strong>PayPal Payment Gateway<\/strong> in the <strong>KiviCare Clinic Management System<\/strong>. It is intended for administrators and site owners who want to accept online payments from patients during appointment booking.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Overview<\/strong><\/h2>\n\n\n\n<p>The PayPal payment gateway allows clinics to securely accept online payments from patients using PayPal. The integration is built using the <strong>PayPal REST API<\/strong>, ensuring secure and reliable transaction processing.<\/p>\n\n\n\n<p>With PayPal enabled, patients can complete appointment payments using:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PayPal balance<\/li>\n\n\n\n<li>Credit cards<\/li>\n\n\n\n<li>Debit cards (supported by PayPal)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Prerequisites<\/strong><\/h2>\n\n\n\n<p>Before configuring PayPal in KiviCare, make sure you have the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>PayPal Business Account<\/strong><\/li>\n\n\n\n<li>Access to the <strong>PayPal Developer Dashboard<\/strong><\/li>\n\n\n\n<li>A valid <strong>SSL certificate (HTTPS enabled)<\/strong> on your website<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>PayPal Configuration in KiviCare<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1: Navigate to Payment Settings<\/strong><\/h4>\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<h4 class=\"wp-block-heading\"><strong>Step 2: Enable PayPal Gateway<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Locate <strong>PayPal<\/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 on <strong>Manage<\/strong> (or the edit icon) to open PayPal settings.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 3: Configure PayPal Settings<\/strong><\/h4>\n\n\n\n<p>Fill in the following fields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable PayPal<\/strong><\/li>\n\n\n\n<li>Ensure this option is checked to activate PayPal payments.<\/li>\n\n\n\n<li><strong>Mode<\/strong><\/li>\n\n\n\n<li>Choose the environment:\n<ul class=\"wp-block-list\">\n<li><strong>Sandbox (Test Mode)<\/strong> \u2013 For testing transactions<\/li>\n\n\n\n<li><strong>Live<\/strong> \u2013 For accepting real payments<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Client ID<\/strong><\/li>\n\n\n\n<li>Enter your PayPal REST API Client ID.<\/li>\n\n\n\n<li><strong>Client Secret<\/strong><\/li>\n\n\n\n<li>Enter your PayPal REST API Client Secret.<\/li>\n\n\n\n<li><strong>Currency<\/strong><\/li>\n\n\n\n<li>Select the currency you want to accept payments in (e.g., USD, EUR, INR).<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 4: Save Settings<\/strong><\/h4>\n\n\n\n<p>Click the <strong>Save<\/strong> button to apply and store your PayPal configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to Obtain PayPal API Credentials<\/strong><\/h2>\n\n\n\n<p>Follow these steps to generate PayPal API credentials:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to the <strong>PayPal Developer Dashboard<\/strong>.<\/li>\n\n\n\n<li>Navigate to <strong>Apps &amp; Credentials<\/strong>.<\/li>\n\n\n\n<li>Select the environment:\n<ul class=\"wp-block-list\">\n<li><strong>Sandbox<\/strong> for testing<\/li>\n\n\n\n<li><strong>Live<\/strong> for production payments<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Create App<\/strong>.<\/li>\n\n\n\n<li>Enter an app name (e.g., <em>KiviCare Clinic<\/em>) and click <strong>Create App<\/strong>.<\/li>\n\n\n\n<li>After the app is created, you will see:\n<ul class=\"wp-block-list\">\n<li><strong>Client ID<\/strong><\/li>\n\n\n\n<li><strong>Secret<\/strong> (click <em>Show<\/em> to reveal it)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Copy these values and paste them into the KiviCare PayPal settings.<\/li>\n<\/ol>\n\n\n\n<p><strong>Important:<\/strong> Sandbox credentials will only work in Sandbox mode, and Live credentials will only work in Live mode.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Payment Flow<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Patient books an appointment.<\/li>\n\n\n\n<li>Patient selects <strong>PayPal<\/strong> as the payment method.<\/li>\n\n\n\n<li>Patient is redirected to PayPal to complete the payment.<\/li>\n\n\n\n<li>After successful payment, the appointment is confirmed in KiviCare.<\/li>\n\n\n\n<li>Payment status is recorded in the system.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"user-content-documentation-paypal-webhook--webhook-id-configuration\"><strong>PayPal Webhook &amp; Webhook ID Configuration<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"user-content-1-introduction\"><strong>1. Introduction<\/strong><\/h4>\n\n\n\n<p>The PayPal Webhook integration allows KiviCare to receive automated notifications directly from PayPal whenever a payment is completed, pending, or denied. This ensures your appointment statuses are updated in real-time, even if the patient closes the PayPal tab before returning to your clinic site.<\/p>\n\n\n\n<p>The&nbsp;<strong>Webhook ID<\/strong>&nbsp;is used by KiviCare to verify that every notification received is a genuine message from PayPal, ensuring the security and integrity of your booking data.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"user-content-2-configuration-guide\"><strong>2. Configuration Guide<\/strong><\/h4>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"user-content-step-1-kivicare-setup\"><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>PayPal<\/strong>.<\/li>\n\n\n\n<li><strong>Webhook URL<\/strong>: Locate the unique URL generated in the settings. Copy this URL to your clipboard.<\/li>\n\n\n\n<li>Keep this page open; you will need to paste the &#8220;Webhook ID&#8221; here in the final step.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"user-content-step-2-paypal-developer-dashboard-setup\"><strong>Step 2: PayPal Developer Dashboard Setup<\/strong><\/h5>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to the\u00a0<a href=\"https:\/\/developer.paypal.com\/dashboard\/\" target=\"_blank\" rel=\"noopener\">PayPal Developer Dashboard<\/a>.<\/li>\n\n\n\n<li>Navigate to\u00a0<strong>Apps &amp; Credentials<\/strong>\u00a0and select the App you are using for KiviCare (ensure you select the correct environment:\u00a0<strong>Sandbox<\/strong>\u00a0or\u00a0<strong>Live<\/strong>).<\/li>\n\n\n\n<li>Scroll down to the\u00a0<strong>Webhooks<\/strong>\u00a0section and click\u00a0<strong>Add Webhook<\/strong>.<\/li>\n\n\n\n<li><strong>Webhook URL<\/strong>: Paste the URL you copied from KiviCare.<\/li>\n\n\n\n<li><strong>Event types<\/strong>: Select the following events from the list:\n<ul class=\"wp-block-list\">\n<li><code>Payment sale completed<\/code><\/li>\n\n\n\n<li><code>Payment order completed<\/code><\/li>\n\n\n\n<li><code>Payment capture completed<\/code><\/li>\n\n\n\n<li><code>Checkout order approved<\/code><\/li>\n\n\n\n<li><code>Payment sale denied<\/code><\/li>\n\n\n\n<li><code>Payment sale refunded<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click\u00a0<strong>Save<\/strong>.<\/li>\n\n\n\n<li>Once saved, PayPal will generate a\u00a0<strong>Webhook ID<\/strong>. Copy this ID (it usually looks like\u00a0<code>WH-XXXXXXXXXXXXXXXXX<\/code>).<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"user-content-step-3-finalize-kivicare-settings\"><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>PayPal<\/strong>.<\/li>\n\n\n\n<li><strong>Webhook ID<\/strong>: Paste the ID you copied from the PayPal dashboard 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\" id=\"user-content-3-key-benefits--features\"><strong>3. Key Benefits &amp; Features<\/strong><\/h4>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"user-content-guaranteed-synchronization\"><strong>Guaranteed Synchronization<\/strong><\/h5>\n\n\n\n<p>Webhooks act as a backup for the standard checkout process. If a patient&#8217;s internet drops after paying but before the redirect finishes, the webhook ensures the appointment is still confirmed in your clinic database.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"user-content-multi-event-support\"><strong>Multi-Event Support<\/strong><\/h5>\n\n\n\n<p>KiviCare doesn&#8217;t just listen for &#8220;Success.&#8221; It also tracks:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pending Payments<\/strong>: Keeps the slot held while the payment clears.<\/li>\n\n\n\n<li><strong>Denied Payments<\/strong>: Automatically cancels the appointment if the payment is rejected by the bank.<\/li>\n\n\n\n<li><strong>Refunds<\/strong>: Marks the internal record as refunded if you issue a refund through PayPal.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"user-content-verified-security\"><strong>Verified Security<\/strong><\/h5>\n\n\n\n<p>By using the Webhook ID, KiviCare performs a verification check against PayPal&#8217;s official servers for every notification received. This prevents &#8220;spoofing&#8221; (where someone tries to trick your site into thinking a payment was made without actually paying).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"user-content-4-supported-status-mapping\"><strong>4. Supported Status Mapping<\/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\">PayPal Event<\/th><th class=\"has-text-align-left\" data-align=\"left\">KiviCare Action<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>SALE.COMPLETED<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Confirms the appointment and marks as&nbsp;<strong>Paid<\/strong>.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>SALE.PENDING<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Sets appointment to&nbsp;<strong>Pending<\/strong>&nbsp;(Waiting for funds).<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>SALE.DENIED<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Sets appointment to&nbsp;<strong>Cancelled<\/strong>&nbsp;or&nbsp;<strong>Failed<\/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 that the <strong>Client ID<\/strong> and <strong>Client Secret<\/strong> are correct.<\/li>\n\n\n\n<li>Ensure the selected <strong>Mode<\/strong> matches the credentials (Sandbox or Live).<\/li>\n\n\n\n<li>Confirm that your PayPal account is verified and active.<\/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>Make sure the selected currency is supported by PayPal.<\/li>\n\n\n\n<li>Check PayPal documentation for supported currencies.<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>SSL \/ TLS Error<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PayPal requires HTTPS.<\/li>\n\n\n\n<li>Ensure your website has a valid SSL certificate installed and active.<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>PayPal Option Not Visible<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Confirm PayPal is enabled in <strong>KiviCare &gt; Settings &gt; Payment Settings<\/strong>.<\/li>\n\n\n\n<li>Clear cache and refresh the page.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>This document explains how to configure, enable, and use the PayPal Payment Gateway in the KiviCare Clinic Management System. It is intended for administrators and site owners who want to accept online payments from patients during appointment booking. Overview The PayPal payment gateway allows clinics to securely accept online payments from patients using PayPal. The [&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":[19],"tags":[],"class_list":["post-2565","post","type-post","status-publish","format-standard","hentry","category-payment-integration"],"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\/2565","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=2565"}],"version-history":[{"count":8,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/2565\/revisions"}],"predecessor-version":[{"id":3277,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/posts\/2565\/revisions\/3277"}],"wp:attachment":[{"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/media?parent=2565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/categories?post=2565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documentation.iqonic.design\/kivicare-wordpress\/wp-json\/wp\/v2\/tags?post=2565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}