Marketplace apps
Marketplace apps
Sell your web application on the NewRich App Store without handing NewRich pre-generated license keys. Instead, you host a small license API on your app. When a customer checks out, App Store calls your API to issue an email-bound redemption code; the customer registers on your site to activate access.
Offerings are either one-time (lifetime) or recurring (subscription). Your license API must accept additive recurrence fields on every call and implement renew, revoke, reactivate, and sync_management for the subscription and account-management lifecycle. Persist the marketplace order number / manage_url App Store sends so your account settings can deep-link buyers to NewRich subscription management.
Who this is for
| Role | Responsibility |
|---|---|
| App developer | Implement the license API, X-Licensing-Api-Key validation, caller-domain allowlist, and customer registration page |
| NewRich team | Configure your product in App Store admin |
| Customer | Purchases on App Store, receives a redemption code, registers at your app |
End-to-end flow
Customer App Store Your app
| | |
|-- checkout ---->| |
| |-- POST /redemption_codes ->|
| |<-- { code, status } -------|
|<-- email code --| |
|-- register --------------------------------->|
| | | (code + email match)
| |-- POST .../renew --------->| (subscription renewals)
| |-- POST .../revoke -------->| (refund / cancel / past due)
| |-- POST .../reactivate ---->| (restore access)
| |-- POST .../sync_management ->| (backfill manage link)
- Customer completes checkout on App Store.
- App Store sends
POST {license_api_url}/redemption_codeswith the buyer's email, a uniqueorder_id, recurrence fields (access_duration,billing_interval,term), and — when the marketplace order exists —nr_order_uuidandmanage_url. - Your API returns a redemption
code(HTTP 200,success: true). Persistnr_order_uuid/manage_urlwhen present. - App Store emails the code to the customer.
- Customer opens your app at your registration page, enters the code and the same email used at checkout.
- Your app creates their account and grants access. For NewRich-billed subscriptions, your account settings should link buyers to NewRich via
manage_url(see License API).
For subscriptions, App Store later calls renew when a paid period extends, revoke on refund/cancel/past due, and reactivate when access should be restored. Ops may also call sync_management to backfill nr_order_uuid / manage_url on older licenses. Implement all five endpoints.
What you must build
| Deliverable | Example |
|---|---|
| License API | POST /api/v1/redemption_codes (+ renew, revoke, reactivate, sync_management) |
| Recurrence fields | Accept access_duration, billing_interval, and term on every licensing POST |
| Account management link | Persist nr_order_uuid / manage_url; expose Manage subscription → NewRich |
| API key validation | X-Licensing-Api-Key header checked against LICENSING_API_KEY |
| Caller domain allowlist | Reject requests not from apps.newrich.com |
| Registration page | https://dashboard.yourapp.com/register |
Share your license API base URL and customer app URL with the NewRich team when onboarding. NewRich will provide the license API key privately for App Store to send on each request.
Next steps
Read the full contract and implementation checklist in License API.