Skip to content

Payment Providers Configuration ​

Configure payment providers (Stripe, PayPal, Polar, Authorize.net) in your Bridge Payments instance via the Pubflow Platform dashboard.

Overview ​

Bridge Payments supports multiple payment providers simultaneously. You can enable one or more providers based on your business needs.

Supported Providers ​

ProviderPayment TypesSubscriptionsRegions
PolarHosted Checkout, Cards✅ YesGlobal (selected countries/currencies)
StripeCards, Wallets (Apple Pay, Google Pay)✅ YesGlobal (135+ currencies)
PayPalPayPal, Cards, Venmo✅ YesGlobal (25+ currencies)
Authorize.netCards, eCheck✅ Yes (ARB)US, Canada, UK, Europe, Australia

Configuration via Pubflow Dashboard ​

1. Access Provider Settings ​

  1. Log in to Pubflow Platform
  2. Navigate to your Bridge Payments instance
  3. Go to Settings → Payment Providers

2. Enable Providers ​

Toggle providers on/off and configure credentials:

Polar:

bash
POLAR_ACCESS_TOKEN=polar_pat_...
POLAR_ORGANIZATION_ID=...
POLAR_WEBHOOK_SECRET=whsec_...

Stripe:

bash
STRIPE_SECRET_KEY=sk_test_... # or sk_live_...
STRIPE_PUBLISHABLE_KEY=pk_test_... # or pk_live_...
STRIPE_WEBHOOK_SECRET=whsec_... # Optional

PayPal:

bash
PAYPAL_CLIENT_ID=your_client_id
PAYPAL_CLIENT_SECRET=your_client_secret
PAYPAL_MODE=sandbox # or "live"
PAYPAL_WEBHOOK_ID=your_webhook_id # Optional

Authorize.net:

bash
AUTHORIZE_NET_API_LOGIN_ID=your_api_login_id
AUTHORIZE_NET_TRANSACTION_KEY=your_transaction_key
AUTHORIZE_NET_ENVIRONMENT=sandbox # or "production"
AUTHORIZE_NET_PUBLIC_CLIENT_KEY=your_public_client_key

3. Test Configuration ​

After configuring providers, test the connection:

bash
curl -X GET "https://your-instance.pubflow.com/bridge-payment/providers/test" \
  -H "X-Session-ID: session_abc123"

Response:

json
{
   "polar": {
      "status": "connected"
   },
  "stripe": {
    "status": "connected",
    "mode": "test"
  },
  "paypal": {
    "status": "connected",
    "mode": "sandbox"
  },
  "authorize_net": {
    "status": "connected",
    "mode": "sandbox"
  }
}

Provider-Specific Setup ​

Stripe Setup ​

  1. Get API Keys:

    • Sign up at stripe.com
    • Navigate to Developers → API Keys
    • Copy Publishable Key and Secret Key
  2. Configure Webhooks:

    • Go to Developers → Webhooks
    • Add endpoint: https://your-instance.pubflow.com/bridge-payment/webhooks/stripe
    • Select events: payment_intent.*, customer.subscription.*, invoice.*
    • Copy Signing Secret to STRIPE_WEBHOOK_SECRET
  3. Enable Payment Methods:

    • Go to Settings → Payment Methods
    • Enable: Cards, Apple Pay, Google Pay

PayPal Setup ​

  1. Get API Credentials:

  2. Configure Webhooks:

    • Go to Webhooks in your app
    • Add webhook: https://your-instance.pubflow.com/bridge-payment/webhooks/paypal
    • Select events: PAYMENT.*, BILLING.SUBSCRIPTION.*
    • Copy Webhook ID to PAYPAL_WEBHOOK_ID
  3. Enable Payment Options:

    • Enable: PayPal, Cards, Venmo (US only)

Authorize.net Setup ​

  1. Get API Credentials:

    • Sign up at authorize.net
    • Navigate to Account → Settings → API Credentials & Keys
    • Copy API Login ID and Transaction Key
  2. Get Public Client Key:

    • Go to Account → Settings → Manage Public Client Key
    • Generate and copy Public Client Key
  3. Configure Webhooks:

    • Go to Account → Settings → Webhooks
    • Add endpoint: https://your-instance.pubflow.com/bridge-payment/webhooks/authorize-net
    • Select events: net.authorize.payment.*, net.authorize.customer.subscription.*

Multi-Provider Strategy ​

Use Cases ​

Single Provider:

  • Simple setup
  • Lower maintenance
  • Recommended for startups

Multiple Providers:

  • Redundancy (fallback if one fails)
  • Regional optimization (Stripe for US, PayPal for EU)
  • Customer preference (some prefer PayPal)

Provider Selection ​

Automatic Selection ​

Bridge Payments automatically selects provider based on:

  1. Customer preference (if specified)
  2. Currency support
  3. Regional availability

Manual Selection ​

Specify provider in API requests:

bash
curl -X POST "/bridge-payment/payments/intents" \
  -d '{
    "total_cents": 2000,
    "currency": "USD",
      "provider_id": "stripe"  # or "polar", "paypal", "authorize_net"
  }'

Testing vs Production ​

Test Mode ​

Use test credentials during development:

Stripe:

bash
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...

PayPal:

bash
PAYPAL_MODE=sandbox

Authorize.net:

bash
AUTHORIZE_NET_ENVIRONMENT=sandbox

Production Mode ​

Switch to live credentials for production:

Stripe:

bash
STRIPE_SECRET_KEY=sk_live_...
STRIPE_PUBLISHABLE_KEY=pk_live_...

PayPal:

bash
PAYPAL_MODE=live

Authorize.net:

bash
AUTHORIZE_NET_ENVIRONMENT=production

Important

Never commit API keys to version control. Use environment variables managed through Pubflow dashboard.

Provider Comparison ​

Fees ​

ProviderTransaction FeeAdditional Fees
Stripe2.9% + $0.30International: +1%
PayPal2.9% + $0.30International: +1.5%
Authorize.netGateway: $25/moProcessor fees vary

Features ​

FeatureStripePayPalAuthorize.net
Cards✅✅✅
Digital Wallets✅ (Apple Pay, Google Pay)✅ (PayPal, Venmo)❌
Bank Transfers✅ (ACH)✅✅ (eCheck)
Subscriptions✅✅✅ (ARB)
3D Secure✅✅✅
Fraud Detection✅ (Radar)✅✅ (FDS)

Troubleshooting ​

"Provider not configured" ​

Cause: Provider credentials not set or invalid

Solution:

  1. Verify credentials in Pubflow dashboard
  2. Test connection with /providers/test endpoint
  3. Check environment (test vs production)

"Webhook signature verification failed" ​

Cause: Webhook secret mismatch

Solution:

  1. Copy webhook secret from provider dashboard
  2. Update in Pubflow dashboard
  3. Restart Bridge Payments instance

"Currency not supported" ​

Cause: Provider doesn't support requested currency

Solution:

  1. Check provider currency support
  2. Use different provider
  3. Convert currency before payment

Best Practices ​

  1. Start with One Provider - Add more as needed
  2. Use Test Mode - Thoroughly test before going live
  3. Enable Webhooks - Critical for async events
  4. Monitor Dashboards - Check provider dashboards regularly
  5. Keep Credentials Secure - Never expose API keys
  6. Update Regularly - Keep provider SDKs up to date

Next Steps ​