Help center
Fix it yourself, step by step
Paste the error you’re seeing, or look up what you want to do. Every answer says what went wrong and exactly what to click.
16 guides and 57 error messages explained.
How do I…
Short walkthroughs for the things sellers do most.
Create your store
From sign-up to a live store address.
Create your store
From sign-up to a live store address.
- 1. Go to paysum.dev and choose Start selling.
- 2. Sign up with your email, then type the 6-digit code we email you.
- 3. Name your store and pick its address. It is live at that address straight away.
Add a product and its stock
Sell license keys, accounts or anything else delivered as text.
Add a product and its stock
Sell license keys, accounts or anything else delivered as text.
- 1. Open Products → All products and choose New product.
- 2. Give it a name and a price. Add a picture so it looks real in the store.
- 3. Under delivery, paste your keys, one per line. Each sale sends one key and removes it from stock.
- 4. Save. The product shows in your store right away unless you set it to hidden.
Sell a file or a download
Deliver the same file to every buyer.
Sell a file or a download
Deliver the same file to every buyer.
- 1. Open the product and choose file delivery instead of keys.
- 2. Upload the file. Add a note if buyers need instructions, such as a password.
- 3. Save. Every buyer gets the file on their order page after paying.
Start accepting payments
Turn on cards, PayPal or crypto.
Start accepting payments
Turn on cards, PayPal or crypto.
- 1. Open Payments → Payment methods.
- 2. For cards, connect Stripe (or another card provider) and paste the keys from that provider’s dashboard.
- 3. For crypto, open Payments → Wallet and create your store wallets. Crypto payments land there, and you withdraw to your own address whenever you like.
- 4. Turn the method on. Open your store and start a checkout to check it appears.
Give buyers a Discord role
Buyers get a role in your server after paying.
Give buyers a Discord role
Buyers get a role in your server after paying.
- 1. Open Discord → Roles, choose Add the Paysum bot and pick your server.
- 2. In Discord, open Server settings → Roles and drag the Paysum role above every role it should give.
- 3. Back in the dashboard, pick which role each product gives.
- 4. Buyers connect their Discord at checkout and get the role as soon as the payment clears.
Use your own domain
Run the store at shop.yourname.com. Needs Premium.
Use your own domain
Run the store at shop.yourname.com. Needs Premium.
- 1. Open Storefront → Domain, type the domain you own (for example shop.example.com) and choose Add domain.
- 2. Copy the records the page shows into your domain provider (Namecheap, Cloudflare, GoDaddy…). Copy them exactly.
- 3. Leave the Domain page open or come back later. It checks the records by itself; new records can take from a few minutes to a few hours to show up.
- 4. When the page says the domain is connected, your store works at the new address.
Make a discount code
A code buyers type at checkout.
Make a discount code
A code buyers type at checkout.
- 1. Open Marketing → Coupons and choose New coupon.
- 2. Type the code buyers will enter, then choose a percentage or a fixed amount.
- 3. Optionally set a start date, an end date or a maximum number of uses.
- 4. Save and share the code. Buyers enter it in “Add a coupon” at checkout.
A buyer says they didn’t get their order
Find out why in under a minute.
A buyer says they didn’t get their order
Find out why in under a minute.
- 1. Open Sales → Orders and search for the buyer’s email.
- 2. No order at all: they never finished paying. Ask them to try again.
- 3. Order is pending: the payment hasn’t been confirmed yet. Crypto needs network confirmations, which can take a while.
- 4. Order is held: Fraud Shield paused it. Open Fraud shield and choose Approve and deliver if it looks fine.
- 5. Order is completed: it was delivered. Ask them to check spam, or to look it up on your store’s order status page.
Refund a buyer
Money goes back through the way they paid.
Refund a buyer
Money goes back through the way they paid.
- 1. Refund the payment in the provider they paid with: Stripe, PayPal, Square and so on.
- 2. Crypto payments can’t be pulled back. Send the coins back from your wallet yourself if you agree to a refund.
- 3. When the provider tells us about the refund, the order shows as refunded, and Discord roles are removed if you set that up.
Get your money out
Withdraw crypto from your store wallets.
Get your money out
Withdraw crypto from your store wallets.
- 1. Open Payments → Wallet to see the crypto your store has received.
- 2. Choose how and where you want payouts under Payments → Withdrawals.
- 3. Withdraw an amount up to your available balance. Card and PayPal money goes to your own Stripe or PayPal account, so it never shows here.
Change how your store looks
Themes, colors, logo and text.
Change how your store looks
Themes, colors, logo and text.
- 1. Open Storefront → Themes and pick a theme.
- 2. Open Visual builder. Click anything on the preview to change its text, image or colors.
- 3. Choose Publish. Until then, buyers keep seeing the old version.
Let someone help run your store
Add a team member without sharing your password.
Let someone help run your store
Add a team member without sharing your password.
- 1. Open Settings → Team members and choose Invite member.
- 2. Type their email and choose what they’re allowed to touch.
- 3. They get an email, sign up or sign in, and see your store in their dashboard.
Get told when you make a sale
Email, Discord or phone notifications.
Get told when you make a sale
Email, Discord or phone notifications.
- 1. Open Settings → Sale alerts.
- 2. Pick where each alert goes (email, phone, Discord or Telegram) for events such as Order completed and Out of stock.
- 3. For Discord, paste a webhook URL from your Discord channel settings (Integrations → Webhooks).
Move from another platform
Bring products over from Shoppex, SellAuth, Sell.app and others.
Move from another platform
Bring products over from Shoppex, SellAuth, Sell.app and others.
- 1. Open Settings → Import store.
- 2. Pick the platform you’re leaving and paste the API key it gives you.
- 3. Check the list of products it found, then import them.
Sell from your own website
A buy button or a full checkout on any site.
Sell from your own website
A buy button or a full checkout on any site.
- 1. For a buy button that opens checkout in a popup, use the checkout embed: one script tag and a button.
- 2. For a checkout that sits inside your page, styled like your site, use Checkout Elements.
- 3. Both take payment through your store, so orders, delivery and emails work as usual.
Get an API key
For your own code, the CLI or an AI assistant.
Get an API key
For your own code, the CLI or an AI assistant.
- 1. Open Integrations → API keys and choose New API key.
- 2. Tick only the permissions that code needs, such as reading products.
- 3. Copy the key now. It starts with sk_ and is shown once. Keep it on your server, never in website code.
Checkout
Messages buyers see while paying, and what you can change so they stop.
Please enter a valid email address
Please enter a valid email address
What it means
The email has a typo or a missing part, such as no @ or no ending like .com.
How to fix it
Check the email for typos and spaces, then try again.
Please accept the Terms of Service to continue / Still needed: Accepting the terms
Please accept the Terms of Service to continue / Still needed: Accepting the terms
What it means
The box agreeing to the store’s terms isn’t ticked.
How to fix it
Tick the box next to “I agree to the Terms and Privacy Policy”, then pay.
No payment methods are turned on for this store.
No payment methods are turned on for this store.
What it means
The seller hasn’t switched on any way to pay yet.
How to fix it
- 1. Sellers: open Payments → Payment methods and turn at least one on.
- 2. Buyers: contact the store. There is nothing you can do on your side.
Invalid coupon code
Invalid coupon code
What it means
No coupon with that code exists in this store.
How to fix it
- 1. Buyers: check the spelling. Codes from another store don’t work here.
- 2. Sellers: open Marketing → Coupons and check the code exists and is turned on.
Coupon has expired / Coupon is not active yet / Coupon usage limit reached
Coupon has expired / Coupon is not active yet / Coupon usage limit reached
What it means
The code exists, but its end date has passed, its start date hasn’t come yet, or it was used the maximum number of times.
How to fix it
Sellers: open the coupon and move its dates, or raise the maximum uses.
This coupon gives free shipping, and this order has none to waive
This coupon gives free shipping, and this order has none to waive
What it means
It’s a free-shipping coupon, and nothing in the cart ships.
How to fix it
Nothing is wrong. The order is already free of shipping costs.
Invalid gift card code
Invalid gift card code
What it means
No gift card with that code exists in this store, or it was used up.
How to fix it
- 1. Check the code. Gift cards only work in the store that sold them.
- 2. Sellers: look it up in Marketing → Gift cards to see its balance.
Your gift card doesn’t cover the full order. Pick another payment method for the remaining…
Your gift card doesn’t cover the full order. Pick another payment method for the remaining…
What it means
The gift card has less money on it than the order costs.
How to fix it
Keep the gift card applied and choose another method, such as a card, for the rest.
Insufficient balance. Please select another payment method.
Insufficient balance. Please select another payment method.
What it means
The buyer’s store balance is lower than the order total.
How to fix it
Pick another payment method for this order.
Balance payments require the signed-in customer account
Balance payments require the signed-in customer account
What it means
Paying with balance only works when signed in to the store account that holds it.
How to fix it
Sign in to your account on the store, then pay again.
Card payment requires a minimum of $5.00 / Card to Crypto requires a minimum purchase of $3.00
Card payment requires a minimum of $5.00 / Card to Crypto requires a minimum purchase of $3.00
What it means
Card to crypto has a minimum order size set by the exchange behind it.
How to fix it
Add more to the order, or pick another payment method.
Please connect your Discord account to receive your roles.
Please connect your Discord account to receive your roles.
What it means
This product gives a Discord role, so the store needs to know who you are on Discord.
How to fix it
Choose Connect next to Discord, allow access, and you’ll come back to checkout.
Enter the shipping address for the items we ship to you.
Enter the shipping address for the items we ship to you.
What it means
Something in the cart is a physical item, and part of the address is missing.
How to fix it
Fill in every address field marked as required, then pay.
This store doesn’t ship to …
This store doesn’t ship to …
What it means
The seller has no shipping zone that covers that country.
How to fix it
Sellers: open Sales → Shipping and add the country to a zone.
Store not found. Please try refreshing the page. / This store is out of reach
Store not found. Please try refreshing the page. / This store is out of reach
What it means
The address doesn’t match a store. It may be misspelled, renamed, or the store was taken down.
How to fix it
- 1. Check the address for typos and refresh.
- 2. Sellers: if you changed your store address, old links stop working. Share the new one.
Checkout expired / This checkout session has expired. / This checkout session has already been completed.
Checkout expired / This checkout session has expired. / This checkout session has already been completed.
What it means
This checkout link was made for one purchase and is either too old or already paid.
How to fix it
- 1. Buyers: go back to the site you came from and start again.
- 2. Sellers: create a new checkout session for each purchase instead of reusing links.
Fraud Shield is holding this order for review.
Fraud Shield is holding this order for review.
What it means
Fraud Shield thought the order looked risky, so it paused delivery.
How to fix it
- 1. Open Settings → Fraud shield and look at the held order.
- 2. Choose Approve and deliver if it looks fine, or reject it.
- 3. If good orders keep getting held, loosen the rule that held them.
Too many requests. Please try again later.
Too many requests. Please try again later.
What it means
The same device tried too many times in a short while, so we paused it to stop abuse.
How to fix it
Wait a few minutes, then try once more.
Payment setup
Problems connecting Stripe, PayPal, crypto wallets and other providers.
Use a Stripe secret key (sk_live_ / sk_test_) or restricted key (rk_live_ / rk_test_).
Use a Stripe secret key (sk_live_ / sk_test_) or restricted key (rk_live_ / rk_test_).
What it means
The key pasted isn’t a secret key. Usually it’s the publishable key, which starts with pk_.
How to fix it
- 1. In Stripe, open Developers → API keys.
- 2. Reveal and copy the Secret key (starts with sk_), not the Publishable key.
- 3. Paste it into Paysum and save.
Stripe rejected the key.
Stripe rejected the key.
What it means
Stripe says the key is wrong, deleted or was rolled.
How to fix it
- 1. Copy the key again from Stripe; a missing character is the usual cause.
- 2. If you rolled the key in Stripe, the old one stops working. Paste the new one.
Webhook signing secrets start with whsec_.
Webhook signing secrets start with whsec_.
What it means
The webhook secret field got something else, such as the API key.
How to fix it
- 1. In Stripe, open Developers → Webhooks and select the endpoint for Paysum.
- 2. Reveal the Signing secret (starts with whsec_) and paste that.
Square could not create a payment link / Mollie could not create a payment / Paddle could not create a transaction (or the same for another provider)
Square could not create a payment link / Mollie could not create a payment / Paddle could not create a transaction (or the same for another provider)
What it means
We asked the provider to start the payment and it said no.
How to fix it
- 1. Check the keys in Payments are for the right mode. Test keys only work with test payments.
- 2. Make sure your account with that provider is fully set up and allowed to take payments.
- 3. Check the provider supports your store’s currency.
Pandabase only accepts USD orders. / Skinloop only accepts USD orders.
Pandabase only accepts USD orders. / Skinloop only accepts USD orders.
What it means
That provider can’t charge in your store’s currency.
How to fix it
Switch the store currency to USD in Settings → General, or use another provider.
That Square location is not active.
That Square location is not active.
What it means
The Square location linked to your store was closed or deactivated in Square.
How to fix it
Reactivate it in Square, or reconnect Square and pick an active location.
Store does not have a LTC wallet configured
Store does not have a LTC wallet configured
What it means
A coin is switched on, but the store wallet for it hasn’t been created yet.
How to fix it
Open Payments → Wallet and create the store wallets, then try the payment again.
Only the store owner can manage payment credentials
Only the store owner can manage payment credentials
What it means
Team members can’t see or change payment keys, so nobody can redirect your money.
How to fix it
Ask the store owner to do it from their account.
Endpoints must use https://. / Put credentials in the headers, not in the URL.
Endpoints must use https://. / Put credentials in the headers, not in the URL.
What it means
A custom payment provider URL is not secure, or has a password inside it.
How to fix it
- 1. Use an address that starts with https://.
- 2. Move any key or password out of the URL and into the header fields.
Orders and delivery
When a buyer paid but says nothing arrived.
No keys found for this order
No keys found for this order
What it means
The product ran out of keys, so there was nothing to send.
How to fix it
- 1. Open the product and paste more keys.
- 2. Send the buyer a key yourself for the order that missed out.
- 3. Turn on low-stock notifications so it doesn’t happen again.
Product does not have KeyAuth configuration
Product does not have KeyAuth configuration
What it means
The product is set to deliver KeyAuth licenses, but the KeyAuth details are empty.
How to fix it
Open the product and fill in the KeyAuth settings, or switch it back to normal keys.
Order not found or not completed
Order not found or not completed
What it means
The order isn’t paid yet, or the link is wrong.
How to fix it
- 1. Crypto payments wait for network confirmations. Give it a little time.
- 2. Sellers: search the buyer’s email in Orders to see its real status.
Order waiting on supplier / The supplier is out of stock. / The supplier has not approved this connection, or has suspended it.
Order waiting on supplier / The supplier is out of stock. / The supplier has not approved this connection, or has suspended it.
What it means
You resell this product, and the store you get it from can’t deliver right now.
How to fix it
- 1. Open Reselling → Suppliers to see the connection.
- 2. Ask the supplier to restock or approve you. Orders deliver once they do.
Discord
Roles that are not given, and bot access.
Add the Paysum bot to this server from the dashboard first
Add the Paysum bot to this server from the dashboard first
What it means
The bot that gives roles isn’t in your Discord server.
How to fix it
Open Discord → Roles and choose Add bot, then pick your server.
Could not access the guild. Ensure the Paysum bot is in this server with Manage Roles, Create Instant Invite, and Kick Members.
Could not access the guild. Ensure the Paysum bot is in this server with Manage Roles, Create Instant Invite, and Kick Members.
What it means
The bot is missing a permission it needs.
How to fix it
- 1. In Discord, open Server settings → Roles → Paysum.
- 2. Turn on Manage Roles, Create Invite and Kick Members.
- 3. Or remove the bot and add it again from the dashboard; it asks for the right permissions.
Failed to grant role. Make sure the user is in the server.
Failed to grant role. Make sure the user is in the server.
What it means
Either the buyer isn’t in your server, or the role is placed above the bot’s own role, which Discord doesn’t allow.
How to fix it
- 1. In Discord, open Server settings → Roles and drag the Paysum role above the role it should give.
- 2. Check the buyer is in your server, then try again from the order.
Failed to fetch roles from Discord. Is the Paysum bot still in this server? / This server is not connected to this store
Failed to fetch roles from Discord. Is the Paysum bot still in this server? / This server is not connected to this store
What it means
The bot was kicked, or you’re looking at a server linked to another store.
How to fix it
Add the bot again from Discord → Roles, then reload the page.
Discord webhook URL is not a discord.com webhook / Add a Discord webhook URL first.
Discord webhook URL is not a discord.com webhook / Add a Discord webhook URL first.
What it means
Sale notifications to Discord need a webhook link from Discord itself.
How to fix it
- 1. In Discord, open the channel settings → Integrations → Webhooks → New webhook.
- 2. Copy the webhook URL (starts with https://discord.com/api/webhooks/) and paste it.
Custom domains
Connecting your own web address.
Enter a valid domain, e.g. example.com or shop.example.com / This domain cannot be used for a storefront
Enter a valid domain, e.g. example.com or shop.example.com / This domain cannot be used for a storefront
What it means
What you typed isn’t a domain you can use, often because it includes https:// or a path.
How to fix it
Type just the domain, like shop.example.com, with no https:// and nothing after it.
This domain is already connected to a store / This domain is already connected to another site. Remove it there first, then try again.
This domain is already connected to a store / This domain is already connected to another site. Remove it there first, then try again.
What it means
The domain is in use by another store or another website host.
How to fix it
- 1. If it’s your old store, remove the domain there first.
- 2. If it’s another host (Vercel, Netlify, Shopify…), remove it from that project.
Add the TXT record to prove you own this domain.
Add the TXT record to prove you own this domain.
What it means
We need to see a special TXT record before connecting the domain.
How to fix it
- 1. Copy the TXT record’s name and value from the Domain page.
- 2. Add it at your domain provider exactly as shown. The Domain page notices it by itself.
Your record is in place. Waiting for it to propagate.
Your record is in place. Waiting for it to propagate.
What it means
You did it right. The internet just hasn’t caught up yet.
How to fix it
Wait. This usually takes minutes, sometimes a few hours. Check again later.
Your store works, but traffic skips our DDoS protection.
Your store works, but traffic skips our DDoS protection.
What it means
The domain points straight at the server instead of through our protection.
How to fix it
- 1. Add the TXT records the Domain page lists.
- 2. Once they’re verified, the page asks you to change one more record. Do that and you’re protected.
Sign-in and account
Logging in, codes and passwords.
Invalid email or password
Invalid email or password
What it means
The email and password don’t match an account.
How to fix it
- 1. Check caps lock and the email for typos.
- 2. Choose Forgot password to set a new one, or sign in with an email link instead.
Invalid or expired verification code / Invalid verification code
Invalid or expired verification code / Invalid verification code
What it means
The 6-digit code is wrong or too old.
How to fix it
- 1. Use the newest email only. Asking for a new code makes older ones stop working.
- 2. Codes expire after a short time. Ask for a fresh one if it’s been a while.
Too many attempts. Please try again later.
Too many attempts. Please try again later.
What it means
Too many wrong tries, so we locked sign-in for a moment to keep the account safe.
How to fix it
Wait about 15 minutes, then try once, carefully.
Account already exists. Sign in instead. / Username already taken
Account already exists. Sign in instead. / Username already taken
What it means
That email or username is already used.
How to fix it
Sign in instead, or pick another username.
Password must contain letters and numbers and be between 8 and 72 bytes
Password must contain letters and numbers and be between 8 and 72 bytes
What it means
The password is too short, too long, or has only letters or only numbers.
How to fix it
Use at least 8 characters with both letters and numbers.
Your account has been suspended
Your account has been suspended
What it means
The account broke the rules or was reported, and a person reviewed it.
How to fix it
Read the email we sent about it, and reply to it if you think it’s a mistake.
API, embeds and webhooks
Error codes returned to your code, and what to change.
unauthorized / invalid_api_key / api_key_disabled / api_key_expired
unauthorized / invalid_api_key / api_key_disabled / api_key_expired
What it means
The request has no key, a wrong key, or a key you turned off or that ran out.
How to fix it
- 1. Send the header Authorization: Bearer sk_… on every request.
- 2. Check the key in Integrations → API keys is enabled and not expired. Create a new one if needed.
permission_denied
permission_denied
What it means
The key works, but it wasn’t given the permission this request needs.
How to fix it
Edit the key in Integrations → API keys and tick the permission named in the message.
rate_limit_exceeded
rate_limit_exceeded
What it means
This key made too many requests this hour.
How to fix it
- 1. Wait the number of seconds in the Retry-After header, then retry.
- 2. Cache answers you ask for often, such as the product list.
invalid_request / product_not_found / insufficient_stock / not_found
invalid_request / product_not_found / insufficient_stock / not_found
What it means
Something in the request is missing or wrong, the product isn’t in this store, or there isn’t enough stock.
How to fix it
- 1. Read the message field. It names the field or product that’s wrong.
- 2. Check you’re using IDs from the same store the key belongs to.
build_failed
build_failed
What it means
Your theme code doesn’t compile, so it wasn’t published.
How to fix it
- 1. The message lists the first errors with file and line. Fix those.
- 2. Run paysum watch to see errors as you save, before publishing.
Webhook signature doesn’t match (on your server)
Webhook signature doesn’t match (on your server)
What it means
Your code checked an Paysum webhook and the signature didn’t verify.
How to fix it
- 1. Verify against the raw request body, before any JSON parsing.
- 2. Use the signing secret from Integrations → Webhooks for that endpoint, not an API key.
- 3. Make sure your server clock is right; signatures older than a few minutes are rejected.
needs_hosted_checkout (Checkout Elements)
needs_hosted_checkout (Checkout Elements)
What it means
The cart has a shipped item or needs Discord, which only the full checkout handles. The pay element turns into a Continue to checkout button.
How to fix it
Nothing to fix. Let buyers continue, or use the embed for those products.
brand: "…" refused (Checkout Elements trace)
brand: "…" refused (Checkout Elements trace)
What it means
A style you passed in brand was blocked, because it could hide or move prices or buttons.
How to fix it
Read the reason in the message and use a token or an allowed property instead.
Still stuck?
Check the status page first; if something is down, it’s on our side and we’re on it. Otherwise email [email protected] or ask in Discord. To get an answer on the first reply, include:
- Your store address
- The exact error message, or a screenshot
- The order ID or buyer email, if it’s about an order
- What you clicked right before it happened
Paysum