# Kelviq Documentation ## Docs - [Authentication](https://docs.kelviq.com/api-reference/authentication.md) - [Create a checkout session](https://docs.kelviq.com/api-reference/checkout/create-a-checkout-session.md): Creates a new checkout session for a customer to proceed with a purchase or subscription. - [Create a customer](https://docs.kelviq.com/api-reference/customers/create-a-customer.md): Creates a new customer record within kelviq. - [Update a customer](https://docs.kelviq.com/api-reference/customers/update-a-customer.md): Performs a partial update on an existing customer using their client-defined `customerId`. - [Retrieve customer entitlements](https://docs.kelviq.com/api-reference/entitlements/retrieve-customer-entitlements.md): Retrieves detailed entitlement information for a customer. - If `feature_id` is provided as a query parameter, returns details for that specific feature. - If `feature_id` is omitted, returns all entitlements for the customer. - [Archive a feature](https://docs.kelviq.com/api-reference/features/archive-a-feature.md): Soft-deletes the feature and updates any published pricing tables that referenced it. - [Create a feature](https://docs.kelviq.com/api-reference/features/create-a-feature.md): Creates a new feature. For METER features, `featureDetails` must include a `featureSubType` (PRE_AGGREGATED_USAGE or RAW_EVENTS) and `units`. RAW_EVENTS additionally requires a `meter` object with `aggregation` and `filters`. - [List features](https://docs.kelviq.com/api-reference/features/list-features.md): Returns a paginated list of features for the organization. Archived features are excluded. - [Retrieve a feature](https://docs.kelviq.com/api-reference/features/retrieve-a-feature.md) - [Activate License](https://docs.kelviq.com/api-reference/license/activate-license.md): Activates a license key for a specific instance. - [Deactivate License](https://docs.kelviq.com/api-reference/license/deactivate-license.md) - [Validate License](https://docs.kelviq.com/api-reference/license/validate-license.md) - [Generate a presigned upload URL](https://docs.kelviq.com/api-reference/media/generate-a-presigned-upload-url.md): Returns a presigned S3 POST policy that lets you upload a single file directly to kelviq's storage bucket (max 5 GB, expires in 1 hour). Use the returned `fileKey` as the value of `imageKeys` / `fileKeys` on the catalog product/plan endpoints. - [Get Product Offering](https://docs.kelviq.com/api-reference/monetization/get-product-offering.md): Retrieves the public pricing details for a specific product, including all eligible plans, localized pricing, and the customer's current subscription state. Use this to render a pricing page or paywall scoped to a product. - [Get a partner organization by external ID](https://docs.kelviq.com/api-reference/partner/get-a-partner-organization-by-external-id.md): Retrieve a single organization owned by the authenticated partner using the partner-side `externalId`. - [Get a partner organization by identifier](https://docs.kelviq.com/api-reference/partner/get-a-partner-organization-by-identifier.md): Retrieve a single organization owned by the authenticated partner, looked up by its kelviq UUID. - [List partner organizations](https://docs.kelviq.com/api-reference/partner/list-partner-organizations.md): Returns organizations owned by the authenticated partner. Optionally filter by the partner-side `externalId`. - [Provision an organization](https://docs.kelviq.com/api-reference/partner/provision-an-organization.md): Creates a new kelviq user + organization on behalf of the partner, issues API keys, and emails the user a link to set their password. Fails with `409` if `email` belongs to an existing kelviq user, or with `400` if `externalId` already exists for this partner. - [Add plan entitlements](https://docs.kelviq.com/api-reference/plan-entitlements/add-plan-entitlements.md): Appends one or more feature entitlements to the plan. If the plan's latest version is published, a new draft version is created automatically. - [Delete plan entitlement](https://docs.kelviq.com/api-reference/plan-entitlements/delete-plan-entitlement.md): Removes the named feature from the plan's entitlements. A new draft version is created if the latest is published. - [List plan entitlements](https://docs.kelviq.com/api-reference/plan-entitlements/list-plan-entitlements.md): Returns the feature entitlements (with per-entitlement `details`) configured on the plan. - [Update plan entitlement](https://docs.kelviq.com/api-reference/plan-entitlements/update-plan-entitlement.md): Updates only the `details` (value, reset, hardLimit, rollover, etc.) of one feature entitlement on the plan. A new draft version is created if the latest is published. - [Delete a plan file](https://docs.kelviq.com/api-reference/plan-files/delete-a-plan-file.md): Deletes the plan file. If the plan's latest version is published, a new draft version is created and the file is removed from the new draft. - [Download a plan file](https://docs.kelviq.com/api-reference/plan-files/download-a-plan-file.md): Public download endpoint for a plan file. Responds with a 302 redirect to a short-lived forced-download URL on the storage backend. Returns 404 if the file does not exist. - [Update a plan file](https://docs.kelviq.com/api-reference/plan-files/update-a-plan-file.md): Updates display metadata on a plan file (name, ordering, enabled). If the plan's latest version is published, a new draft version is created and the file is updated on the new draft. - [Archive a plan](https://docs.kelviq.com/api-reference/plans/archive-a-plan.md): Archives all versions of the plan (sets `isArchived=true`). - [Create a plan](https://docs.kelviq.com/api-reference/plans/create-a-plan.md): Creates a new plan against a product. The new plan starts as an unpublished draft (`isLatest=false`) until `POST /plans/{identifier}/publish/` is called. - [Discard draft plan](https://docs.kelviq.com/api-reference/plans/discard-draft-plan.md): Permanently deletes the latest draft (non-published) version of the plan. The previously published version remains untouched. Returns 400 if the latest version is already published. - [List plan prices](https://docs.kelviq.com/api-reference/plans/list-plan-prices.md): Returns the prices configured on the plan (one per currency), each with its full per-feature charge configuration. - [List plans](https://docs.kelviq.com/api-reference/plans/list-plans.md): Returns one row per plan identifier, picking the most recent version for each. Archived plans, or plans on archived products, are excluded. - [Publish a plan](https://docs.kelviq.com/api-reference/plans/publish-a-plan.md): Promotes the most recent draft version of the plan to `isLatest=true`, demotes the previous published version, and syncs the plan to Stripe / internal billing. Optionally migrates existing customers' features or pricing. Fails with 400 if no price exists or required currencies are missing. - [Retrieve a plan](https://docs.kelviq.com/api-reference/plans/retrieve-a-plan.md): Fetches a plan by identifier. Pass `?version=N` to fetch a specific version; otherwise the latest version is returned. - [Update a plan](https://docs.kelviq.com/api-reference/plans/update-a-plan.md): Partial update. If the latest version is already published (`isLatest=true`), a new draft version is created automatically; otherwise the existing draft is mutated. - [Update plan prices](https://docs.kelviq.com/api-reference/plans/update-plan-prices.md): Atomically replaces the plan's prices with the supplied list. If the plan's latest version is published, a new draft version is created and the new prices are attached to it. Duplicate currencies among PAID prices are rejected. - [Create a portal session](https://docs.kelviq.com/api-reference/portal/create-a-portal-session.md): Creates a new customer portal session, returning a token and URL to redirect the customer to their billing portal. - [Delete a product image](https://docs.kelviq.com/api-reference/product-files/delete-a-product-image.md): Permanently deletes the product image record. - [Update a product image](https://docs.kelviq.com/api-reference/product-files/update-a-product-image.md): Updates image metadata such as `name`, `ordering`, `thumbnail`, or `enabled`. Setting `thumbnail` to true automatically clears the flag on the product's other images. - [Retrieve product settings](https://docs.kelviq.com/api-reference/product-settings/retrieve-product-settings.md): Retrieves the VPN/TOR/proxy and presentation settings for a product. Settings are auto-created if they don't already exist. - [Update product settings](https://docs.kelviq.com/api-reference/product-settings/update-product-settings.md): Updates one or more product settings fields. Changing `currency` re-enables previously disabled prices in the new currency on the latest plans of that product. - [Archive a product](https://docs.kelviq.com/api-reference/products/archive-a-product.md): Soft-deletes (archives) the product. Already-archived products return 400. - [Create a product](https://docs.kelviq.com/api-reference/products/create-a-product.md): Creates a new product. - [List products](https://docs.kelviq.com/api-reference/products/list-products.md): Returns a paginated list of all products in the organization's catalog. Archived products are excluded. - [Retrieve a product](https://docs.kelviq.com/api-reference/products/retrieve-a-product.md): Fetches a product by ID along with its currently published plans. - [Update a product](https://docs.kelviq.com/api-reference/products/update-a-product.md): Partially updates a product. New images and files can be attached by sending temporary S3 keys in `imageKeys` / `fileKeys`. - [Get promotions](https://docs.kelviq.com/api-reference/promotions/get-promotions.md): Resolves the active promotion for the caller's detected location. Returns the applicable discount percentage, coupon code, banner widget configuration, and security check results. - [Report pre-aggregated usage](https://docs.kelviq.com/api-reference/reporting/report-pre-aggregated-usage.md): Reports pre-aggregated feature usage from your application to kelviq. - [Cancel a subscription](https://docs.kelviq.com/api-reference/subscriptions/cancel-a-subscription.md): Cancels an active subscription for a customer. - [Create a subscription](https://docs.kelviq.com/api-reference/subscriptions/create-a-subscription.md): Creates a new subscription for a customer directly, without requiring a checkout session. - [List Subscriptions](https://docs.kelviq.com/api-reference/subscriptions/list-subscriptions.md): Retrieves a paginated list of subscriptions. You can filter the results by customer. - [Update a subscription](https://docs.kelviq.com/api-reference/subscriptions/update-a-subscription.md): Updates an existing subscription to a new plan, charge period, and/or features. - [Node SDK](https://docs.kelviq.com/backend-integration/node-sdk.md): Documentation for the Kelviq Node SDK - [Python SDK](https://docs.kelviq.com/backend-integration/python-sdk.md): Documentation for the Kelviq Python SDK - [App](https://docs.kelviq.com/changelog/app.md): Changelog for the Kelviq Dashboard - [Checkout API](https://docs.kelviq.com/changelog/checkout-api.md): Changelog for Checkout API - [JS Promotions UI](https://docs.kelviq.com/changelog/js-promotions-ui.md): Changelog for @kelviq/js-promotions-ui - [JS SDK](https://docs.kelviq.com/changelog/js-sdk.md): Changelog for @kelviq/js-sdk - [Node SDK](https://docs.kelviq.com/changelog/node-sdk.md): Changelog for @kelviq/node-sdk - [Python SDK](https://docs.kelviq.com/changelog/python-sdk.md): Changelog for kelviq-sdk (Python) - [React SDK](https://docs.kelviq.com/changelog/react-sdk.md): Changelog for @kelviq/react-sdk - [Configuration & Customization](https://docs.kelviq.com/checkout/checkout-configuration.md): Configure and customize checkout experiences for your customers - [Overview](https://docs.kelviq.com/coustomers-management/overview.md): View and manage customer details, subscriptions, and entitlements. - [Customer portal](https://docs.kelviq.com/customer-portal/overview.md): A self-serve hub for your customers to manage subscriptions and access content. - [JavaScript SDK](https://docs.kelviq.com/frontend-integration/js-sdk.md): Documentation for the Kelviq JavaScript SDK - [Promotions UI JS SDK](https://docs.kelviq.com/frontend-integration/promotions-ui-js.md): Add purchasing power parity discounts and a localised banner to any website - [React Promotions UI](https://docs.kelviq.com/frontend-integration/react-promotions-ui.md): Add purchasing power parity discounts and a localised banner to your React app - [React SDK](https://docs.kelviq.com/frontend-integration/react-sdk.md): Documentation for the Kelviq React SDK - [React UI](https://docs.kelviq.com/frontend-integration/react-ui.md): Documentation for the kelviq React UI SDK - A comprehensive pricing table and paywall solution - [Fees](https://docs.kelviq.com/getstarted/fees.md): Kelviq's transparent pricing structure - [Introduction to kelviq](https://docs.kelviq.com/getstarted/introduction-to-kelviq.md) - [Merchant of Record](https://docs.kelviq.com/getstarted/merchant-of-record.md) - [Review Process](https://docs.kelviq.com/getstarted/review-process.md) - [Subscription Integration](https://docs.kelviq.com/guides/subscription-integration.md): A simple guide to add subscription billing to your SaaS in 5 API calls. - [Subscription Integration for Next.js](https://docs.kelviq.com/guides/subscription-integration-for-nextjs.md): A step-by-step guide to add subscription billing and entitlements to your Next.js app. - [Webhooks](https://docs.kelviq.com/guides/webhooks.md): Receive real-time event notifications from Kelviq to your server. - [Acceptable Use Policy](https://docs.kelviq.com/legal/approved-prohibited-policy.md): Kelviq's policy on approved, restricted, and prohibited business categories - [Buyer Terms](https://docs.kelviq.com/legal/buyer-terms.md): Terms and conditions for buyers purchasing through Kelviq - [Transaction Flow](https://docs.kelviq.com/legal/compliant-user-flow.md): End-to-end user flow documentation for the Kelviq Merchant of Record platform - [Seller Agreement](https://docs.kelviq.com/legal/master-service-agreement.md): Master Service Agreement for sellers using the Kelviq platform - [Payment Processing](https://docs.kelviq.com/legal/payment-flow-diagram.md): Stripe Connect integration and payment flow documentation for Kelviq - [Seller Terms](https://docs.kelviq.com/legal/seller-terms.md): Platform Terms of Service for sellers using Kelviq - [Overview](https://docs.kelviq.com/payouts/overview.md): Connect your bank account and track cash flow - [Payout Settings](https://docs.kelviq.com/payouts/payout-account.md): Manage bank accounts and transfer schedules - [Transactions](https://docs.kelviq.com/payouts/transactions.md): Audit individual payments, fees, and net earnings - [Digital Downloads](https://docs.kelviq.com/product-catalog/digital-downloads.md): Enable customers to download digital files after purchase - [Discounts](https://docs.kelviq.com/product-catalog/discounts.md): Create coupons and promotional codes - [Features & Limits (Entitlements)](https://docs.kelviq.com/product-catalog/entitlements.md): Control feature access for your customers - [Free plans and trials](https://docs.kelviq.com/product-catalog/free-and-trials.md): Set up lead magnets and trial periods - [License Key Management](https://docs.kelviq.com/product-catalog/license-keys.md): Generate and manage license keys for your products - [Links](https://docs.kelviq.com/product-catalog/links.md): Share links with your customers - [Location based pricing](https://docs.kelviq.com/product-catalog/location-based-pricing.md): Set custom prices for specific countries to optimize global conversion - [One time payments](https://docs.kelviq.com/product-catalog/one-time-payments.md): Charge a flat fee for lifetime access or digital downloads - [Plans](https://docs.kelviq.com/product-catalog/plans.md): Configure pricing, features, and deliverables - [Products](https://docs.kelviq.com/product-catalog/products.md): Create and manage your high-level product containers - [Subscriptions](https://docs.kelviq.com/product-catalog/subscriptions.md): Set up monthly or yearly billing for ongoing access - [Tax settings](https://docs.kelviq.com/product-catalog/tax-settings.md): Configure price display rules and B2B exemptions - [Usage based pricing](https://docs.kelviq.com/product-catalog/usage-based-billing.md): Charge customers for the actual work your product performs - [Create a promotion](https://docs.kelviq.com/promotions/create-a-promotion.md): Set up purchasing power parity discounts, country overrides, and security enforcement - [Customize the banner](https://docs.kelviq.com/promotions/customize-banner.md): Adjust the appearance and behavior of the Promotions UI banner to match your brand - [Integrate the Promotions UI](https://docs.kelviq.com/promotions/integrate.md): Add the Kelviq promotions banner to your app using HTML/JS, React, or the Direct API - [Promotions](https://docs.kelviq.com/promotions/overview.md): Boost global sales with purchasing power parity and country-specific discounts - [Core concepts](https://docs.kelviq.com/quickstart/core-concepts.md) - [Dashboard setup](https://docs.kelviq.com/quickstart/dashboard-setup.md) - [Integrate with your app](https://docs.kelviq.com/quickstart/integrate-with-your-app.md) - [Checkout Sessions](https://docs.kelviq.com/sales/checkout-sessions.md): Monitor live traffic and debug failed purchase attempts - [Orders](https://docs.kelviq.com/sales/orders.md): Track revenue and manage individual customer purchases ## OpenAPI Specs - [openapi](https://docs.kelviq.com/api-reference/openapi.json)