Skip to content

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.

16

Create your store

From sign-up to a live store address.

  1. 1. Go to paysum.dev and choose Start selling.
  2. 2. Sign up with your email, then type the 6-digit code we email you.
  3. 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.

  1. 1. Open Products → All products and choose New product.
  2. 2. Give it a name and a price. Add a picture so it looks real in the store.
  3. 3. Under delivery, paste your keys, one per line. Each sale sends one key and removes it from stock.
  4. 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.

  1. 1. Open the product and choose file delivery instead of keys.
  2. 2. Upload the file. Add a note if buyers need instructions, such as a password.
  3. 3. Save. Every buyer gets the file on their order page after paying.

Start accepting payments

Turn on cards, PayPal or crypto.

  1. 1. Open Payments → Payment methods.
  2. 2. For cards, connect Stripe (or another card provider) and paste the keys from that provider’s dashboard.
  3. 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. 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.

  1. 1. Open Discord → Roles, choose Add the Paysum bot and pick your server.
  2. 2. In Discord, open Server settings → Roles and drag the Paysum role above every role it should give.
  3. 3. Back in the dashboard, pick which role each product gives.
  4. 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.

  1. 1. Open Storefront → Domain, type the domain you own (for example shop.example.com) and choose Add domain.
  2. 2. Copy the records the page shows into your domain provider (Namecheap, Cloudflare, GoDaddy…). Copy them exactly.
  3. 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. 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.

  1. 1. Open Marketing → Coupons and choose New coupon.
  2. 2. Type the code buyers will enter, then choose a percentage or a fixed amount.
  3. 3. Optionally set a start date, an end date or a maximum number of uses.
  4. 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.

  1. 1. Open Sales → Orders and search for the buyer’s email.
  2. 2. No order at all: they never finished paying. Ask them to try again.
  3. 3. Order is pending: the payment hasn’t been confirmed yet. Crypto needs network confirmations, which can take a while.
  4. 4. Order is held: Fraud Shield paused it. Open Fraud shield and choose Approve and deliver if it looks fine.
  5. 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.

  1. 1. Refund the payment in the provider they paid with: Stripe, PayPal, Square and so on.
  2. 2. Crypto payments can’t be pulled back. Send the coins back from your wallet yourself if you agree to a refund.
  3. 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.

  1. 1. Open Payments → Wallet to see the crypto your store has received.
  2. 2. Choose how and where you want payouts under Payments → Withdrawals.
  3. 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.

  1. 1. Open Storefront → Themes and pick a theme.
  2. 2. Open Visual builder. Click anything on the preview to change its text, image or colors.
  3. 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.

  1. 1. Open Settings → Team members and choose Invite member.
  2. 2. Type their email and choose what they’re allowed to touch.
  3. 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.

  1. 1. Open Settings → Sale alerts.
  2. 2. Pick where each alert goes (email, phone, Discord or Telegram) for events such as Order completed and Out of stock.
  3. 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.

  1. 1. Open Settings → Import store.
  2. 2. Pick the platform you’re leaving and paste the API key it gives you.
  3. 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.

  1. 1. For a buy button that opens checkout in a popup, use the checkout embed: one script tag and a button.
  2. 2. For a checkout that sits inside your page, styled like your site, use Checkout Elements.
  3. 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.

  1. 1. Open Integrations → API keys and choose New API key.
  2. 2. Tick only the permissions that code needs, such as reading products.
  3. 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.

19

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

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.

What it means

The seller hasn’t switched on any way to pay yet.

How to fix it

  1. 1. Sellers: open Payments → Payment methods and turn at least one on.
  2. 2. Buyers: contact the store. There is nothing you can do on your side.

This payment method is not available right now. Please choose another payment method.

What it means

The payment provider behind this method isn’t connected properly, so it can’t take payments.

How to fix it

  1. 1. Buyers: pick another method.
  2. 2. Sellers: open Payments → Payment methods, open that provider and paste its keys again. Keys stop working when you reset them in the provider’s dashboard.

Invalid coupon code

What it means

No coupon with that code exists in this store.

How to fix it

  1. 1. Buyers: check the spelling. Codes from another store don’t work here.
  2. 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

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

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

What it means

No gift card with that code exists in this store, or it was used up.

How to fix it

  1. 1. Check the code. Gift cards only work in the store that sold them.
  2. 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…

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.

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

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

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.

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.

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 …

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

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. 1. Check the address for typos and refresh.
  2. 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.

What it means

This checkout link was made for one purchase and is either too old or already paid.

How to fix it

  1. 1. Buyers: go back to the site you came from and start again.
  2. 2. Sellers: create a new checkout session for each purchase instead of reusing links.

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. 1. Open Settings → Fraud shield and look at the held order.
  2. 2. Choose Approve and deliver if it looks fine, or reject it.
  3. 3. If good orders keep getting held, loosen the rule that held them.

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.

9

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. 1. In Stripe, open Developers → API keys.
  2. 2. Reveal and copy the Secret key (starts with sk_), not the Publishable key.
  3. 3. Paste it into Paysum and save.

Stripe rejected the key.

What it means

Stripe says the key is wrong, deleted or was rolled.

How to fix it

  1. 1. Copy the key again from Stripe; a missing character is the usual cause.
  2. 2. If you rolled the key in Stripe, the old one stops working. Paste the new one.

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. 1. In Stripe, open Developers → Webhooks and select the endpoint for Paysum.
  2. 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)

What it means

We asked the provider to start the payment and it said no.

How to fix it

  1. 1. Check the keys in Payments are for the right mode. Test keys only work with test payments.
  2. 2. Make sure your account with that provider is fully set up and allowed to take payments.
  3. 3. Check the provider supports your store’s currency.

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.

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

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

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.

What it means

A custom payment provider URL is not secure, or has a password inside it.

How to fix it

  1. 1. Use an address that starts with https://.
  2. 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.

4

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. 1. Open the product and paste more keys.
  2. 2. Send the buyer a key yourself for the order that missed out.
  3. 3. Turn on low-stock notifications so it doesn’t happen again.

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

What it means

The order isn’t paid yet, or the link is wrong.

How to fix it

  1. 1. Crypto payments wait for network confirmations. Give it a little time.
  2. 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.

What it means

You resell this product, and the store you get it from can’t deliver right now.

How to fix it

  1. 1. Open Reselling → Suppliers to see the connection.
  2. 2. Ask the supplier to restock or approve you. Orders deliver once they do.

Discord

Roles that are not given, and bot access.

5

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.

What it means

The bot is missing a permission it needs.

How to fix it

  1. 1. In Discord, open Server settings → Roles → Paysum.
  2. 2. Turn on Manage Roles, Create Invite and Kick Members.
  3. 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.

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. 1. In Discord, open Server settings → Roles and drag the Paysum role above the role it should give.
  2. 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

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.

What it means

Sale notifications to Discord need a webhook link from Discord itself.

How to fix it

  1. 1. In Discord, open the channel settings → Integrations → Webhooks → New webhook.
  2. 2. Copy the webhook URL (starts with https://discord.com/api/webhooks/) and paste it.

Custom domains

Connecting your own web address.

6

Custom domains require Premium on the store owner account

What it means

Your own domain is a Premium feature.

How to fix it

Upgrade the store owner’s account to Premium, then add the domain again.

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.

What it means

The domain is in use by another store or another website host.

How to fix it

  1. 1. If it’s your old store, remove the domain there first.
  2. 2. If it’s another host (Vercel, Netlify, Shopify…), remove it from that project.

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. 1. Copy the TXT record’s name and value from the Domain page.
  2. 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.

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.

What it means

The domain points straight at the server instead of through our protection.

How to fix it

  1. 1. Add the TXT records the Domain page lists.
  2. 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.

6

Invalid email or password

What it means

The email and password don’t match an account.

How to fix it

  1. 1. Check caps lock and the email for typos.
  2. 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

What it means

The 6-digit code is wrong or too old.

How to fix it

  1. 1. Use the newest email only. Asking for a new code makes older ones stop working.
  2. 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.

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

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

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

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.

8

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. 1. Send the header Authorization: Bearer sk_… on every request.
  2. 2. Check the key in Integrations → API keys is enabled and not expired. Create a new one if needed.

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

What it means

This key made too many requests this hour.

How to fix it

  1. 1. Wait the number of seconds in the Retry-After header, then retry.
  2. 2. Cache answers you ask for often, such as the product list.

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. 1. Read the message field. It names the field or product that’s wrong.
  2. 2. Check you’re using IDs from the same store the key belongs to.

build_failed

What it means

Your theme code doesn’t compile, so it wasn’t published.

How to fix it

  1. 1. The message lists the first errors with file and line. Fix those.
  2. 2. Run paysum watch to see errors as you save, before publishing.

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. 1. Verify against the raw request body, before any JSON parsing.
  2. 2. Use the signing secret from Integrations → Webhooks for that endpoint, not an API key.
  3. 3. Make sure your server clock is right; signatures older than a few minutes are rejected.

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)

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