johnhenry / craft-stripe-reconciler
Finds Stripe payments that went through but never finished in Craft Commerce, checks them with Stripe and completes the orders.
Package info
github.com/john-henry/craft-stripe-reconciler
Type:craft-plugin
pkg:composer/johnhenry/craft-stripe-reconciler
Requires
- php: ^8.2 || ^8.3 || ^8.4
- craftcms/cms: ^5.0
- craftcms/commerce: ^5.0
- craftcms/commerce-stripe: ^5.0
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
- phpstan/phpstan: ^2.2
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-28 11:41:17 UTC
README
Stripe Reconciler for Craft Commerce
A customer pays by card, the money leaves their account, and then they close the tab before the browser makes it back to your site. Stripe has the payment. Craft Commerce knows nothing about it. The order sits there unpaid, or worse, it never became an order at all and is still sitting in the carts table where nobody will ever look at it.
Stripe Reconciler finds those payments, checks each one with Stripe, and finishes the job Commerce would have finished if the browser had come back.
What it actually does
It looks for Stripe transactions that never reached a final state, asks Stripe what really happened to each one, and completes the ones that genuinely succeeded.
The important word there is "asks". Every decision comes from a live PaymentIntent fetched from Stripe at the moment the command runs. Nothing is inferred from what is sitting in your database. An order cannot be marked paid unless Stripe confirms the money arrived, and if Stripe says the payment was never made, the plugin says so and leaves your data alone.
The rule it works to is a simple one: do exactly what Commerce would have done if the customer's browser had returned to the redirect URL, and nothing more.
Documentation
Full documentation is at johnhenry.ie/plugins/stripe-reconciler/docs.
Requirements
- Craft CMS 5.0 or later
- Craft Commerce 5.0 or later
- Craft Commerce Stripe 5.0 or later
- PHP 8.2 or later
Accessibility
How accessible the plugin is, what's been checked, and how to report a problem are all in the accessibility statement.
Support
Need a hand? Open an issue on the GitHub Issues page.
License
Proprietary. Copyright (c) 2026 John Henry Donovan.