From 3.9% all in · No monthly fee · Test mode is open today
Issuing a random string on a successful payment takes an afternoon. Then the real requirements arrive: how many machines may activate this key, what happens on a refund, what happens when a subscription lapses, how a customer sees their own keys without emailing you, and how your app checks a key without you running an uptime-critical service you did not plan for.
All of those questions are really the same question — the key has to stay tied to the payment that created it. If the key lives in one system and the payment in another, you end up reconciling them by hand.
And because it is the same API as checkout and subscriptions, a perpetual licence, a subscription that carries a key, and a key with metered usage on top are the same shape of integration rather than three of them.
From 3.9% all in · No monthly fee · Test mode is open today
Yes. Activation limits are part of the key, and validation from your app reflects the current activation state.
The key is revoked as part of the same lifecycle, because it is tied to the order that issued it rather than stored separately.
Yes, in the customer billing portal, so retrieval does not come to you as support.
In test mode, yes, end to end — including connecting a Stripe account. Live payments are not switched on yet.