
Common Issues and Fixes
| Symptom | Most Likely Cause | Fix |
|---|---|---|
| Customer paid online but no order in dashboard | Webhook not configured or webhook secret mismatch | Verify webhook endpoint and signing secret in Stripe Dashboard → Developers → Webhooks |
| Payment type not showing on POS | Payment type is inactive | Go to Manage → Payment Types and toggle Active on |
| Stripe shows “Invalid API Key” | Wrong key type or incomplete key | Re-enter the full key starting with sk_live_ or sk_test_ — do not mix test and live keys |
| Payment goes through but order is duplicate | Both webhook and redirect paths fired | This is expected — DuitPOS deduplicates automatically. Only one order is created |
| Online checkout page not loading | Stripe not connected or no active online payment type | Ensure a Stripe processor is added and saved under an Active payment type |
| Card declined | Insufficient funds, wrong CVC, or expired card | Customer must retry with a different card. Check Stripe Dashboard → Payments for the exact decline reason |
| Webhook deliveries failing (Stripe shows 4xx errors) | Endpoint URL is wrong or server is unreachable | Verify the endpoint URL in Stripe matches your tenant domain exactly |
| Refund not appearing in dashboard | Refund processed in Stripe but not recorded in DuitPOS | Process refunds from within DuitPOS (ticket detail → Refund) to keep records in sync |
Online Payment Not Completing
Symptom: Customer paid but no order appears in the dashboard.Check the Stripe Dashboard
Go to dashboard.stripe.com → Payments. Find the payment and check its status. If it shows as Succeeded there but not in DuitPOS, the issue is in the webhook or redirect path.
Verify the webhook is set up
Go to Developers → Webhooks in Stripe and confirm the endpoint is active. Check Recent Deliveries for failed attempts and the HTTP response codes.
Payment Type Not Appearing on POS
Symptom: A payment type is missing from the POS checkout screen.- Go to Manage → Payment Types and confirm the type is set to Active.
- Reload the POS app after making changes — the POS caches the payment type list.
Stripe Showing “Invalid API Key”
- Confirm you copied the full key (starts with
sk_live_orsk_test_). - Make sure you are not mixing test and live keys — they must both match (test keys for test mode, live keys for production).
- Re-enter the key in Manage → Payment Types → Edit → Processors.
Frequently Asked Questions
How do I issue a refund?
How do I issue a refund?
Open the ticket in the DuitPOS dashboard, click the Refund button, and enter the amount to refund. DuitPOS will process the refund via Stripe (for card/online payments) and record it in the transaction history. Always process refunds from within DuitPOS rather than directly in Stripe to keep your records in sync.
A customer says they were charged but I cannot find the order — what do I do?
A customer says they were charged but I cannot find the order — what do I do?
Search in Stripe Dashboard → Payments by the customer’s email or card last four digits. If the payment is there but not in DuitPOS, the webhook may have failed. Manually create the order in DuitPOS and note the Stripe Payment Intent ID for reconciliation. Then fix the webhook configuration to prevent this from recurring.
Why does the POS show a payment error when processing a card in-store?
Why does the POS show a payment error when processing a card in-store?
In-store card errors depend on your physical card terminal setup, not Stripe (Stripe is for online QR ordering only). Check your EFTPOS terminal’s connection and contact your terminal provider for in-store card errors.
Related
Stripe Setup
Configure Stripe credentials and webhooks
Payment Types
Manage payment methods
QR Code Setup
Set up QR ordering for customers
Reports
View payment breakdowns in reports