BillingWebhookKit

Lemon Squeezy checkout paid but no download

A paid order with no download is a launch-blocking fulfillment failure. Treat it as a traceable delivery incident: prove paid state, signed webhook receipt, variant mapping, idempotency, private resend, checksum evidence, and refund boundaries.

Generate fulfillment checklist Draft resend email

Paid order delivery triage

Confirm paid state

Check the order is paid, not pending, refunded, disputed, or from the wrong test/live environment. Record order ID and buyer email privately.

Trace order_created

Verify the signed order_created webhook arrived, passed x-signature, returned 2xx, and used the raw request body.

Match product and variant

Confirm the product or variant ID maps to the digital kit expected by the fulfillment code, not an old shell item or inactive price.

Inspect fulfillment output

Find the delivery job, private ZIP or license creation, checksum, email status, and idempotency key before attempting a resend.

Evidence record for safe resend

Keep the public report secret-free. The private support log can hold order references, but public launch evidence should only show safe status and checksums.

{
  "order_state": "paid",
  "event": "order_created",
  "signature_verified": true,
  "variant_match": true,
  "fulfillment_lock": "first_delivery_only",
  "delivery_channel": "private_support_email",
  "download_checksum_recorded": true,
  "resend_public_safe": true
}

Do this before refund review

  1. Confirm the buyer is contacting support from the purchase email or a private order reference.
  2. Check whether the webhook failed, fulfillment failed, the email bounced, or the buyer missed the original email.
  3. Resend through a private support channel only after paid-state verification.
  4. Include checksum instructions so the buyer can prove the ZIP or digital package is intact.
  5. Open refund review only when delivery cannot be completed, the archive is broken, or duplicate purchase evidence is clear.

FAQ

Why is a Lemon Squeezy order paid but no download was delivered?

Common causes include the webhook not firing, an unsigned or rejected order_created event, a product or variant mismatch, fulfillment code waiting for the wrong paid status, duplicate replay locks, failed email delivery, or a private ZIP link that was never sent.

Should access be granted manually after a paid order with no download?

Manual resend is acceptable only after paid-state verification, buyer email confirmation, private delivery, checksum evidence, and an audit note that explains whether the issue was delivery, duplicate purchase, broken archive, or refund review.

Make the paid-order path reviewable

The free tools help isolate the failure. The CNY 69 Pro Kit is for teams that want signed fixtures, replay-safe fulfillment tests, delivery evidence templates, and refund rollback notes packaged before live checkout traffic.