---
title: Payment Providers
menu_group: Subscriptions
menu_order: 50
tab: Payment Providers
tab_order: 40
admin_slug: wpst_subscription_payments
requires_subscriptions: true
summary: Connect Stripe and configure billing keys, webhooks, and redirect URLs.
---

# Payment Providers

**Location:** MediaBlaster → Subscriptions → **Payment Providers** tab

Connect billing providers to sell subscriptions. **Stripe Web Checkout (Phase 2A)** is fully supported. PayPal, Apple, Google, and Amazon sections are scaffolding for future phases.

## Stripe (recommended)

| Setting | Description |
|---------|-------------|
| **Enable Stripe** | Master toggle for checkout buttons, webhooks, and billing portal. |
| **Mode** | **Test** or **Live** — controls which API keys and tier Price IDs are used. |
| **Publishable key** | `pk_test_...` or `pk_live_...` from Stripe Dashboard. |
| **Secret key** | `sk_test_...` or `sk_live_...` — masked after save; leave blank to keep existing value. |
| **Webhook signing secret** | From Stripe Dashboard webhook endpoint — masked after save. |
| **Checkout success URL** | Redirect after payment; may include `{CHECKOUT_SESSION_ID}`. |
| **Checkout cancel URL** | Redirect when user abandons checkout. |
| **Customer portal return URL** | Return URL after Manage Billing in Stripe Portal. |
| **Default currency** | e.g. USD — used when tier currency is empty. |
| **Debug logging** | Redacted Stripe logs to PHP error log. |

The admin page displays your **webhook endpoint URL**:

```
https://YOUR-SITE/wp-json/mediablaster/v3/payments/stripe/webhook
```

Copy this into Stripe Dashboard → Developers → Webhooks for the matching test or live mode.

## Legacy tier → Price ID mapping

A repeatable mapping group exists for older configurations. Prefer setting **Stripe Price IDs** directly on each tier under [Tiers](subscriptions-tiers.md).

## Other providers

PayPal, Apple In-App Purchase, Google Play, and Amazon IAP sections allow enabling flags and placeholder credential fields. Checkout flows for these providers are **not yet implemented** — use Stripe for web subscriptions today.

## Full Stripe setup

See the dedicated [Stripe Checkout Setup](stripe-checkout-setup.md) guide for Dashboard steps, webhook events, test cards, and troubleshooting.

## Security

Secret keys and webhook secrets never appear in full in admin HTML after saving. They are not exposed via public REST routes. Only administrators can change payment settings.
