> ## Documentation Index
> Fetch the complete documentation index at: https://services.docs.growcrm.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Up Stripe and PayPal Payment Gateways for Checkout

> Connect Stripe and PayPal API credentials so customers can pay for services at checkout, including recurring subscription billing.

The Products & Services module supports two payment gateways at checkout: **Stripe** for credit card payments, and **PayPal** via direct API integration for both one-time and recurring subscription payments. This page explains what each gateway requires and how to get both working correctly.

## Stripe

Stripe integration in the Products & Services module is designed to be as simple as possible — the module reuses the Stripe account you have already connected to your GrowCRM installation. There are no module-specific API keys to enter.

To activate Stripe at checkout, follow these two steps:

<Steps>
  <Step title="Enable Stripe in module settings">
    Go to **Settings → Products & Services → General** and turn on the **Enable Stripe payment gateway** toggle.
  </Step>

  <Step title="Verify CRM-level Stripe configuration">
    Confirm that Stripe is also configured and **enabled** in the CRM's main payment gateway settings. The module reads credentials from that location — if Stripe is disabled or unconfigured there, checkout will fail even with the module toggle turned on.
  </Step>
</Steps>

<Note>
  Because Stripe credentials are shared, any updates you make to your Stripe keys in the CRM's main payment settings automatically apply to service checkout as well.
</Note>

***

## PayPal (API)

<Warning>
  The PayPal credentials on this tab are **entirely separate** from the CRM's regular PayPal payment gateway. This module integrates with PayPal's API directly to support subscription billing, plan management, and webhook-driven renewal notifications. Do not confuse the two — credentials entered in the CRM's main PayPal gateway have no effect here, and vice versa.
</Warning>

The PayPal (API) integration requires you to create a dedicated PayPal app in the [PayPal Developer Dashboard](https://developer.paypal.com/dashboard/) and enter the resulting credentials below.

### PayPal Settings Reference

<ResponseField name="Client ID (Live)" type="string" required>
  The Client ID from your **live** PayPal API app. Used for real transactions when Sandbox Mode is off.
</ResponseField>

<ResponseField name="Secret Key (Live)" type="string" required>
  The Secret Key from your **live** PayPal API app. Keep this value private and never share it publicly.
</ResponseField>

<ResponseField name="Client ID (Sandbox)" type="string">
  The Client ID from your **sandbox** PayPal API app. Used when Sandbox Mode is enabled for testing.
</ResponseField>

<ResponseField name="Secret Key (Sandbox)" type="string">
  The Secret Key from your **sandbox** PayPal API app.
</ResponseField>

<ResponseField name="Display Name" type="string">
  The name shown to the customer on the PayPal checkout page, for example your business or product name.
</ResponseField>

<ResponseField name="Sandbox Mode" type="boolean">
  When enabled, checkout uses your sandbox credentials instead of live ones. Turn this on while testing and switch it off before going live to accept real payments.
</ResponseField>

<ResponseField name="Webhook URL" type="string (read-only)">
  A URL generated by GrowCRM. Copy this value into your PayPal app's webhook configuration so PayPal can notify GrowCRM about payments, subscription renewals, payment failures, and cancellations.
</ResponseField>

### How to Get PayPal API Credentials

<Steps>
  <Step title="Log in to the PayPal Developer Dashboard">
    Go to [developer.paypal.com](https://developer.paypal.com/dashboard/) and sign in with your PayPal business account.
  </Step>

  <Step title="Create a new app">
    Navigate to **Apps & Credentials** and click **Create App**. Give the app a recognisable name (for example, *GrowCRM Services*) and select **Merchant** as the app type.
  </Step>

  <Step title="Copy your credentials">
    Once the app is created, PayPal displays your **Client ID** and **Secret Key** for both the sandbox and live environments. Copy these into the corresponding fields in GrowCRM.
  </Step>

  <Step title="Register the Webhook URL">
    In the PayPal app's **Webhooks** section, add the **Webhook URL** shown in GrowCRM. Subscribe to at minimum the following events: `PAYMENT.SALE.COMPLETED`, `BILLING.SUBSCRIPTION.RENEWED`, `PAYMENT.SALE.DENIED`, and `BILLING.SUBSCRIPTION.CANCELLED`.
  </Step>

  <Step title="Enable PayPal in module settings">
    Return to **Settings → Products & Services → General** and enable the **Enable PayPal payment gateway** toggle to make PayPal available at checkout.
  </Step>
</Steps>

<Tip>
  Test the full checkout and subscription renewal flow using Sandbox Mode and a PayPal sandbox buyer account before switching to live credentials. This lets you verify that webhooks are being received correctly without processing real payments.
</Tip>
