How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

BTCPay Server Subscriptions API

Subscription operations

BTCPay Server Subscriptions API is one of 31 APIs that BTCPay Server publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Subscription. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, a JSON-LD context, a GitHub repository, authentication docs, and rate-limit docs.

This API exposes 19 operations across 13 paths, and defines 27 schemas. It is described by OpenAPI 3.0.0, at version v1.

Requests are made against a single base URL, https://{btcpay-host}.

19 operations 13 paths 27 schemas 1 DELETE7 GET8 POST3 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
v1
Base URL
https://{btcpay-host}/api/v1
Authentication
API Key, HTTP Basic
License
Resource Areas
1

Authentication & Security 2

BTCPay Server Subscriptions API declares 2 security schemes for authenticating requests. An API key is passed in the header as Authorization (API_Key). It accepts HTTP basic authentication (Basic). By default, every request must be authenticated.

  • API_Key — BTCPay Server API key. Format: 'token {apiKey}'
  • Basic — HTTP Basic Authentication with email and password

Paths & Operations 19

Across 13 paths, the API surfaces 19 operations — 1 DELETE, 7 GET, 8 POST, 3 PUT. Each is listed below with its method, path, parameters, and response codes.

Subscriptions 19

Subscription operations

GET
/api/v1/stores/{storeId}/offerings/{offeringId}
Get an offering
GetOffering 2 params → 200404
PUT
/api/v1/stores/{storeId}/offerings/{offeringId}
Update an offering
UpdateOffering 2 params body → 200400404
GET
/api/v1/stores/{storeId}/offerings
List offerings for a store
GetOfferings 1 param → 200
POST
/api/v1/stores/{storeId}/offerings
Create an offering
CreateOffering 1 param body → 201400
POST
/api/v1/stores/{storeId}/offerings/{offeringId}/plans
Create an offering plan
CreateOfferingPlan 2 params body → 201400
GET
/api/v1/stores/{storeId}/offerings/{offeringId}/plans/{planId}
Get an offering plan
GetOfferingPlan 3 params → 200404
PUT
/api/v1/stores/{storeId}/offerings/{offeringId}/plans/{planId}
Update an offering plan
UpdateOfferingPlan 3 params body → 200400404
GET
/api/v1/stores/{storeId}/offerings/{offeringId}/subscribers/{customerSelector}
Get a subscriber
GetSubscriber 3 params → 200404
DELETE
/api/v1/stores/{storeId}/offerings/{offeringId}/subscribers/{customerSelector}
Delete a subscriber
DeleteSubscriber 3 params → 204404
GET
/api/v1/stores/{storeId}/offerings/{offeringId}/subscribers/{customerSelector}/credits/{currency}
Get subscriber credit balance
GetCredit 4 params → 200404
POST
/api/v1/stores/{storeId}/offerings/{offeringId}/subscribers/{customerSelector}/credits/{currency}
Update subscriber credit balance
UpdateCredit 4 params body → 200400
POST
/api/v1/stores/{storeId}/offerings/{offeringId}/subscribers/{customerSelector}/suspend
Suspend a subscriber
SuspendSubscriber 3 params body → 200400
POST
/api/v1/stores/{storeId}/offerings/{offeringId}/subscribers/{customerSelector}/unsuspend
Unsuspend a subscriber
UnsuspendSubscriber 3 params → 200400
PUT
/api/v1/stores/{storeId}/offerings/{offeringId}/subscribers/{customerSelector}/dates
Update subscriber dates
UpdateSubscriberDates 3 params body → 200400404
GET
/api/v1/plan-checkout/{checkoutId}
Get a plan checkout
GetPlanCheckout 1 param → 200404
POST
/api/v1/plan-checkout/{checkoutId}
Proceed with a plan checkout
ProceedPlanCheckout 2 params → 200400404
POST
/api/v1/plan-checkout
Create a plan checkout session
CreatePlanCheckout body → 200400
POST
/api/v1/subscriber-portal
Create a subscriber portal session
CreatePortalSession body → 200400
GET
/api/v1/subscriber-portal/{portalSessionId}
Get a subscriber portal session
GetPortalSession 1 param → 200404

Schemas 27

The contract defines 27 schemas that model the data the API accepts and returns. The most detailed are PlanCheckoutModel (21 properties), SubscriberModel (17 properties), OfferingPlanModel (14 properties), CreatePlanCheckoutRequest (13 properties). Each schema is shown below with its type and property counts.

FeatureModel
object
Represents a feature that can be included in an offering or plan.
2 properties 2 required
CreateOfferingModel
object
New offering data to create.
4 properties 1 required
CustomerSelector
string
Flexible identifier for selecting a customer. Supports: customer ID (e.g., custabc123), an email (e.g., user@example.com), or a key/value identity (e.g., Email…
CustomerId
string
Unique identifier of the customer.
CreatePortalSessionRequest
object
Request payload for creating a subscriber portal session.
4 properties
InvoiceId
string
The invoice ID
PortalSessionModel
object
Represents a subscriber portal session used for managing subscriptions, billing, and account details.
6 properties
OfferingId
string
Offering's ID
CreatePlanRequest
object
Request payload for creating a new offering plan.
11 properties
PortalSessionId
string
Identifier of the portal session.
PlanId
string
Plan's ID
PlanCheckoutId
string
Unique identifier of the plan checkout session.
SubscriberModel
object
Represents a subscriber of an offering.
17 properties
OnPayBehavior
string
Defines how the system should behave when payment is processed during a plan checkout or migration. SoftMigration: Starts the plan only if payment is due. If n…
BaseUrl
string
Base URL of the BTCPay Server instance.
CreditModel
object
Represents a subscriber's credit balance in a specific currency.
2 properties
ProblemDetails
object
Description of an error happening during processing of the request
2 properties
CustomerModel
object
Represents a customer associated with a store.
5 properties
PlanCheckoutModel
object
Represents a checkout session for activating or purchasing a subscription plan.
21 properties
CreatePlanCheckoutRequest
object
Request payload for initiating a plan checkout session.
13 properties
OfferingPlanModel
object
Represents a pricing plan for an offering.
14 properties
UpdateCreditRequest
object
Request payload for updating subscriber credit.
4 properties
OfferingModel
UpdateSubscriberDatesRequest
object
Request payload for updating subscriber dates. All fields are optional — omitting a field leaves the corresponding date unchanged.
2 properties
StoreId
string
Store ID of the item
SuspendSubscriberRequest
object
Request payload for suspending a subscriber.
1 property
SubscriptionPhase
string
Lifecycle phase of the subscription.

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

btcpay-subscriptions-api-openapi.yml Raw ↑

Other APIs BTCPay Server publishes across the network.

BTCPay Server API Keys API
BTCPay Server Apps API
BTCPay Server Authorization API
BTCPay Server Crowdfund API
BTCPay Server Files API
BTCPay Server Health API
BTCPay Server Invoices API
BTCPay Server Lightning address API
BTCPay Server Lightning (Internal Node) API
BTCPay Server Lightning (Store) API
BTCPay Server Miscelleneous API
BTCPay Server Notifications (Current User) API
Where this information came from

This is an independent, third-party profile of BTCPay Server Subscriptions API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.