/settings/payments/gateways). The page has four tabs: Card, Crypto, Aggregators, Manual. Connect any combination — buyers see only what is enabled.
This page walks you through the setup steps for each provider, including the parts that most often cause problems. For a high-level overview of how payments flow, see Checkout.
Stripe
Cards and wallets (Apple Pay, Google Pay) through Stripe.What you will need
A Stripe account with API access is required. If you do not have one, sign up at stripe.com. You will need to copy two keys from your Stripe dashboard:- Publishable Key — starts with
pk_live_(orpk_test_for testing). - Secret Key — starts with
sk_live_(orsk_test_).
Connecting
- Open Settings → Payment gateways → Card and click Connect on Stripe.
- Paste the Publishable Key and Secret Key into the dialog.
- Click Connect.
- Creates a webhook endpoint on your Stripe account (events:
payment_intent.succeeded,.payment_failed,.canceled,charge.refunded, and the threecharge.dispute.*events). - Registers your shop subdomain (
yourshop.shoppex.io), the sharedcheckout.shoppex.ioandembed.shoppex.iohosts, and any verified custom domain you have connected, for Apple Pay.
Common pitfalls
- “Stripe API key must allow Shoppex to create webhook endpoints.” Your secret key is a Restricted Key without the Webhook scope. Either generate a normal Secret Key, or grant the Restricted Key the
Webhook Endpoints: Writepermission. - Apple Pay error during connect. If Stripe rejects the Apple Pay domain registration for your
{shop}.shoppex.io, the whole Connect fails. Wait a few minutes and retry. Stripe’s domain registration sometimes fails temporarily. - Test keys vs. live keys. Shoppex accepts both. Test keys (
sk_test_) only accept test cards at checkout. Use them for sandbox runs, since no real money moves. Switch tosk_live_for production. - Disconnecting does not check pending payments against Stripe. If you disconnect Stripe while PaymentIntents are still in flight, Shoppex stops tracking those payments after the disconnect, though they continue on Stripe’s side. Wait for pending invoices to finish before you disconnect.
- Stripe-side key revocation. If Stripe revokes the API key, for example because the account is suspended, checkouts after that fail. If Stripe-paid orders stop succeeding, check the Stripe Dashboard.
PayPal (SDK)
The standard PayPal integration. Recommended over Friends & Family unless you have a specific reason to avoid it.What you will need
A PayPal Business account plus REST API credentials. To get those:- Go to developer.paypal.com and log in with your PayPal Business account.
- Open Apps & Credentials → Live.
- Either create a new app or open an existing one. Copy the Client ID and Secret.
Connecting
- Open Settings → Payment gateways → Card → Connect on PayPal.
- Paste the Client ID and Client Secret into the form.
- Click Connect. Shoppex validates the credentials against PayPal’s API.
Register webhooks in PayPal (required)
Unlike Stripe, Shoppex does not auto-register PayPal webhooks. You must add them yourself in the PayPal Developer Dashboard so that Shoppex receives payment events:- In Apps & Credentials, click into your app → Webhooks → Add Webhook.
- Webhook URL for normal payments:
https://api.shoppex.io/v1/paypal/webhook - Webhook URL for subscriptions:
https://api.shoppex.io/v1/paypal/webhook/subscriptions
CHECKOUT.ORDER.APPROVED,CHECKOUT.ORDER.COMPLETEDPAYMENT.AUTHORIZATION.CREATED,PAYMENT.AUTHORIZATION.VOIDEDPAYMENT.CAPTURE.COMPLETED,PAYMENT.CAPTURE.DENIED,PAYMENT.CAPTURE.PENDINGPAYMENT.CAPTURE.REFUNDED,PAYMENT.CAPTURE.REVERSEDCUSTOMER.DISPUTE.CREATED,CUSTOMER.DISPUTE.UPDATED,CUSTOMER.DISPUTE.RESOLVED
BILLING.SUBSCRIPTION.ACTIVATED,BILLING.SUBSCRIPTION.CANCELLEDBILLING.SUBSCRIPTION.PAYMENT.FAILEDPAYMENT.SALE.COMPLETED,PAYMENT.SALE.REFUNDED,PAYMENT.SALE.REVERSED
Common pitfalls
- “Invalid PayPal API credentials.” You are using Sandbox credentials, not Live. Sandbox apps and Live apps have separate Client IDs and Secrets in the PayPal Developer Console.
- Orders stuck in pending. Almost always missing or misconfigured webhooks. Re-check the webhook URL and the subscribed events.
- Currency mismatch. PayPal requires the buyer’s currency to match a currency your PayPal account supports. Most accounts handle USD, EUR, and GBP without issue. Less common currencies can bounce.
PayPal Friends & Family
A simpler PayPal route that avoids transaction fees, at the cost of buyer-side protection (F&F transactions are not eligible for PayPal Buyer Protection or chargebacks). Setup is IPN-based, not API-based.What you will need
- A PayPal Business account (Personal works too, with the IPN feature enabled).
- Your PayPal account email.
Connecting
- Open Settings → Payment gateways → Manual → Connect on PayPal F&F.
- Enter the PayPal email where buyers will send Friends & Family payments.
- Click Connect PayPal F&F.
https://paypal-ff.myshoppex.io. This URL is the same for all Shoppex shops. Incoming IPNs are matched to your shop by the invoice ID in the buyer’s payment note. Copy it.
Configure IPN in PayPal
Without IPN, F&F orders sit in pending forever and need manual verification. To set it up:- Log into PayPal (the Business account, not the Developer Console).
- Account Settings → Website Payments → Instant Payment Notifications.
- Click Update, then Choose IPN Settings.
- Paste
https://paypal-ff.myshoppex.ioas the IPN URL. - Turn on Receive IPN messages.
- Save.
Buyer flow
When a buyer pays through F&F, the Shoppex checkout shows them:- Your PayPal email address (where to send the money).
- The exact amount.
- A note string (
SX-{invoice-id}) they need to include in the PayPal note field.
Common pitfalls
- Buyer forgot to include the note. Without the note, Shoppex cannot match the IPN to an invoice. The order stays pending until you manually verify it from the order page, or the buyer disputes or requests a refund through PayPal directly.
- F&F does not work for cross-border payments. PayPal restricts F&F to domestic transactions in many countries. If your buyer is in a different region than your PayPal account, the F&F option can appear greyed out for them on PayPal’s side.
- No buyer protection means no chargebacks. It also means you have no recourse if the buyer’s PayPal account is compromised, or if the buyer reverses the transfer manually. Treat F&F as cash-equivalent.
Cash App
US-only. The flow is email-forwarding-based: Cash App does not have a public API for merchants, so Shoppex reads Cash App’s receipt emails to confirm payments.What you will need
- An active Cash App account with a
$cashtag. - A Gmail address you control and can set up forwarding from.
Connecting
- Open Settings → Payment gateways → Manual → Connect on Cash App.
- Enter your
$cashtag(must start with$, for example$yourbrand). - Enter the Gmail address that receives Cash App receipt emails.
- Click through to step 2 of the wizard.
{shop-id}-cashapp@inbound.shoppex.io. Copy it.
Set up Gmail forwarding
Cash App setup has two phases:- Gmail forwarding confirmation — Google sends one email to Shoppex to prove the forwarding address is reachable.
- Receipt pipeline test — a real Cash App payment receipt must reach Shoppex before the gateway shows as verified.
- Open Gmail → Settings → Forwarding and POP/IMAP → Add a forwarding address.
- Paste the Shoppex forwarding address from step 2 of the wizard.
- Gmail sends a confirmation email to Shoppex. Go back to the wizard and click Check Verification Status. If the wizard shows a Google Confirmation Link, open it.
- Approve forwarding in Gmail.
- Create a filter with criteria
from:cash@square.com OR from:cash@cash.appand forward matching mail to the same Shoppex address. - Send yourself a small test payment through your shop. Once Shoppex receives the receipt email, the wizard shows a green check and the gateway badge clears.
Buyer flow
At checkout, the buyer sees your$cashtag and a unique note code (SX-{invoice-id}). They:
- Open Cash App, send the amount to your
$cashtag, and include the note. - Click I’ve sent the payment on the Shoppex checkout (manual confirmation step).
Common pitfalls
- USD only. Cash App rejects non-USD shops. If your shop’s primary currency is not USD, Cash App does not appear in the gateway list.
- Connect before enable. You must connect Cash App with your cashtag and Gmail address before the checkout toggle can be turned on. Receipt verification is separate and proves the forwarding pipeline works.
- Gmail filter must catch every receipt format. Cash App occasionally varies its email template. If a payment does not auto-confirm, check Gmail for the receipt and forward it manually as a test.
Crypto: Aggregators
For multi-coin coverage without managing addresses per chain.Cryptomus
API-key-based. Get a key from your Cryptomus dashboard under Settings → Payments → API. You will also need your Merchant ID from the same page. In Shoppex: Settings → Payment gateways → Aggregators → Cryptomus → Connect. Paste both, save. Cryptomus handles which coins are visible at checkout based on your Cryptomus settings.Oxapay
API-key-based, simpler than Cryptomus. Get a Merchant API key from Oxapay → Merchant API. In Shoppex: Settings → Payment gateways → Aggregators → Oxapay → Connect. Paste the key. Oxapay’s currently supported coins and networks are fetched live whenever a buyer opens checkout. Whatever you have enabled in your Oxapay dashboard shows up.Crypto: Shoppex Wallet
For accepting Bitcoin and Litecoin directly into a wallet only you control, with no intermediary. The Shoppex Wallet is a native, self-custodial wallet for BTC and LTC. Buyers pay straight into a wallet that belongs to you. The keys and recovery phrase are generated on your device, and Shoppex never holds the funds. You create it from the onboarding wizard in Settings → Payments → Shoppex Wallet. There are no per-coin addresses to paste. See the full guide: Shoppex Wallet.Pitfalls
- Self-custody means full responsibility. If you lose both your wallet password and your 12-word recovery phrase, Shoppex has no way to recover the funds.
- No automatic refunds. Because Shoppex does not custody the wallet, crypto refunds are manual. You send the funds back yourself from the Wallet area, then mark the order refunded in Shoppex. See Refunds.
Payouts
Because Shoppex does not custody funds, payouts happen on each gateway’s own schedule, not Shoppex’s schedule. There is no shared Shoppex balance to withdraw from.Per-gateway timing
- Stripe — Funds settle to the bank account on your connected Stripe profile on Stripe’s rolling payout schedule (set in your Stripe dashboard). New accounts typically start on a delayed schedule and graduate to faster cycles as volume builds. That is Stripe’s policy, not Shoppex’s.
- PayPal (SDK) — Funds land in your PayPal Business balance right after capture. Withdraw from PayPal as you normally do.
- PayPal Friends & Family — Funds arrive in your PayPal personal balance as F&F transfers, per PayPal’s own timing.
- Cryptomus / Oxapay — Funds accumulate in your provider balance. Withdraw from those providers’ dashboards to your wallets or to fiat (where supported).
- Direct crypto (BTC / LTC / ETH / Lightning) — Funds arrive at your wallet on-chain once the required confirmations clear, with no intermediary holding them.