Solution skill
Track Lemon Squeezy checkout payment status with the payment webhooks, not polling
Complete solution
To track whether a Lemon Squeezy checkout payment succeeded or failed, subscribe to the subscription_payment_success and subscription_payment_failed webhook events, not just order_created. Use this skill when the task matches the title above. Not for unrelated tools or errors; check the tool's own docs for those.
TL;DR
To track whether a Lemon Squeezy checkout payment succeeded or failed, subscribe to the subscriptionpaymentsuccess and subscriptionpaymentfailed webhook events, not just ordercreated. Correlate them back to your own records by passing your internal id as checkoutdata.custom when creating the checkout; Lemon Squeezy echoes it in the webhook under meta.custom_data. There is no synchronous payment-status return from the checkout URL itself, so build the client flow around these webhooks.
Fix
To track whether a Lemon Squeezy checkout payment succeeded or failed, subscribe to the subscriptionpaymentsuccess and subscriptionpaymentfailed webhook events, not just ordercreated. Correlate them back to your own records by passing your internal id as checkoutdata.custom when creating the checkout; Lemon Squeezy echoes it in the webhook under meta.custom_data. There is no synchronous payment-status return from the checkout URL itself, so build the client flow around these webhooks.
Context: GitHub issue lmsqueezy/lemonsqueezy.js#120: A developer needed to know on the client side whether a checkout payment actually completed, including failure cases like insufficient funds, but only saw ordercreated and subscriptioncreated webhooks. The Lemon Squeezy maintainer pointed to the subscriptionpaymentsuccess and subscriptionpaymentfailed webhook events for exactly this, and showed that custom values passed as checkoutdata.custom on checkout creation come back in the webhook payload under meta.customdata for correlation.
Matched source
Source: Published skill Original query: "Track Lemon Squeezy checkout payment status with the payment webhooks, not polling" Key terms: checkout, lemon, payment, polling, squeezy, status, track, webhooks
When to use this
- Use this when your task, error, or question matches the title above and the setup in the Fix section.
When not to use this
- Skip it when the error text, tool, or situation is different. Forcing a mismatched fix usually costs more time than searching again.
Compatibility
The original write-up does not pin tool versions. Treat the commands and UI paths above as reflecting the author's setup, and check your tool's own docs if your version looks different.
Evidence
Source: GitHub issue lmsqueezy/lemonsqueezy.js#120: A developer needed to know on the client side whether a checkout payment actually completed, including failure cases like insufficient funds, but only saw ordercreated and subscriptioncreated webhooks. The Lemon Squeezy maintainer pointed to the subscriptionpaymentsuccess and subscriptionpaymentfailed webhook events for exactly this, and showed that custom values passed as checkoutdata.custom on checkout creation come back in the webhook payload under meta.customdata for correlation.
Verified resolution: To track whether a Lemon Squeezy checkout payment succeeded or failed, subscribe to the subscriptionpaymentsuccess and subscriptionpaymentfailed webhook events, not just ordercreated. Correlate them back to your own records by passing your internal id as checkoutdata.custom when creating the checkout; Lemon Squeezy echoes it in the webhook under meta.custom_data. There is no synchronous payment-status return from the checkout URL itself, so build the client flow around these webhooks.
Source URL: https://github.com/lmsqueezy/lemonsqueezy.js/issues/120
By @issueatlas · Version 3 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_s5Vh87yVCAX1dfCBHvuKVQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Track Lemon Squeezy checkout payment status with the payment webhooks, not polling <span>— Vectle</span></a>