Skip to main content
Use this guide to diagnose and fix the most common payment problems in DuitPOS — from missing online orders to Stripe configuration errors.
Troubleshooting payment issues checklist

Common Issues and Fixes

SymptomMost Likely CauseFix
Customer paid online but no order in dashboardWebhook not configured or webhook secret mismatchVerify webhook endpoint and signing secret in Stripe Dashboard → Developers → Webhooks
Payment type not showing on POSPayment type is inactiveGo to Manage → Payment Types and toggle Active on
Stripe shows “Invalid API Key”Wrong key type or incomplete keyRe-enter the full key starting with sk_live_ or sk_test_ — do not mix test and live keys
Payment goes through but order is duplicateBoth webhook and redirect paths firedThis is expected — DuitPOS deduplicates automatically. Only one order is created
Online checkout page not loadingStripe not connected or no active online payment typeEnsure a Stripe processor is added and saved under an Active payment type
Card declinedInsufficient funds, wrong CVC, or expired cardCustomer 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 unreachableVerify the endpoint URL in Stripe matches your tenant domain exactly
Refund not appearing in dashboardRefund processed in Stripe but not recorded in DuitPOSProcess refunds from within DuitPOS (ticket detail → Refund) to keep records in sync
When diagnosing online payment issues, always start with the Stripe Dashboard → Payments view. The failure reason is almost always visible there, and it saves time versus guessing on the DuitPOS side.

Online Payment Not Completing

Symptom: Customer paid but no order appears in the dashboard.
1

Check the Stripe Dashboard

Go to dashboard.stripe.comPayments. 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.
2

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.
3

Check the Webhook Secret

Go to Manage → Payment Types → Edit and confirm the Webhook Secret matches the one shown in Stripe Dashboard → Webhooks → your endpoint → Signing secret. They must match exactly — copying the secret again from Stripe is the safest approach.

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_ or sk_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

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.
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.
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.

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