Troubleshooting sales and checkout
Causes and fixes for the checkout problems creators report most: rejected discount codes, a checkout link that shows a message, missing payment methods, test orders, refunds and failed payments.
This page collects the problems creators report most often with checkouts, discount codes, payment methods and orders, each with its cause and the steps that fix it.
A customer types my discount code and sees "Invalid coupon code"
The checkout shows the same message, Invalid coupon code, for every reason a code cannot be used, so the cause has to be read from the code itself. Open Offers → Discount codes (/discounts), click the code and go through this list:
- The code is switched off. The on/off switch on the code's page has to be on.
- The date window. With Set time limit on, the code works only between Available from and Available to. A code tested before its start date is rejected just like an expired one. Click Edit and move or clear the dates.
- The usage limit is used up. The Redemptions tile reads, for example, 5 / 5. Click Edit and raise Quantity of discount under Set usage limit.
- The code does not cover this product or price. The Applies to tile shows the scope. A code for Selected products works only on those products, and a code limited to specific prices (the Prices field in Edit) only on those prices. The customer may have picked another price on the same checkout.
- The currency is different. A Numeric (fixed amount) code is created in one currency and works only on prices in that currency. Percentage codes work in every currency.
If the customer does not see Add promotion code at all, the field is off for that checkout: open the checkout, go to the Form & UX tab and turn on Show promo code field.
A different message, This code cannot be used here: the discounted price would be below the minimum payment amount., means the code itself is fine, but the price after the discount would be lower than the smallest amount the payment provider accepts. Lower the discount for that price.
How codes are created and edited: Discount codes.
My checkout link shows a message instead of the order form
The message tells you which state the checkout is in.
| What the visitor sees | Cause | Fix |
|---|---|---|
| This offer hasn't been published yet | The checkout is a Draft or was paused. | Open it in Offers → Checkouts (/checkouts) and click Publish checkout. A paid checkout can be published only with a payment gateway connected. |
| The product is inactive | The checkout is Archived. | Share the link of a published checkout of that product, or create a new one: Create a checkout. |
| Selected product not found | The address does not lead to any checkout, for example after a typo. | Open the checkout in the editor and copy the address again with Copy link. |
| This offer has ended | The checkout has an offer deadline and the end time has passed. | Move the date or turn Offer ends at a set time off: Set an offer deadline. |
| Purchases are paused | Your own Zanfia plan or free trial has ended, so checkouts take no orders. | Choose a plan; the checkouts start selling again once the plan is active. Nothing is deleted. See Your free trial and Cancel or resume your Zanfia plan. |
Hiding a product pauses all of its checkouts, and they stay paused after you publish the product again. Publish each checkout yourself with Publish checkout.
Apple Pay or Google Pay does not show on my checkout
The wallet buttons come from Stripe and appear only when four things are true at once.
- Stripe is connected and enabled on the price. Other gateways do not offer Apple Pay or Google Pay.
- Quick payment is on. In the checkout editor open Form & UX and check the switch Quick payment (Apple Pay / Google Pay). Checkouts created before this setting existed start with it off.
- The customer's device can pay this way. Apple Pay needs Safari on an Apple device with a card in the wallet; Google Pay needs Chrome with a saved card. On any other device the buttons stay hidden even though the setting is on.
- The domain of the page is registered in Stripe. Open Integrations → Payments (
/integrations/payments), click Manage on the Stripe card and look at Your domains registered in Stripe. If a domain reads Not registered, click Sync domains. Do the same after you connect or change a custom domain.
The buttons in the editor preview are a mock, so test on the public page. Details: Checkout fields and quick payment and Connect Stripe.
BLIK, Klarna or another payment method is missing on my checkout
A method appears only when the gateway is connected, the gateway is enabled on that price, and the price type and currency allow it. Check in this order:
- Integrations → Payments (
/integrations/payments): the gateway card is under Connected. - The price in the checkout editor (Prices tab): the gateway is switched on for this price.
- The price type: a Subscription or Installments via Stripe price offers card, Apple Pay and Google Pay only, plus recurring BLIK when Tpay is set up for it.
- The currency: BLIK needs a price in PLN, and with Stripe a price in USD or GBP offers card, Apple Pay and Google Pay only.
- The Stripe Manage window: a red dot on BLIK, Przelewy24 or Klarna under Payment method statuses means Stripe has not activated that method on your account. Use Manage payment methods in your Stripe panel to finish it on the Stripe side.
- The checkout's Form & UX tab, Payment methods: the method may sit under Hidden on this checkout. The same list sets the order of the tiles, so this is also where you move BLIK to the top.
The full matrix of methods, price types and currencies is in Payment methods by gateway.
I created an order bump, but customers do not see it
A bump is a separate object that has to be attached to a checkout, and it is shown only for prices it matches.
- Open the paid checkout, stay on the Basics tab and scroll to Order bumps. If the bump is not listed, click Add order bump, choose Select existing and pick it.
- If the bump carries an Unsaved tag, click Save changes in the header. Until then the public page does not change.
- Check Visible for prices. A bump limited to some prices stays hidden when the customer selects another price. Choose Show for all prices to show it always.
- Compare currencies. A bump priced in a different currency than the price the customer selected is not shown.
Free checkouts have no Order bumps section, and order bumps are available on Growth and above. Setup steps: Add an order bump.
My test purchase is not on the Transactions list
Test orders are hidden by default. Open Transactions (/orders), untick Hide test orders above the table and make sure the date range covers the day of the test. Test orders carry a [TEST] tag next to the client's name. They never produce an invoice.
How do I refund an order?
There is no refund button on the Transactions list. A refund is started from the client's access, and it always takes the access away at the same time.
- Open Customers (
/customers), open the client and go to the Access tab. - Open the three-dot menu of the product row and choose Revoke with refund…. The Archive the client form opens. The same form opens from the product's Access tab.
- Under Refund choose Refund of the last payment with the amount. For a subscription keep Cancel your Stripe subscriptions on, so the client is not charged again.
- Click Archive.
The money goes back through the payment gateway and the order gets the status Refunded in Transactions. The refund covers the whole last payment. Refund of the last payment is offered for payments taken through Stripe, PayU and Tpay. For other payments, return the money in your gateway's own panel (or by bank transfer) and choose The funds were manually refunded in the form.
A refund does not correct the invoice: "Remember that if you have issued an invoice for this order, you must manually correct it." Do that in your invoicing system. More on the form: Cancel or revoke a subscription.
A customer got a "payment failed" email. Will Zanfia keep reminding them?
No. When a payment through PayU, Tpay, Paynow, Przelewy24 or PayPal fails, the order gets the status Unpaid and the customer receives one email, "❌ Payment for product failed. [product]", with a button that leads back to the checkout. One email is sent per failed attempt; there is no series of reminders, and nothing more is sent after the customer pays. Some gateways report an unfinished payment as failed only when their own time limit for it runs out, so the email can arrive well after the attempt.
A failed card payment through Stripe shows the error on the checkout page right away and sends no email. Failed subscription renewals work differently: Failed payments and retries.
To turn the emails on or off, open the checkout, switch to the After purchase view, choose Emails & notifications and use Failed payment email to the buyer and Failed payment notification to you.
Customers abandon the checkout, but no recovery email goes out
Recovery emails are not sent on their own until you publish a workflow for them, and they need an email address to write to.
- Open Workflows (
/workflows), open the menu next to New workflow and choose Recover abandoned checkouts. Review the email and publish the workflow. A workflow left as a draft sends nothing. - To write to one person by hand, open the dashboard's Operations view (
/dashboard?view=operations), find the cart under Checkouts and click Recover.
Only visitors who typed their email into the checkout can be recovered. A visitor who has paid or come back to the checkout in the meantime is skipped. Details: Recover abandoned checkouts.
If your problem is not listed here, see Get help and contact support.
Was this article helpful?

