Unlock paid features without license keys
Connect Stripe, create a payment hook, and let your app subscribe to paid/unpaid state—no licensing server required.
- 3% per transaction
- 99.9% SLA
- 0 license keys
How it works
- Connect your Stripe account via OAuth.
- Create a payment hook and pull payment state in your app (api.payhook.link). See the API docs.
- Start checkout for one-time or subscription prices; users confirm via Stripe Checkout or email link—features unlock automatically.
- For subscribers, open Stripe Customer Portal via
POST …/billing_portal.
Integrate
# Create a payment hook
curl -X POST https://api.payhook.link/v1/payment_hooks \
-H "Stripe-Account: acct_xxx"
# Start checkout (mode derived from Stripe Price)
curl -X POST https://api.payhook.link/v1/payments \
-H "Stripe-Account: acct_xxx" \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","productId":"prod_xxx","priceId":"price_xxx","paymentHookId":"hook_xxx","successUrl":"https://your.app/success","cancelUrl":"https://your.app/cancel"}'
Or use @payhook/unlock-button from
js.payhook.link.
Add header Test-Mode: True for Stripe test mode.
API
All requests need the Stripe-Account header.
POST /v1/payment_hooks— create a hook (pullUrl,billingPortalUrl)POST /v1/payment_hooks/:id/pull— pull payments (Stripe-enriched live)POST /v1/payments— checkout (one-time or subscription)GET /v1/payments/:id/confirm— confirm via email linkPOST /v1/payment_hooks/:id/billing_portal— Stripe Customer Portal