WhatsMine Documentation
Home
  • What is WhatsMine?
  • Feature Tour
  • Requirements
  • Installation
  • Configuration (.env reference)
  • Going Live Checklist
Admin Guide
User Guide
Integrations
  • Architecture
  • REST API v1
  • Production Deployment
  • Frequently Asked Questions
  • Troubleshooting
  • Changelog
Home
  • What is WhatsMine?
  • Feature Tour
  • Requirements
  • Installation
  • Configuration (.env reference)
  • Going Live Checklist
Admin Guide
User Guide
Integrations
  • Architecture
  • REST API v1
  • Production Deployment
  • Frequently Asked Questions
  • Troubleshooting
  • Changelog
  • Integrations

    • Integrations Overview
    • Meta / WhatsApp Business
    • Messenger & Instagram
    • SMS Providers
    • AI Providers
    • Payments (Stripe, PayPal & Paddle)
    • Social Networks
    • Google (Workspace & Places)
    • E-commerce (Shopify, WooCommerce, BigCommerce)
    • Email / SMTP
    • Real-time & Push Notifications
    • Storage

Payments (Stripe, PayPal & Paddle)

Connect a payment gateway to charge customers for subscriptions. WhatsMine supports Stripe, PayPal and Paddle — enable any combination.

Admin location: Admin → Payment Gateways (/admin/payment-gateways)

This page is the detailed setup companion to the admin Payment Gateways screen.

The three steps for any gateway

  1. Enter credentials in WhatsMine.
  2. Register the webhook in the gateway dashboard (so renewals sync).
  3. Add price IDs to your plans (Stripe & Paddle).

Always start in test/sandbox mode, verify a full cycle, then switch to live.


Stripe

1. Credentials

From the Stripe Dashboard → Developers → API keys, copy your Secret key. Enter it in WhatsMine (Admin → Payment Gateways → Stripe), along with the webhook secret from the next step.

2. Webhook

In Stripe → Developers → Webhooks → Add endpoint:

  • Endpoint URL: https://your-domain.com/webhooks/stripe
  • Events to send:
    • checkout.session.completed
    • customer.subscription.created
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.paid
    • invoice.payment_succeeded
    • invoice.payment_failed

Copy the Signing secret Stripe shows and paste it into WhatsMine.

3. Price IDs

In Stripe → Products, create a product/price for each plan and cycle. Paste the Price IDs into each plan (stripe_monthly_id, stripe_yearly_id).


PayPal

1. Credentials

From the PayPal Developer Dashboard → your app, copy the Client ID and Client Secret. Enter them in WhatsMine and set sandbox/live. (Sandbox uses PAYPAL_SANDBOX=true or the test toggle.)

2. Webhook

In the PayPal app settings → Webhooks → Add:

  • URL: https://your-domain.com/webhooks/paypal
  • Events:
    • BILLING.SUBSCRIPTION.ACTIVATED
    • BILLING.SUBSCRIPTION.CANCELLED
    • BILLING.SUBSCRIPTION.SUSPENDED
    • PAYMENT.SALE.COMPLETED

Copy the Webhook ID into WhatsMine — PayPal verification is mandatory whenever a webhook ID is set.


Paddle

1. Credentials

From the Paddle Dashboard → Developer Tools → Authentication, copy your API key. From Notifications, you'll get the webhook secret. Enter both in WhatsMine and choose sandbox/production.

2. Webhook

In Paddle → Developer Tools → Notifications → New destination:

  • URL: https://your-domain.com/webhooks/paddle
  • Events:
    • subscription.created
    • subscription.activated
    • subscription.updated
    • subscription.canceled
    • transaction.completed

3. Price IDs (required)

Paddle checkout requires catalog price IDs. In Paddle → Catalog, create a price for each plan and cycle, then paste them into each plan (paddle_monthly_id, paddle_yearly_id).


How renewals work

Renewals are webhook-driven: when a gateway charges the next period, it notifies WhatsMine, which records the payment, advances the renewal date and sends the renewal email. As a safety net, an hourly billing:sync reconciles statuses with each gateway.

Production gotchas

  • No signing secret = rejected webhooks. In production, missing the webhook secret means every webhook is refused (401), so renewals silently stop. Always store it.
  • Queue worker required. Notification emails are queued — run a queue worker.
  • Scheduler required. billing:sync and trial expiry run via the scheduler cron. See the Going Live Checklist.

Test before launch

  1. Set the gateway to test/sandbox and enable it.
  2. Subscribe a test customer through your pricing page.
  3. Confirm a transaction appears in Payments and the subscription is active.
  4. (Stripe) Use a test clock to fast-forward a renewal; confirm the renewal payment and email.
  5. Download the invoice PDF.
  6. Switch to live.

➡️ Next: Social Networks.

Last Updated: 6/19/26, 4:34 PM
Prev
AI Providers
Next
Social Networks