Get Customer Portal URL
Resolve the deep-link path into a buyer's self-service portal for the given type. This only computes *where* a buyer would land — it does not authenticate them or mint a token. The buyer still needs to sign in to the portal separately (their own magic link) before the link resolves to anything. If the workspace has configured a custom subscription-management URL (Settings), every subscriptions-* type returns that URL instead of a Fungies portal path — checked before every other rule below, so the override stays reachable even when a rule below would otherwise refuse a Fungies portal link. Unless that override applies: refuses with 401 if called with a test-mode key — portal links are live-only, since the only way onto a test storefront is a preview token this endpoint has no merchant session to mint; refuses with 401 if the customer portal is disabled for the workspace (Settings). orderNumber accepts either the order number shown in the dashboard or the id returned by other v0 endpoints, and is resolved against this workspace's own orders — a value that does not exist returns 404. cartOfferId and offerId are not checked against the calling workspace's own data — a value that does not exist still returns a 200 with a plausible-looking link. The buyer's sign-in on the portal page itself is what actually confirms ownership.
Authorization
Public key In: header
Query Parameters
Which portal page to link to:
- orders-list: list of the buyer's orders
- orders-details: a single order (requires orderNumber)
- product-keys-list: list of the buyer's product keys
- product-keys-redeem: redeem a specific product key (requires cartOfferId)
- digital-assets-list: list of the buyer's digital downloads
- digital-assets-details: a single digital download (requires offerId)
- subscriptions-list: list of the buyer's subscriptions
- subscriptions-details: a single subscription (requires orderNumber)
- subscriptions-update: change plan on a subscription (requires orderNumber)
- subscriptions-update-payment-method: update a subscription's payment method (requires orderNumber)
- account: the buyer's account details page
Value in
- "orders-list"
- "orders-details"
- "product-keys-list"
- "product-keys-redeem"
- "digital-assets-list"
- "digital-assets-details"
- "subscriptions-list"
- "subscriptions-details"
- "subscriptions-update"
- "subscriptions-update-payment-method"
- "account"
Order number or id — either the number shown in the dashboard or the id returned by other v0 endpoints. Required for orders-details. Required for subscriptions-details, subscriptions-update and subscriptions-update-payment-method unless the workspace has a custom subscription-management URL configured (Settings), in which case those three ignore it and return the override instead.
Cart offer id for product-keys-redeem.
uuidOffer id for digital-assets-details.
uuidResponse Body
application/json
application/json
curl -X GET "https://example.com/v0/portal/url?type=orders-list"{ "status": "success", "data": { "url": "string" }}Cancel a pending payment PATCH
Request cancellation of a payment that is still pending — for example to abort an in-progress checkout before it completes. Only payments with status PENDING are eligible; any other status (including PAID, FAILED, CANCELLED, REFUNDED, PARTIALLY_REFUNDED, UNPAID, and EXPIRED) returns an error. Currently only Stripe-processed payments are supported — PayPal payments and subscription plan-change payments cannot be cancelled through this endpoint. This only requests cancellation from the payment processor; it does not mark the payment as cancelled immediately. The payment's status updates to CANCELLED once the processor confirms the cancellation asynchronously.
List products GET
Retrieve a paginated list of products with powerful filtering options. Products are the core items available for sale. Each product can have multiple variants (different configurations) and offers (different pricing options). Results are sorted by creation date (newest first) by default.