Card payments not working
Buyers only see crypto, card checkout fails, or your key says card isn’t allowed.
Symptom: Buyers only see crypto, card checkout fails, or your key says card isn’t allowed.
Why this happens
Swop has two ways to get paid. Crypto (USDC) works for every account, immediately, with no identity checks. Card goes through Stripe, so Stripe has to know who you are first: that's merchant verification, done once in the Swop app.
Two things make card problems confusing:
- Swop checks card permission on every request, and fails closed. If your verification isn't complete, or the check can't run for a moment, the checkout quietly becomes crypto-only instead of failing. Your buyers can still pay; they just don't see card.
- "Verified" isn't the finish line. Stripe also has to switch on card acceptance and payouts for your account. Until both are on, card stays off.
Walk through it
Answer one question at a time. The first no is almost always the cause.
Does your Swop app show “Verified” under Settings → Verification & Swop.ID?
How to check: Open the Swop app → Settings → Identity & payouts → Verification & Swop.ID. The tag reads Verified, Reviewing, Action needed, Restricted, Revoked, Not started or Coming soon.
Check these in order
1. Does your Swop app show “Verified” under Settings → Verification & Swop.ID?
How to check: Open the Swop app → Settings → Identity & payouts → Verification & Swop.ID. The tag reads Verified, Reviewing, Action needed, Restricted, Revoked, Not started or Coming soon.
If not: Not started: tap Set up card payments and finish Stripe’s steps. Reviewing: Stripe is checking your details (minutes, sometimes up to a day); the screen updates by itself. Action needed or Restricted: complete the items listed under “Requested by Stripe”. Revoked: this verification can’t be restarted, so contact support. Coming soon: update the Swop app; your version doesn’t have card verification yet. See Crypto vs. card.
2. Does the same screen say card acceptance and Stripe-managed payouts are both enabled?
How to check: Under Identity verification it reads “Card acceptance and Stripe-managed payouts are enabled”. “Stripe is still finishing enabling card acceptance or payouts” means you’re not there yet.
If not: “Verified” alone doesn’t switch card on. Wait for Stripe to finish (the screen refreshes itself), and add a payout account under Settings → Payout accounts if Stripe asks for one.
3. When you started verification, did you accept the card seller agreement and pick a supported country?
How to check: Starting verification asks you to accept the card seller agreement first. If your country isn’t supported you see “Merchant verification is not available in that country yet.”
If not: Accept the agreement when prompted and start again. If your country isn’t enabled yet, card isn’t available for your business; crypto checkout still works everywhere.
4. Does GET /api/v5/merchant/me return "cardEnabled": true for the key you’re using?
How to check: curl https://apps.apiswop.co/api/v5/merchant/me -H "Authorization: Bearer $SWOP_MERCHANT_KEY" and read data.cardEnabled and data.effectiveScopes.
If not: If commerce.card isn’t in your key’s granted scopes, create a new key with it in the Swop app (Dashboard → Developer). If it’s granted but not effective, your verification isn’t complete (go back to step 1), or the check couldn’t run: Swop withholds card rather than guess, so try again in a few minutes. See GET /me.
5. Are you asking for card when you create the checkout?
How to check: Your POST /checkout-intents body should include "paymentRail": "buyer_choice". Then read cardOffered in the response.
If not: Add "paymentRail": "buyer_choice". Without it, every checkout is crypto only. See Headless checkout.
6. Is every item in the cart a physical product, with any royalties payable on card?
How to check: Card is offered only when all items are physical. One digital item in the cart makes the whole checkout crypto only.
If not: Sell digital items in a separate checkout (crypto), or keep card carts to physical goods. See Crypto vs. card.
7. If you frame checkout on your site: is that exact website registered, and does checkout load inside the frame?
How to check: A 403 that says “… is not a registered embed origin” names the site. https://acme.com and https://www.acme.com are different origins.
If not: Register every exact origin in the Swop app (Dashboard → Developer). If a registered site still won’t load the framed checkout, use a payment link or headless checkout and contact support. See Framed checkout.
8. Is your account free of restrictions?
How to check: A 403 with "code": "ACCOUNT_FLAGGED", or “Temporarily locked” on the Verification screen, means the account is restricted.
If not: Contact support@swopme.co. Restrictions can’t be lifted from the API or the app. See Support.
Verification states, in plain words
| What the app shows | What it means | What to do |
|---|---|---|
| Not started | You haven't connected Stripe yet | Tap Set up card payments and follow Stripe's steps |
| Reviewing | Stripe is checking what you sent | Wait: usually minutes, sometimes up to a day. The screen updates by itself |
| Action needed | Stripe needs something more (ID, address, bank account, terms…) | Finish the items under Requested by Stripe |
| Restricted | Payments are paused until listed items are resolved | Resolve them, or contact support |
| Verified + "still finishing" | Identity done, card or payouts not switched on yet | Wait; add a payout account if asked |
| Verified + "card acceptance and payouts are enabled" | Card is on | Check the API steps above |
| Revoked | This verification can't be restarted | Contact support |
| Locked | Payout settings are locked | Contact support |
| Coming soon | Your app version doesn't have card verification yet | Update the Swop app |
A known gap
When card isn't offered, the API tells you cardOffered: false but not why. Until it does, GET /me (cardEnabled) and the checks above are the way to find out.
Still stuck?
Email support@swopme.co with your swop.id, roughly when it happened, and any order, checkout or request ID. Never send your secret key. You can also use the Ask button on any page.