# Kelviq Documentation - [Introduction to kelviq](https://docs.kelviq.com/getstarted/introduction-to-kelviq.md) - [Merchant of Record](https://docs.kelviq.com/getstarted/merchant-of-record.md) - [Payment security and seller funds](https://docs.kelviq.com/getstarted/payment-security-and-seller-funds.md): How Kelviq protects card details, routes payments through Stripe, and handles payouts, account reviews, and migrations - [Fees](https://docs.kelviq.com/getstarted/fees.md): Understand Kelviq's transaction fees and additional charges - [Review Process](https://docs.kelviq.com/getstarted/review-process.md) - [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) - [Products](https://docs.kelviq.com/product-catalog/products.md): Create and manage your high-level product containers - [Plans](https://docs.kelviq.com/product-catalog/plans.md): Configure pricing, features, and deliverables - [Create a feature in Kelviq](https://docs.kelviq.com/product-catalog/create-a-feature.md): Create Boolean, Meter, or Customizable features in the Kelviq dashboard or with the API, then add them to a plan as entitlements. - [One time payments](https://docs.kelviq.com/product-catalog/one-time-payments.md): Charge a flat fee for lifetime access or digital downloads - [Subscriptions](https://docs.kelviq.com/product-catalog/subscriptions.md): Set up recurring billing and understand renewals and failed payments - [Seat based pricing](https://docs.kelviq.com/product-catalog/seat-based-pricing.md): Charge teams for the number of seats they purchase - [Usage based pricing](https://docs.kelviq.com/product-catalog/usage-based-billing.md): Charge customers for the actual work your product performs - [Pay as you go](https://docs.kelviq.com/product-catalog/pay-as-you-go.md): Bill customers each month for the usage they record - [Usage alerts](https://docs.kelviq.com/product-catalog/usage-alerts.md): Configure usage thresholds and receive feature.usage_alert webhooks - [Free plans and trials](https://docs.kelviq.com/product-catalog/free-and-trials.md): Set up lead magnets and trial periods - [Location based pricing](https://docs.kelviq.com/product-catalog/location-based-pricing.md): Set custom prices for specific countries to optimize global conversion - [Digital Downloads](https://docs.kelviq.com/product-catalog/digital-downloads.md): Enable customers to download digital files after purchase - [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 - [Features & Limits (Entitlements)](https://docs.kelviq.com/product-catalog/entitlements.md): Control feature access for your customers - [Discounts](https://docs.kelviq.com/product-catalog/discounts.md): Create coupons and promotional codes - [Tax settings](https://docs.kelviq.com/product-catalog/tax-settings.md): Configure price display rules and B2B exemptions - [Promotions](https://docs.kelviq.com/promotions/overview.md): Boost global sales with purchasing power parity and country-specific discounts - [Create a promotion](https://docs.kelviq.com/promotions/create-a-promotion.md): Set up purchasing power parity discounts, country overrides, and security enforcement - [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 - [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 - [Configuration & Customization](https://docs.kelviq.com/checkout/checkout-configuration.md): Configure and customize checkout experiences for your customers - [Customize a static checkout URL](https://docs.kelviq.com/checkout/static-checkout-url.md): Choose plans, set a billing period, attach a customer, apply a discount, and control the success redirect in a Kelviq checkout link - [Apply a discount code at checkout](https://docs.kelviq.com/checkout/apply-a-discount-code.md): Let customers enter a discount code or pre-apply one to a Kelviq checkout - [Add metadata to checkout](https://docs.kelviq.com/checkout/checkout-metadata.md): Attach your own IDs and context to a checkout session, then read them from the checkout.completed webhook - [Orders](https://docs.kelviq.com/sales/orders.md): Track revenue and manage individual customer purchases - [Create a one-time charge](https://docs.kelviq.com/sales/create-a-one-time-charge.md): Charge a customer's saved payment method without sending them through checkout - [Checkout Sessions](https://docs.kelviq.com/sales/checkout-sessions.md): Monitor live traffic and debug failed purchase attempts - [Abandoned cart recovery](https://docs.kelviq.com/sales/abandoned-cart-recovery.md): Automatically remind customers who start checkout but do not pay - [Overview](https://docs.kelviq.com/coustomers-management/overview.md): View and manage customer details, subscriptions, and entitlements. - [Overview](https://docs.kelviq.com/payouts/overview.md): Connect your bank account and track cash flow - [Transactions](https://docs.kelviq.com/payouts/transactions.md): Audit individual payments, fees, and net earnings - [Payout Settings](https://docs.kelviq.com/payouts/payout-account.md): Manage bank accounts and transfer schedules - [Customer portal](https://docs.kelviq.com/customer-portal/overview.md): A self-serve hub for your customers to manage subscriptions and access content. - [Managing payment methods](https://docs.kelviq.com/customer-portal/managing-payment-methods.md): How your customers add, update, and remove payment methods - [Sandbox](https://docs.kelviq.com/guides/sandbox.md): Build and test your Kelviq integration without affecting production data or processing real payments - [Migrate from Cashfree](https://docs.kelviq.com/guides/migrate-from-cashfree.md): Get help moving from Cashfree to Kelviq - [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. - [MCP Server](https://docs.kelviq.com/guides/mcp-server.md): Control Kelviq from Claude, Cursor, and any AI assistant that speaks the Model Context Protocol. - [Buyer Terms](https://docs.kelviq.com/legal/buyer-terms.md): Terms and conditions for buyers purchasing through Kelviq - [Seller Terms](https://docs.kelviq.com/legal/seller-terms.md): Platform Terms of Service for sellers using Kelviq - [Seller Agreement](https://docs.kelviq.com/legal/master-service-agreement.md): Master Service Agreement for sellers using the Kelviq platform - [Transaction Flow](https://docs.kelviq.com/legal/compliant-user-flow.md): End-to-end user flow documentation for the Kelviq Merchant of Record platform - [Acceptable Use Policy](https://docs.kelviq.com/legal/approved-prohibited-policy.md): Kelviq's policy on approved, restricted, and prohibited business categories - [Payment Processing](https://docs.kelviq.com/legal/payment-flow-diagram.md): Stripe Connect integration and payment flow documentation for Kelviq - [Introduction](https://docs.kelviq.com/api-reference/introduction.md): Base URLs, environments, and authentication for the Kelviq API - [Authentication](https://docs.kelviq.com/api-reference/authentication.md): Authenticate securely with environment-scoped Kelviq API keys - [List customers](https://docs.kelviq.com/api-reference/customers/list-customers.md): Retrieves a paginated list of customers for your organization, ordered by creation date (newest first). You can search across the customer's name, email and `customerId`. - [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`. - [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. - [List checkout sessions](https://docs.kelviq.com/api-reference/checkout-sessions/list-checkout-sessions.md): Returns a paginated list of checkout sessions for the authenticated organization, newest first. - [Retrieve a checkout session](https://docs.kelviq.com/api-reference/checkout-sessions/retrieve-a-checkout-session.md): Returns a single checkout session by ID, including the order, subscription, and payment method it produced (if any). - [List checkout session events](https://docs.kelviq.com/api-reference/checkout-session-events/list-checkout-session-events.md): Returns a paginated list of timeline events for a checkout session (e.g. session created, customer details updated, payment attempted, payment completed), newest first. - [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. - [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) - [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. - [List transactions](https://docs.kelviq.com/api-reference/transactions/list-transactions.md): Returns a paginated list of financial transactions for the authenticated organization, ordered newest first. Each transaction includes an itemized Merchant of Record fee breakdown when applicable. - [List orders](https://docs.kelviq.com/api-reference/orders/list-orders.md): Returns a paginated list of orders for the authenticated organization, newest paid first. Orders in `PENDING` status (payment never attempted/completed) and orders with no attached customer are never included. - [Retrieve an order](https://docs.kelviq.com/api-reference/orders/retrieve-an-order.md): Returns a single order by ID. - [List order events](https://docs.kelviq.com/api-reference/order-events/list-order-events.md): Returns a paginated list of timeline events for an order (e.g. order created, order completed, order receipt sent, invoice paid), newest first. This includes every order tied to the same underlying subscription as the given order, not just that single order record. - [List invoices](https://docs.kelviq.com/api-reference/invoices/list-invoices.md): Returns a paginated list of invoices for the authenticated organization, newest first. Optionally filter by subscription or customer. - [Retrieve an invoice](https://docs.kelviq.com/api-reference/invoices/retrieve-an-invoice.md): Retrieves an invoice by its Kelviq invoice ID. - [List webhook logs](https://docs.kelviq.com/api-reference/webhooks/list-webhook-logs.md): Returns a paginated list of webhook delivery attempts (including retries) for the authenticated organization, newest first. Results are always limited to the trailing 30 days — `start_date`/`end_date` can narrow that window further but can't widen it beyond 30 days back. Note that `start_date`/`end_… - [List refunds](https://docs.kelviq.com/api-reference/refunds/list-refunds.md): Returns a paginated list of refunds for the authenticated organization, ordered newest first. - [Create a refund](https://docs.kelviq.com/api-reference/refunds/create-a-refund.md): Creates a full or partial refund for an order owned by the authenticated organization. Specify either `amountUnits` or `amount` for a partial refund; omit both to refund the entire remaining refundable balance. The amount must be positive and cannot exceed the order's remaining refundable balance. - [Retrieve a refund](https://docs.kelviq.com/api-reference/refunds/retrieve-a-refund.md): Returns a refund owned by the authenticated organization. - [Create a charge](https://docs.kelviq.com/api-reference/charges/create-a-charge.md): Creates a one-time charge billed immediately against the customer's default payment method, without requiring a checkout session. - [List Subscriptions](https://docs.kelviq.com/api-reference/subscriptions/list-subscriptions.md): Retrieves a paginated list of subscriptions. Optionally filter the results by customer or status. - [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. - [Retrieve a Subscription](https://docs.kelviq.com/api-reference/subscriptions/retrieve-a-subscription.md): Retrieves a subscription by its Kelviq subscription ID. - [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. Set `paymentBehavior` to `activate_on_payment` when the change should take effect only after payment succeeds. - [Preview a subscription update](https://docs.kelviq.com/api-reference/subscriptions/preview-a-subscription-update.md): Calculates the recurring price, next invoice line items and total, and any amount that would be charged immediately for a proposed subscription update. The request uses the same plan, charge-period, and feature fields as [Update a subscription](/api-reference/subscriptions/update-a-subscription). Th… - [Cancel a subscription](https://docs.kelviq.com/api-reference/subscriptions/cancel-a-subscription.md): Cancels an active subscription for a customer. - [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 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. - [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. The selected customer must have an email address because the signed session token is tied to that email. - [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. - [Create a product](https://docs.kelviq.com/api-reference/products/create-a-product.md): Creates a new product. - [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. - [Archive a product](https://docs.kelviq.com/api-reference/products/archive-a-product.md): Soft-deletes (archives) the product. Already-archived products return 400. - [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`. - [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. - [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. - [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. - [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`. - [Retrieve a feature](https://docs.kelviq.com/api-reference/features/retrieve-a-feature.md) - [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. - [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. - [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. - [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. - [Archive a plan](https://docs.kelviq.com/api-reference/plans/archive-a-plan.md): Archives all versions of the plan (sets `isArchived=true`). - [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. - [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. - [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. - [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. - [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. - [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. - [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. - [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. - [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. - [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. - [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. - [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. - [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`. - [List payment methods](https://docs.kelviq.com/api-reference/payment-methods/list-payment-methods.md): Returns a paginated list of saved payment methods for the authenticated organization, ordered by creation date (newest first). Only payment methods with status `succeeded` are included. Narrow results with `customer_id` and/or `customer_email`. - [Python SDK](https://docs.kelviq.com/backend-integration/python-sdk.md): Documentation for the Kelviq Python SDK - [Node SDK](https://docs.kelviq.com/backend-integration/node-sdk.md): Documentation for the Kelviq Node SDK - [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 - [JavaScript SDK](https://docs.kelviq.com/frontend-integration/js-sdk.md): Documentation for the Kelviq JavaScript SDK - [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 - [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 - [Kelviq CLI](https://docs.kelviq.com/cli/overview.md): Pricing-as-code for Kelviq — define your products, features, and plans in TypeScript and sync them with your account from the terminal. - [Command reference](https://docs.kelviq.com/cli/commands.md): Every Kelviq CLI command, flag by flag. - [kelviq.config.ts reference](https://docs.kelviq.com/cli/kelviq-config.md): The pricing-as-code file format: builders, fields, and the rules that keep it portable. - [Environments & authentication](https://docs.kelviq.com/cli/environments.md): How the CLI targets sandbox vs. production, where keys live, and how to authenticate in CI. - [App](https://docs.kelviq.com/changelog/app.md): Changelog for the Kelviq Dashboard - [JS SDK](https://docs.kelviq.com/changelog/js-sdk.md): Changelog for @kelviq/js-sdk - [React SDK](https://docs.kelviq.com/changelog/react-sdk.md): Changelog for @kelviq/react-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) - [JS Promotions UI](https://docs.kelviq.com/changelog/js-promotions-ui.md): Changelog for @kelviq/js-promotions-ui - [MCP Server](https://docs.kelviq.com/changelog/mcp-server.md): Changelog for @kelviq/mcp-server - [API](https://docs.kelviq.com/changelog/api.md): Changelog for the Kelviq API ## OpenAPI Specs - [openapi](/api-reference/openapi.json)