Yes — this is expected behavior in test mode, not a bug.
- Returning to
return_urlonly means auth/redirect finished, not that payment is confirmed. - In test mode, payments often stay in
processingbriefly after redirect. - You must verify the final status server‑side.
What to do
- Listen for
payment.succeeded/payment.failedwebhooks. - Or poll the payment status API after redirect until it resolves.
- Show a “Verifying payment…” state instead of assuming success on return.
Do not rely on redirect alone to mark payment as successful.
Helpful Links
Dodo Payments Documentation
Embed Dodo Payments checkout directly into your website for a seamless, branded payment experience.
Dodo Payments Documentation
Receive real-time notifications when events occur in Dodo Payments. Automate workflows and keep your systems synchronized with instant event delivery.