How to Add Stripe as a Payment Method

Set up Stripe to take payments in Upmind

Stripe is a popular payment method that enables fast, secure credit and debit card payments. Upmind’s integration is easy, letting clients enter card data directly on your site (not redirected to Stripe).

A token is stored in Upmind along with card details (last four digits, card type, and expiry date). The full card information is never stored.

Getting Stripe API credentials

  1. Log in to your Stripe account.
  2. Go to Developers > API Keys.
  3. Copy your Secret Key (for Upmind’s API Key field) and Publishable Key (for Upmind’s Public Key field).
  4. Optionally, generate a Restricted Key with write access to:
    1. PaymentIntents
    2. Customers
    3. PaymentMethods
    4. Prices
    5. SetupIntents
    6. Charges

Developers > API keys

Secret key and publishable key

Adding Stripe as a payment provider

  1. Go to Settings > Payment Providers in Upmind.
  2. Click Add Payment Provider and select Stripe.

Select payment provider

Configuring details

  1. Enter a display name. We suggest Credit or Debit Card.
  2. Set Test Mode to No for live payments.
  3. Enter your Secret Key and Publishable Key.
  4. Choose whether to allow stored cards (for subscriptions/recurring) or one-time payments.
  5. Click Test Credentials to verify.
  6. Toggle accepted card types as needed.
  7. (Optional) Add supported currencies and payment instructions.
  8. Click Create.

Stripe.js options

After entering your Stripe information, the next step is to add the Stripe JS. To do this, you will need a public key. This guide explains how to obtain it.

For each question, you can choose either yes or no. Choose options that match your business needs and the payment methods you want to support through Stripe.js on your website.

Below is a detailed explanation to help you decide:

  1. Create Customer for Non-Stored Payments: Select yes to create a customer record for each payment without storing payment details for future transactions. Recommended: YES.
  2. Reuse Stripe Customer from Other Saved Methods: Select yes to use saved payment methods linked to a customer's Stripe account for Stripe.js payments. Recommended: YES.
  3. Reuse Stripe Customers by Email: Select yes to link customer payments by email in Stripe for Stripe.js transactions. Recommended: YES.
  4. Accept Cards?: Choose yes to accept card payments using Stripe.js on your website. Recommended: YES.
  5. Accept PayPal?: Select yes to accept PayPal payments through Stripe.js integration. For setup, see this article. Recommended: YES.

Select options

Changing the Stripe statement description

You can change this under Settings > Payment Options > Gateway Settings > Statement Description.

Indian Stripe customers

For Stripe customers in India, only INR is supported for non-sole traders due to Stripe’s regulations. The error is as follows:

📘

As per Indian regulations, only registered Indian businesses (i.e., sole proprietorships, limited liability partnerships, and companies, but not individuals) can accept international payments. More info here.

Editing the payment method

Go to Settings > Payment Providers, click the three dots next to Stripe, and select Edit.

Configure Stripe webhook

Configuring Stripe webhooks allows your Stripe account to notify Upmind when key payment and billing events occur.

  1. Log in to Stripe Dashboard (https://dashboard.stripe.com)

Stripe login

  1. In the left sidebar, click Developers. Under the Developers section, select Webhooks.

Click on developers

Select webhooks

  1. Click the + Add destination button to add webhooks.

Add destination

  1. Select the Events you want to receive.

Common recommended events for payment automation and reconciliation:

  • payment_intent.succeeded – Payment succeeded
  • payment_intent.payment_failed – Payment attempt failed
  • invoice.payment_succeeded – Invoice payment completed
  • charge.refunded – Refund processed on a charge

Use the search bar to quickly find specific events.

Choose events

Upmind currently supports these triggers:

  • charge.refunded (refund)
  • mandate.updated (mandateUpdate)
  • charge.succeeded (paidPending)
  • charge.failed (rejectPending)
  1. Choose Webhook endpoint as the destination type.

Webhook endpoint

  1. In the Endpoint URL field, enter your system’s webhook receiver address. Example: https://yourdomain.com/api/stripe/webhook

If integrating with Upmind, use the dedicated webhook route specified in the Upmind documentation or module setup.

You can also write the Destination Name and a Description.

Create destination

  1. Finalize Webhook Setup by clicking Create Destination.

The new endpoint now appears in your Stripe dashboard, where you can review event delivery and replay events for testing.

Review webhook