Skip to content

paid stays false for one-time ("once") plan despite paidAt and plan being set #355

Description

@sindrebjerga

I tested a one-time purchase ("pro-lifetime", $4.99, interval: "once") in test mode. The payment shows as completed (paidAt is set, plan is correctly populated), but extpay.getUser() still returns paid: false. subscriptionStatus shows "incomplete", which I understood should only gate paid for subscription-interval plans, not one-time purchases, per the docs: "For subscription payments, paid is only true if subscriptionStatus is active."

Full user object:
{ "email": "sindre_b@live.no", "installedAt": "2026-08-20T08:49:08.404Z", "paid": false, "paidAt": "2026-08-20T15:00:44.054Z", "trialStartedAt": null, "subscriptionStatus": "incomplete", "subscriptionCancelAt": null, "plan": { "unitAmountCents": 499, "currency": "usd", "nickname": "pro-lifetime", "interval": "once", "intervalCount": null } }

Is this expected behavior for one-time plans, or a bug?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions