The gateway charged the customer — but your WooCommerce order is still stuck on “pending payment”. This happens when the confirmation webhook never arrives (firewall, timeout, HTTP 204, live/test key mix-up, a crash right after checkout). The money is captured, the order never fulfils, and you only notice at month-end.
PaidRadar fixes exactly this. It scans your WooCommerce orders that are stuck in pending, on-hold or failed, re-queries the payment gateway’s API (read-only), and — only when the gateway unambiguously reports the payment as captured — completes the order the correct way via WooCommerce’s own payment_complete() flow (stock, status and emails all fire correctly). Every action is written to a full payment audit trail and the admin is alerted.
This is payment recovery, not dunning: it does not chase the customer for a payment that already succeeded, and it does not touch your accounting. It repairs the order state after a missed webhook.
payment_complete() (never a blind status change).Reconciliation plugins push correct orders into your accounting. Dunning plugins email customers to retry a payment. Auto-complete plugins only finish orders WooCommerce already knows are paid. None of them recover an order that was actually paid at the gateway but got stuck because the webhook was missed. PaidRadar does.
Self-hosted. PaidRadar uses the API keys already stored by your Stripe / PayPal plugin to make read-only status calls. No data leaves your store for any third-party PaidRadar service — there is none.
To determine whether a stuck order was actually paid, PaidRadar contacts the payment gateway that processed the order. It uses the API credentials that are already configured in your existing Stripe and/or PayPal plugin — it does not add its own account or send data to any PaidRadar-operated service (there is none).
Stripe
PaidRadar calls the Stripe API (https://api.stripe.com) to read the status of a PaymentIntent when an order placed through the Stripe gateway is stuck. It sends the order’s Stripe PaymentIntent id and authenticates with your Stripe secret key (read-only request; no charge, capture or refund is performed). This happens during a manual “Check now” scan and during the scheduled daily scan, only for candidate orders.
This service is provided by Stripe, Inc. — Terms: https://stripe.com/legal — Privacy Policy: https://stripe.com/privacy
PayPal
PaidRadar calls the PayPal Orders API (https://api-m.paypal.com, or https://api-m.sandbox.paypal.com in sandbox mode) to read the status of an order placed through the PayPal (PPCP) gateway. It first requests an OAuth token using your PayPal client id and secret, then sends the order’s PayPal order id to read its status (read-only request; no capture or refund is performed). This happens during a manual “Check now” scan and during the scheduled daily scan, only for candidate orders.
This service is provided by PayPal, Inc. — Terms: https://www.paypal.com/us/legalhub/useragreement-full — Privacy Policy: https://www.paypal.com/us/legalhub/privacy-full