Salable API (v2)
Download OpenAPI specification:Download
Salable is a comprehensive solution tailored for SaaS businesses, streamlining the design and management of pricing models, subscriptions, and licensing.
This documentation is designed to guide you through integrating with Salable's features via our REST API.
- Use HTTP endpoints to access different features.
- Send requests using JSON and receive JSON responses.
Secure your requests by sending your api key on the x-api-key
request header for authentication.
The API Key can be created in the Salable dashboard. Select only the scopes you need will to access. If you're using this in combination with our SDKs be sure to only select read only scopes.
NOTE: If you'd like to use test mode via the API, make sure to use an API key generated in test mode (prefixed with
test_
).
To get up and running, you need to work through the following steps.
- Set up a Salable Account and Organization
- Connect Stripe to Salable (You can skip this for a free product)
- Build your products and plans
- Generate your API key
- Make your first API call with the request header "version" set to "v2"
We use standard HTTP status codes for both success and failure responses.
HTTP Code | What it means |
---|---|
200 | The request was successful and the action has been completed. |
201 | This will be sent for the successful completion of POST requests and indicates that the new item was created, eg. a new license. |
204 | The request was successful, no content to returned. |
206 | The request was partially successful. |
400 | There was a request validation error and the request couldn't be completed. |
401 | There was an authentication problem. If you get this error you should make sure your API key is included in the x-api-key header. |
403 | There was an authorisation issue. If you get this error you should check your API key has the correct scopes and that you're in the right organisation |
404 | The request couldn't be completed as the requested resource(s) doesn't exist. |
500 | A problem on our side. If you experience one of these errors, reach out to us and we will help. |
Get products
Retrieves a list of all products
Authorizations:
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "logoUrl": "string",
- "displayName": "string",
- "organisation": "string",
- "status": "ACTIVE",
- "paid": true,
- "organisationPaymentIntegrationUuid": "de706cee-7950-4ee9-8a0f-3f53493747a4",
- "paymentIntegrationProductId": "string",
- "appType": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}
]
Get a product
Retrieves a specific product by its UUID.
By default, the response does not contain any relational data. If you want to expand the relational data, you can do so with the expand
query parameter.
Authorizations:
path Parameters
productUuid required | string The unique identifier for the product. |
query Parameters
expand | Array of strings Items Enum: "features" "features.featureEnumOptions" "capabilities" "currencies" "currencies.currency" "organisationPaymentIntegration" "plans" "plans.capabilities" "plans.features" "plans.features.feature" "plans.features.enumValue" "plans.currencies" "plans.currencies.currency" Additional properties to expand the product's relations as comma separated values eg |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "logoUrl": "string",
- "displayName": "string",
- "organisation": "string",
- "status": "ACTIVE",
- "paid": true,
- "organisationPaymentIntegrationUuid": "de706cee-7950-4ee9-8a0f-3f53493747a4",
- "paymentIntegrationProductId": "string",
- "appType": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}
Get all plans of a product
Retrieves all the plans associated with a specific product.
By default, the response does not contain any relational data. If you want to expand the relational data, you can do so with the expand
query parameter.
Authorizations:
path Parameters
productUuid required | string The unique identifier for the product. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "status": "ACTIVE",
- "isTest": true,
- "trialDays": 0,
- "evaluation": true,
- "evalDays": 0,
- "organisation": "string",
- "visibility": "string",
- "licenseType": "string",
- "perSeatAmount": 0,
- "interval": "string",
- "length": 0,
- "active": true,
- "planType": "string",
- "pricingType": "string",
- "environment": "string",
- "paddlePlanId": "string",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "salablePlan": true,
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Get product pricing table
Retrieves the pricing table of a specific product.
Authorizations:
path Parameters
productUuid required | string The unique identifier for the product. |
query Parameters
granteeId required | string The unique identifier for the grantee. |
currency | string Uses the currency short name e.g. USD, defaults to the default currency on the Product which the Plan is linked to. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "logoUrl": "string",
- "displayName": "string",
- "organisation": "string",
- "status": "ACTIVE",
- "paid": true,
- "paymentIntegrationProductId": "string",
- "appType": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true,
- "features": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "variableName": "string",
- "status": "ACTIVE",
- "visibility": "string",
- "valueType": "string",
- "defaultValue": "string",
- "showUnlimited": true,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z",
- "sortOrder": 0
}
], - "currencies": [
- {
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "currencyUuid": "cd8aed70-26ae-4fd6-bda6-2518f23cc3e4",
- "defaultCurrency": true,
- "currency": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "shortName": "USD",
- "longName": "United States Dollar",
- "symbol": "$"
}
}
], - "plans": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "status": "ACTIVE",
- "isTest": true,
- "trialDays": 0,
- "evaluation": true,
- "evalDays": 0,
- "organisation": "string",
- "visibility": "string",
- "licenseType": "string",
- "perSeatAmount": 0,
- "interval": "string",
- "length": 0,
- "active": true,
- "planType": "string",
- "pricingType": "string",
- "environment": "string",
- "paddlePlanId": "string",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "salablePlan": true,
- "updatedAt": "2019-08-24T14:15:22Z",
- "grantee": {
- "isLicensed": true,
- "isSubscribed": true
}, - "currencies": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "shortName": "USD",
- "longName": "United States Dollar",
- "symbol": "$"
}
], - "features": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "variableName": "string",
- "status": "ACTIVE",
- "visibility": "string",
- "valueType": "string",
- "defaultValue": "string",
- "showUnlimited": true,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z",
- "sortOrder": 0
}
]
}
]
}
Get product features
Retrieve the list of features for a product
Authorizations:
path Parameters
productUuid required | string The unique identifier for the product. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "variableName": "string",
- "status": "ACTIVE",
- "visibility": "string",
- "valueType": "string",
- "defaultValue": "string",
- "showUnlimited": true,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z",
- "sortOrder": 0
}
]
Get product currencies
Retrieve the list of currencies for a product
Authorizations:
path Parameters
productUuid required | string The unique identifier for the product. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "currencyUuid": "cd8aed70-26ae-4fd6-bda6-2518f23cc3e4",
- "defaultCurrency": true,
- "currency": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "shortName": "USD",
- "longName": "United States Dollar",
- "symbol": "$"
}
}
]
Get product capabilities
Retrieve the list of capabilities for a product
Authorizations:
path Parameters
productUuid required | string The unique identifier for the product. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
Get a plan
Retrieves information about a plan by its UUID.
By default, the response does not contain any relational data. If you want to expand the relational data, you can do so with the expand
query parameter.
Authorizations:
path Parameters
planUuid required | string The unique identifier for the plan. |
query Parameters
expand | Array of strings Items Enum: "capabilities" "capabilities.capability" "features" "features.feature" "features.enumValue" "currencies" "currencies.currency" Additional properties to expand the plan's relations as comma separated values eg |
successUrl | string <uri> The URL to send users to if they successfully complete a purchase. It must be an absolute URL. |
cancelUrl | string <uri> The URL to send users to if the transaction fails. It must be an absolute URL. |
granteeId | string The unique identifier for the grantee. |
member | string The ID of the member who will manage the license. |
promoCode | string Used to pre-fill the promo code in Stripe checkout, use the promo code ID from the Stripe dashboard. Customers cannot edit this field during checkout. If you prefer to allow customers to enter the promo code themselves, use allowPromoCode instead. |
allowPromoCode | string Enum: true false Enables the promo code field in Stripe checkout. Cannot be used with promoCode. |
customerEmail | string <email> Pre-fills the customer email in Stripe checkout |
customerId | string The ID of an existing customer in your payment integration. This will pre-fill the email, card details and postcode at checkout. |
currency | string Uses the currency short name e.g. USD, defaults to the default currency on the Product which the Plan is linked to. |
automaticTax | string Automatically calculate tax on checkout based on customers location and your Stripe settings. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "status": "ACTIVE",
- "isTest": true,
- "trialDays": 0,
- "evaluation": true,
- "evalDays": 0,
- "organisation": "string",
- "visibility": "string",
- "licenseType": "string",
- "perSeatAmount": 0,
- "interval": "string",
- "length": 0,
- "active": true,
- "planType": "string",
- "pricingType": "string",
- "environment": "string",
- "paddlePlanId": "string",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "salablePlan": true,
- "updatedAt": "2019-08-24T14:15:22Z"
}
Get plan features
Retrieve the list of features for a specific plan
Authorizations:
path Parameters
planUuid required | string The unique identifier for the plan. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "featureUuid": "670eca0a-b211-4991-96ad-7061416ed065",
- "value": "-1",
- "enumValueUuid": "8b4cd7f9-d7ab-435e-909e-04c689b8af4a",
- "isUnlimited": true,
- "isUsage": false,
- "pricePerUnit": 0,
- "minUsage": 0,
- "maxUsage": 0,
- "updatedAt": "2023-02-07T14:44:37.433Z",
- "feature": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "variableName": "string",
- "status": "ACTIVE",
- "visibility": "string",
- "valueType": "string",
- "defaultValue": "string",
- "showUnlimited": true,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z",
- "sortOrder": 0
}, - "enumValue": {
- "uuid": "1955081b-204d-4d2a-9c4c-dc042498c2d9",
- "name": "xxxxx",
- "featureUuid": "78720bed-dcc7-4dd6-8dad-336ef552d41d",
- "updatedAt": "2023-11-16T10:41:57.633Z"
}
}
]
Get plan currencies
Retrieve the list of currencies for a specific plan
Authorizations:
path Parameters
planUuid required | string The unique identifier for the plan. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "currencyUuid": "cd8aed70-26ae-4fd6-bda6-2518f23cc3e4",
- "price": 1000,
- "paymentIntegrationPlanId": "plan_NJVQSbjdHWJUSC",
- "currency": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "shortName": "USD",
- "longName": "United States Dollar",
- "symbol": "$"
}
}
]
Get a checkout link for a plan
Retrieves a checkout link for a specific plan. The checkout link can be used by customers to purchase the plan.
Authorizations:
path Parameters
planUuid required | string The unique identifier for the plan. |
query Parameters
successUrl required | string <uri> The URL to send users to if they successfully complete a purchase. It must be an absolute URL. |
cancelUrl required | string <uri> The URL to send users to if the transaction fails. It must be an absolute URL. |
granteeId required | string The unique identifier for the grantee. |
member required | string The ID of the member who will manage the license. |
promoCode | string Used to pre-fill the promo code in Stripe checkout, use the promo code ID from the Stripe dashboard. Customers cannot edit this field during checkout. If you prefer to allow customers to enter the promo code themselves, use allowPromoCode instead. |
allowPromoCode | string Enum: true false Enables the promo code field in Stripe checkout. Cannot be used with promoCode. |
customerEmail | string <email> Pre-fills the customer email in Stripe checkout |
customerId | string The ID of an existing customer in your payment integration. This will pre-fill the email, card details and postcode at checkout. |
currency | string Uses the currency short name e.g. USD, defaults to the default currency on the Product which the Plan is linked to. |
automaticTax | string Automatically calculate tax on checkout based on customers location and your Stripe settings. |
quantity | string Set the amount of seats a customer will pay for in the checkout. This value cannot be lower than the Plan's minimum seat amount. (Only available on per seat plans) |
changeQuantity | string Allows the customer to set how many seats they will purchase in the checkout but will not be able to go below the plan's minimum seat amount. (Only available on per seat plans) |
requirePaymentMethod | string Default: true Enum: true false Setting this value to 'false' means that users can start a Stripe trial without providing a payment method upfront. Payment method will always be required if a subscription has no trial period. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{
}
Get plan capabilities
Retrieve the list of capabilities for a specific plan
Authorizations:
path Parameters
planUuid required | string The unique identifier for the plan. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "capabilityUuid": "38bcc211-a4f1-4e36-8268-b7e55afaaa88",
- "updatedAt": "2023-02-07T14:44:37.433Z",
- "capability": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}
]
Get a pricing table
Retrieves a pricing table by its UUID. This returns all necessary data on a Pricing Table to be able to display it.
Authorizations:
path Parameters
pricingTableUuid required | string The unique identifier for the pricingTable. |
query Parameters
granteeId | string The unique identifier for the grantee. |
currency | string Uses the currency short name e.g. USD, defaults to the default currency on the Product which the Plan is linked to. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "xxxxx",
- "status": "ACTIVE",
- "title": "string",
- "text": "string",
- "theme": "light",
- "featureOrder": "default",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "customTheme": "string",
- "featuredPlanUuid": "6f566d7c-fa97-4ce5-96b0-bc188aa2ef85",
- "updatedAt": "2023-10-03T09:50:57.308Z",
- "features": [
- {
- "pricingTableUuid": "c1291141-b0a8-4318-91e7-07cb28ee36c3",
- "featureUuid": "670eca0a-b211-4991-96ad-7061416ed065",
- "sortOrder": 0,
- "updatedAt": "2023-10-03T09:50:57.308Z",
- "feature": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "feature one",
- "description": "Feature description",
- "displayName": "Boolean Feature Display Name",
- "variableName": "feature_one",
- "status": "ACTIVE",
- "visibility": "public",
- "valueType": "boolean",
- "defaultValue": "false",
- "showUnlimited": false,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2023-10-03T09:50:54.288Z",
- "sortOrder": 0,
- "featureEnumOptions": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "xxxxx",
- "featureUuid": "670eca0a-b211-4991-96ad-7061416ed065",
- "updatedAt": "2023-10-03T09:50:56.422Z"
}
]
}
}
], - "product": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "Sample Product",
- "description": "This is a sample product for testing purposes",
- "displayName": "Sample Product",
- "organisation": "test-org",
- "status": "ACTIVE",
- "paid": false,
- "paymentIntegrationProductId": "string",
- "appType": "CUSTOM",
- "updatedAt": "2023-10-03T09:50:54.288Z",
- "isTest": false,
- "features": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "feature one",
- "description": "Feature description",
- "displayName": "Boolean Feature Display Name",
- "variableName": "feature_one",
- "status": "ACTIVE",
- "visibility": "public",
- "valueType": "boolean",
- "defaultValue": "false",
- "showUnlimited": false,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2023-10-03T09:50:54.288Z",
- "sortOrder": 0,
- "featureEnumOptions": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "xxxxx",
- "featureUuid": "670eca0a-b211-4991-96ad-7061416ed065",
- "updatedAt": "2023-10-03T09:50:56.422Z"
}
]
}
], - "currencies": [
- {
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "currencyUuid": "cd8aed70-26ae-4fd6-bda6-2518f23cc3e4",
- "defaultCurrency": true,
- "currency": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "shortName": "GBP",
- "longName": "Pound Sterling",
- "symbol": "£"
}
}
]
}, - "plans": [
- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "pricingTableUuid": "c1291141-b0a8-4318-91e7-07cb28ee36c3",
- "sortOrder": 0,
- "updatedAt": "2023-10-03T09:50:57.308Z",
- "plan": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "Free Plan Name",
- "description": "Free Plan description",
- "displayName": "Free Plan Display Name",
- "status": "ACTIVE",
- "isTest": false,
- "trialDays": 7,
- "evaluation": false,
- "evalDays": 14,
- "organisation": "test-org",
- "visibility": "public",
- "licenseType": "licensed",
- "perSeatAmount": 1,
- "interval": "month",
- "length": 1,
- "active": true,
- "planType": "standard",
- "pricingType": "paid",
- "environment": "dev",
- "paddlePlanId": "string",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "salablePlan": false,
- "isSubscribed": true,
- "updatedAt": "2023-10-03T09:50:55.253Z",
- "capabilities": [
- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "capabilityUuid": "38bcc211-a4f1-4e36-8268-b7e55afaaa88",
- "updatedAt": "2023-10-03T09:50:57.155Z",
- "capability": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "test_capability",
- "description": "Capability description",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2023-10-03T09:50:54.288Z"
}
}
], - "features": [
- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "featureUuid": "670eca0a-b211-4991-96ad-7061416ed065",
- "value": "xxxxx",
- "enumValueUuid": "8b4cd7f9-d7ab-435e-909e-04c689b8af4a",
- "isUnlimited": false,
- "isUsage": true,
- "pricePerUnit": 10,
- "minUsage": 1,
- "maxUsage": 100,
- "updatedAt": "2023-10-03T09:50:55.253Z",
- "feature": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "feature one",
- "description": "Feature description",
- "displayName": "Boolean Feature Display Name",
- "variableName": "feature_one",
- "status": "ACTIVE",
- "visibility": "public",
- "valueType": "boolean",
- "defaultValue": "false",
- "showUnlimited": false,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2023-10-03T09:50:54.288Z",
- "sortOrder": 0
}, - "enumValue": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "xxxxx",
- "featureUuid": "670eca0a-b211-4991-96ad-7061416ed065",
- "updatedAt": "2023-10-03T09:50:55.253Z"
}
}
], - "currencies": [
- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "currencyUuid": "cd8aed70-26ae-4fd6-bda6-2518f23cc3e4",
- "price": 500,
- "paymentIntegrationPlanId": "plan_OkaQpjaIjoUVYz",
- "currency": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "shortName": "GBP",
- "longName": "Pound Sterling",
- "symbol": "£"
}
}
]
}
}
]
}
Get subscriptions
Retrieves a list of all subscriptions.
Authorizations:
query Parameters
status | string Enum: "active" "canceled" "paused" "trialing" "deleted" "past_due" "incomplete" The status of the subscription. |
string The email of who purchased the subscription. | |
cursor | string A unique identifier for the last item of one page to get the next page. This will be either the |
take | string Default: "20" The number of records to take before or after cursor. A positive or negative in the range of -100 to 100. Use a number below 0 to take the previous records before the cursor. |
expand | Array of strings Items Enum: "product" "plan" Specify the resource fields to expand as comma separated values eg |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "first": "2fa1275f-16fc-4c83-ad1d-bd5fae716244",
- "last": "7ee24cab-37fe-451b-82f6-65831f7c105f",
- "data": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "organisation": "string",
- "paymentIntegrationSubscriptionId": "string",
- "type": "salable",
- "quantity": 1,
- "email": "user@example.com",
- "expiryDate": "2019-08-24T14:15:22Z",
- "lineItemIds": [
- "string"
], - "status": "ACTIVE",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true,
- "cancelAtPeriodEnd": true
}
]
}
Get a subscription
Retrieves the subscription data based on the UUID.
By default, the response does not contain any relational data. If you want to expand the relational data, you can do so with the expand
query parameter.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
query Parameters
expand | Array of strings Items Enum: "product" "product.organisationPaymentIntegration" "product.currencies" "plan.currencies" "customer" Specify the resource fields to expand as comma separated values eg |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "organisation": "string",
- "paymentIntegrationSubscriptionId": "string",
- "type": "salable",
- "quantity": 1,
- "email": "user@example.com",
- "expiryDate": "2019-08-24T14:15:22Z",
- "lineItemIds": [
- "string"
], - "status": "ACTIVE",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true,
- "cancelAtPeriodEnd": true
}
Change a Subscription's Plan
Changes a subscription's plan based on UUID. If the subscription is usage based the requested subscription will be canceled and a new subscription will be created on the plan you are changing to.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
Request Body schema: application/json
planUuid required | string <uuid> The UUID of the Plan to which the Subscription will be moved to |
proration | string Default: "create_prorations" Enum: "create_prorations" "none" "always_invoice" The proration behaviour when moving the Subscription to a different Plan. Note this will only be applicable for subscription's that are not usage based.
|
Responses
Request samples
- Payload
{- "planUuid": "31b83d94-26cd-415b-b46d-d17287e12be9",
- "proration": "create_prorations"
}
Get subscription invoices
Retrieves a list of invoices for a subscription
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "first": "in_xxxx",
- "last": "in_xoxo",
- "hasMore": true,
- "data": [
- {
- "id": "in_xxxx",
- "object": "invoice",
- "account_country": "GB",
- "account_name": "salable.app",
- "account_tax_ids": "string",
- "amount_due": 0,
- "amount_paid": 0,
- "amount_remaining": 0,
- "amount_shipping": 0,
- "application": "ca_xxxx",
- "application_fee_amount": "string",
- "attempt_count": 0,
- "attempted": true,
- "auto_advance": false,
- "automatic_tax": {
- "enabled": false,
- "status": "string"
}, - "billing_reason": "subscription_cycle",
- "charge": "string",
- "collection_method": "charge_automatically",
- "created": 1694521666,
- "currency": "usd",
- "custom_fields": "string",
- "customer": "cus_NlwjXMq7KBOOR2",
- "customer_address": {
- "city": "string",
- "country": "GB",
- "line1": "string",
- "line2": "string",
- "postal_code": "NR13 6UN",
- "state": "string"
}, - "customer_email": "customer@company.com",
- "customer_name": "A NAME",
- "customer_phone": "string",
- "customer_shipping": "string",
- "customer_tax_exempt": "none",
- "customer_tax_ids": [
- "string"
], - "default_payment_method": "string",
- "default_source": "string",
- "default_tax_rates": [
- "string"
], - "description": "string",
- "discount": "string",
- "discounts": [
- "string"
], - "due_date": "string",
- "effective_at": 1694525662,
- "ending_balance": -11,
- "footer": "string",
- "from_invoice": "string",
- "last_finalization_error": "string",
- "latest_revision": "string",
- "lines": {
- "object": "list",
- "data": [
- {
- "id": "il_1NpVh0QQTaDeHd2tKCrxg01G",
- "object": "line_item",
- "amount": -61,
- "amount_excluding_tax": -61,
- "currency": "usd",
- "description": "Unused time on Warm up calculator 2 after 12 Sep 2023",
- "discount_amounts": [
- "string"
], - "discountable": false,
- "discounts": [
- "string"
], - "invoice_item": "ii_1NpVh0QQTaDeHd2tmqwlLPwv",
- "livemode": true,
- "metadata": { },
- "period": {
- "end": 1713962996,
- "start": 1694521666
}, - "plan": {
- "id": "plan_NkBTWal7D8noOb",
- "object": "plan",
- "active": true,
- "aggregate_usage": "string",
- "amount": 99,
- "amount_decimal": "99",
- "billing_scheme": "per_unit",
- "created": 1681934120,
- "currency": "usd",
- "interval": "year",
- "interval_count": 1,
- "livemode": true,
- "metadata": { },
- "nickname": "Pro",
- "product": "prod_NkBLSrAcR0yFKA",
- "tiers_mode": "string",
- "transform_usage": "string",
- "trial_period_days": "string",
- "usage_type": "licensed"
}, - "price": {
- "id": "plan_NkBTWal7D8noOb",
- "object": "price",
- "active": true,
- "billing_scheme": "per_unit",
- "created": 1681934120,
- "currency": "usd",
- "custom_unit_amount": "string",
- "livemode": true,
- "lookup_key": "string",
- "metadata": { },
- "nickname": "Pro",
- "product": "prod_NkBLSrAcR0yFKA",
- "recurring": {
- "aggregate_usage": "string",
- "interval": "year",
- "interval_count": 1,
- "trial_period_days": "string",
- "usage_type": "licensed"
}, - "tax_behavior": "unspecified",
- "tiers_mode": "string",
- "transform_quantity": "string",
- "type": "recurring",
- "unit_amount": 99,
- "unit_amount_decimal": "99"
}, - "proration": true,
- "proration_details": {
- "credited_items": {
- "invoice": "in_1P8ggrDC45Z3guyuDOWAkWUy",
- "invoice_line_items": [
- "il_1N0QjLQQTaDeHd2twY3fnTJz"
]
}
}, - "quantity": 1,
- "subscription": "sub_xxxx",
- "subscription_item": "si_NlwjmwWIcCnR0r",
- "tax_amounts": [
- "string"
], - "tax_rates": [
- "string"
], - "type": "invoiceitem",
- "unit_amount_excluding_tax": "-61"
}
], - "has_more": false,
- "total_count": 3,
- "url": "/v1/invoices/in_xxxx/lines"
}, - "livemode": true,
- "metadata": { },
- "next_payment_attempt": "string",
- "number": "C29E5E45-0014",
- "on_behalf_of": "string",
- "paid": true,
- "paid_out_of_band": false,
- "payment_intent": "string",
- "payment_settings": {
- "default_mandate": "string",
- "payment_method_options": {
- "acss_debit": "string",
- "bancontact": "string",
- "card": {
- "request_three_d_secure": "string"
}, - "customer_balance": "string",
- "konbini": "string",
- "sepa_debit": "string",
- "us_bank_account": "string"
}, - "payment_method_types": "string"
}, - "period_end": 1694521666,
- "period_start": 1682340596,
- "post_payment_credit_notes_amount": 0,
- "pre_payment_credit_notes_amount": 0,
- "quote": "string",
- "receipt_number": "string",
- "rendering": "string",
- "rendering_options": "string",
- "shipping_cost": "string",
- "shipping_details": "string",
- "starting_balance": 0,
- "statement_descriptor": "string",
- "status": "paid",
- "status_transitions": {
- "finalized_at": 1694525662,
- "marked_uncollectible_at": "string",
- "paid_at": 1694525662,
- "voided_at": "string"
}, - "subscription": "sub_xxxx",
- "subscription_details": {
- "metadata": {
- "granteeId": "user_2OsDX3m32lz850HSrdWurEVZkmU",
- "member": "example-member-123"
}
}, - "subtotal": -11,
- "subtotal_excluding_tax": -11,
- "tax": "string",
- "test_clock": "string",
- "total": -11,
- "total_discount_amounts": [
- "string"
], - "total_excluding_tax": -11,
- "total_tax_amounts": [
- "string"
], - "transfer_data": "string",
- "webhooks_delivered_at": 1694521667
}
]
}
Get plans that a subscribed user can switch to
Retrieves a list of available plans that a subscribed user can switch to
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "status": "ACTIVE",
- "isTest": true,
- "trialDays": 0,
- "evaluation": true,
- "evalDays": 0,
- "organisation": "string",
- "visibility": "string",
- "licenseType": "string",
- "perSeatAmount": 0,
- "interval": "string",
- "length": 0,
- "active": true,
- "planType": "string",
- "pricingType": "string",
- "environment": "string",
- "paddlePlanId": "string",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "salablePlan": true,
- "updatedAt": "2019-08-24T14:15:22Z",
- "currencies": [
- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "currencyUuid": "cd8aed70-26ae-4fd6-bda6-2518f23cc3e4",
- "price": 1000,
- "paymentIntegrationPlanId": "plan_NJVQSbjdHWJUSC",
- "currency": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "shortName": "USD",
- "longName": "United States Dollar",
- "symbol": "$"
}
}
], - "features": [
- {
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "featureUuid": "670eca0a-b211-4991-96ad-7061416ed065",
- "value": "-1",
- "enumValueUuid": "8b4cd7f9-d7ab-435e-909e-04c689b8af4a",
- "isUnlimited": true,
- "isUsage": false,
- "pricePerUnit": 0,
- "minUsage": 0,
- "maxUsage": 0,
- "updatedAt": "2023-02-07T14:44:37.433Z",
- "feature": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "variableName": "string",
- "status": "ACTIVE",
- "visibility": "string",
- "valueType": "string",
- "defaultValue": "string",
- "showUnlimited": true,
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z",
- "sortOrder": 0
}, - "enumValue": {
- "uuid": "1955081b-204d-4d2a-9c4c-dc042498c2d9",
- "name": "xxxxx",
- "featureUuid": "78720bed-dcc7-4dd6-8dad-336ef552d41d",
- "updatedAt": "2023-11-16T10:41:57.633Z"
}
}
]
}
]
Cancel a subscription
Cancels a subscription by providing the subscriptionUuid
It will cancel immediately or at the end of the Subscription based on value of the when
query parameter.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
query Parameters
when | string Enum: "now" "end" Decides when the subscription should be canceled, either now or at the end of the subscription period |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Get an update payment link
Retrieves the update payment link for a specific subscription. The link opens up a management portal for your payment integration that will have an option for the customer to update their payment details.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
Get a customer portal link
Retrieves the customer portal link for a subscription. The link opens up a subscription management portal for your payment integration that will have an options for the customer to manage their subscription.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
Get a cancel subscription link
Retrieves the cancel subscription link for a specific subscription. The link opens up a subscription management portal for your payment integration that will have an option for the customer to cancel the subscription.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
Get payment method
Retrieves the payment method used to pay for a subscription.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "id": "string",
- "object": "string",
- "billing_details": {
- "address": {
- "city": "string",
- "country": "string",
- "line1": "string",
- "line2": "string",
- "postal_code": "string",
- "state": "string"
}, - "email": "string",
- "name": "string",
- "phone": "string"
}, - "card": {
- "brand": "string",
- "checks": {
- "address_line1_check": "string",
- "address_postal_code_check": "string",
- "cvc_check": "string"
}, - "country": "string",
- "exp_month": 0,
- "exp_year": 0,
- "fingerprint": "string",
- "funding": "string",
- "generated_from": "string",
- "last4": "string",
- "networks": {
- "available": [
- "string"
], - "preferred": "string"
}, - "three_d_secure_usage": {
- "supported": true
}, - "wallet": "string"
}, - "created": 0,
- "customer": "string",
- "livemode": true,
- "metadata": { },
- "type": "string"
}
Reactivate a Subscription
Reactivate a Subscription's scheduled cancellation before the billing period has passed. If the billing period has passed and the Subscription has already been canceled please create a new Subscription.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Increment quantity of seats on a subscription.
Incrementing will create unassigned licenses.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Request Body schema: application/json
increment required | integer The number of seats to increment. |
proration | string Default: "create_prorations" Enum: "create_prorations" "none" "always_invoice" The proration behaviour when moving the Subscription to a different Plan
|
Responses
Request samples
- Payload
{- "increment": 0,
- "proration": "create_prorations"
}
Response samples
- 202
{- "eventUuid": "5a928004-a2ef-4e00-8343-c8e7d40b4b41"
}
Decrement quantity of seats on a subscription.
Decrementing will only remove unassigned licenses.
Authorizations:
path Parameters
subscriptionUuid required | string The unique identifier for the subscription. |
header Parameters
version required | string Value: "v2" The version of the api. |
Request Body schema: application/json
decrement required | integer The number of seats to decrement. |
proration | string Default: "create_prorations" Enum: "create_prorations" "none" "always_invoice" The proration behaviour when moving the Subscription to a different Plan
|
Responses
Request samples
- Payload
{- "decrement": 0,
- "proration": "create_prorations"
}
Response samples
- 202
{- "eventUuid": "5a928004-a2ef-4e00-8343-c8e7d40b4b41"
}
Create a license
Create one or many ad hoc Licenses to give the specified granteeIds access to features.
Authorizations:
header Parameters
version required | string Value: "v2" The version of the api. |
Request Body schema: application/json
planUuid required | string <uuid> The UUID of the plan associated with the license.
The |
member required | string The ID of the member who will manage the license. |
granteeId | string or null The grantee ID for the license. |
status | string or null Enum: "ACTIVE" "TRIALING" |
endTime | string <date-time> Provide a custom end time for the license; this will override the plan's default interval. |
cancelAtPeriodEnd | boolean If set to true the license will not renew once the endTime date has passed. |
Responses
Request samples
- Payload
{- "planUuid": "2fbdf7df-cb91-4104-ab75-de2db68db742",
- "member": "memberId_123456",
- "granteeId": "userId_123456",
- "status": "ACTIVE",
- "endTime": "2025-07-06T12:00:00.000Z"
}
Response samples
- 200
[ ]
Batch update licenses
Performs a batch update of licenses.
Authorizations:
header Parameters
version required | string Value: "v2" The version of the api. |
Request Body schema: application/json
granteeId | string or null The grantee ID for the license. |
endTime | string <date-time> Provide a custom end time for the license; this will override the plan's default interval. |
Responses
Request samples
- Payload
[- {
- "uuid": "2fbdf7df-cb91-4104-ab75-de2db68db742",
- "granteeId": "userId_123456"
}, - {
- "uuid": "31b83d94-26cd-415b-b46d-d17287e12be9",
- "endTime": "2025-07-06T12:00:00.000Z"
}, - {
- "uuid": "75fb6d73-b9b1-427f-bfbe-563741ce049e",
- "granteeId": null,
- "endTime": "2025-07-06T12:00:00.000Z"
}
]
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "subscriptionUuid": "466672c4-1527-4594-82f2-3d3ac972eb68",
- "cancelAtPeriodEnd": true,
- "granteeId": "string",
- "purchaser": "string",
- "email": "string",
- "name": "string",
- "paymentService": "string",
- "type": "string",
- "capabilities": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "status": "ACTIVE",
- "metadata": {
- "granteeId": "string",
- "purchaser": "string"
}, - "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}
]
Get licenses
Retrieves a list of all licenses.
Authorizations:
query Parameters
status | string Enum: "active" "canceled" "evaluation" "scheduled" "trialing" "inactive" The status of the licenses. |
cursor | string A unique identifier for the last item of one page to get the next page. This will be either the |
take | string Default: "20" The number of records to take before or after cursor. A positive or negative in the range of -100 to 100. Use a number below 0 to take the previous records before the cursor. |
subscriptionUuid | string <uuid> Filters licenses by their subscription. Useful for returning licenses on a per seat subscription. |
granteeId | string Filters licenses by grantee. |
planUuid | string <uuid> Filters licenses by their plan. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "first": "2fa1275f-16fc-4c83-ad1d-bd5fae716244",
- "last": "7ee24cab-37fe-451b-82f6-65831f7c105f",
- "data": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "subscriptionUuid": "466672c4-1527-4594-82f2-3d3ac972eb68",
- "cancelAtPeriodEnd": true,
- "granteeId": "string",
- "purchaser": "string",
- "email": "string",
- "name": "string",
- "paymentService": "string",
- "type": "string",
- "capabilities": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "status": "ACTIVE",
- "metadata": {
- "granteeId": "string",
- "purchaser": "string"
}, - "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}
]
}
Get the count of licenses
Returns the count of all licenses including counts for assigned and unassigned licenses.
Authorizations:
query Parameters
subscriptionUuid | string The unique identifier for the subscription. |
status | string Enum: "active" "canceled" "evaluation" "scheduled" "trialing" "inactive" The status of the licenses. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "count": 0,
- "assigned": 0,
- "unassigned": 0
}
Get a License
Fetch the details of a specific license using its UUID. If additional specific details are required, use the optional 'expand' query parameter to include relational data such as associated subscription details, pricing plans, product details, etc.
Authorizations:
path Parameters
licenseUuid required | string The unique identifier for the license. |
query Parameters
expand | Array of strings Example: expand=subscription,plan.currencies.currency,plan.currencies,plan.features,plan,product.currencies,product.organisationPaymentIntegration,product Specify the resource fields to expand as comma separated values eg |
Responses
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "subscriptionUuid": "466672c4-1527-4594-82f2-3d3ac972eb68",
- "cancelAtPeriodEnd": true,
- "granteeId": "string",
- "purchaser": "string",
- "email": "string",
- "name": "string",
- "paymentService": "string",
- "type": "string",
- "capabilities": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "status": "ACTIVE",
- "metadata": {
- "granteeId": "string",
- "purchaser": "string"
}, - "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}
Update a license
Set or unset the granteeId of a license.
Authorizations:
path Parameters
licenseUuid required | string The unique identifier for the license. |
header Parameters
version required | string Value: "v2" The version of the api. |
Request Body schema: application/json
granteeId | string or null The grantee ID for the license. |
endTime | string <date-time> Provide a custom end time for the license; this will override the plan's default interval. |
Responses
Request samples
- Payload
{- "granteeId": "userId_123456",
- "endTime": "2025-07-06T12:00:00.000Z"
}
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "subscriptionUuid": "466672c4-1527-4594-82f2-3d3ac972eb68",
- "cancelAtPeriodEnd": true,
- "granteeId": "string",
- "purchaser": "string",
- "email": "string",
- "name": "string",
- "paymentService": "string",
- "type": "string",
- "capabilities": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "status": "ACTIVE",
- "metadata": {
- "granteeId": "string",
- "purchaser": "string"
}, - "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}
Cancel an ad hoc License
Cancel an ad hoc license, this will set the status to CANCELED
Does not cancel subscription, only use for canceling ad hoc licenses.
Authorizations:
path Parameters
licenseUuid required | string The unique identifier for the license. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Check a grantee(s) licenses
Retrieves the capabilities the grantee(s) have access to.
Authorizations:
query Parameters
granteeIds required | string Example: granteeIds=123,456 Comma-separated unique identifiers of the grantees |
productUuid required | string The unique identifier for the product. |
grace | integer <int> >= 1 The number of days to add to the capabilitiesEndDates. Values of <=0 will return an error. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "capabilities": [
- {
- "capability": "capability_one",
- "expiry": "2024-07-09T20:08:26.685Z"
}, - {
- "capability": "capability_two",
- "expiry": "2024-07-09T20:08:26.685Z"
}, - {
- "capability": "test_plan",
- "expiry": "2024-07-09T20:08:26.685Z"
}
], - "signature": "3044022004f243b5bb524689498537ff6bf865d847b8f6c6f65db687036814281fe4c1cc022043e645238050c587b6a79343a4acad58a925d3fbf3ba914d2f4c38a1f8439993"
}
Get licenses by purchaser
Retrieves an array of licenses for a purchaser
Authorizations:
query Parameters
productUuid required | string The unique identifier for the product. |
status | string Enum: "active" "canceled" "evaluation" "scheduled" "trialing" "inactive" The status of the licenses. |
purchaser required | string An identifier for the owner of the license. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "email": "user@example.com",
- "subscriptionUuid": "466672c4-1527-4594-82f2-3d3ac972eb68",
- "status": "ACTIVE",
- "granteeId": "string",
- "paymentService": "string",
- "purchaser": "user@example.com",
- "type": "string",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "capabilities": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "metadata": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true,
- "product": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "logoUrl": "string",
- "displayName": "string",
- "organisation": "string",
- "status": "ACTIVE",
- "paid": true,
- "organisationPaymentIntegrationUuid": "de706cee-7950-4ee9-8a0f-3f53493747a4",
- "paymentIntegrationProductId": "string",
- "appType": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}, - "plan": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "displayName": "string",
- "status": "ACTIVE",
- "isTest": true,
- "trialDays": 0,
- "evaluation": true,
- "evalDays": 0,
- "organisation": "string",
- "visibility": "string",
- "licenseType": "string",
- "perSeatAmount": 0,
- "interval": "string",
- "length": 0,
- "active": true,
- "planType": "string",
- "pricingType": "string",
- "environment": "string",
- "paddlePlanId": "string",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "salablePlan": true,
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "subscription": {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "organisation": "string",
- "paymentIntegrationSubscriptionId": "string",
- "type": "salable",
- "quantity": 1,
- "email": "user@example.com",
- "expiryDate": "2019-08-24T14:15:22Z",
- "lineItemIds": [
- "string"
], - "status": "ACTIVE",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true,
- "cancelAtPeriodEnd": true
}
}
]
Get licenses by granteeId
Retrieves a list of licenses for a grantee
Authorizations:
path Parameters
granteeId required | string The unique identifier for the grantee. |
query Parameters
expand | Array of strings Items Enum: "subscription" "plan.currencies.currency" "plan.currencies" "plan.features" "plan" "product.currencies" "product.organisationPaymentIntegration" "product" Parameters to expand in the response |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
[- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "subscriptionUuid": "466672c4-1527-4594-82f2-3d3ac972eb68",
- "cancelAtPeriodEnd": true,
- "granteeId": "string",
- "purchaser": "string",
- "email": "string",
- "name": "string",
- "paymentService": "string",
- "type": "string",
- "capabilities": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "description": "string",
- "status": "ACTIVE",
- "productUuid": "3a88375a-5ea7-4e22-b7fe-b3c10f9367f3",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "status": "ACTIVE",
- "metadata": {
- "granteeId": "string",
- "purchaser": "string"
}, - "updatedAt": "2019-08-24T14:15:22Z",
- "isTest": true
}
]
Cancel many ad hoc licenses
Cancels ad hoc Licenses with using an array of licenseUuids.
Does not cancel subscription, only use for canceling ad hoc licenses.
Authorizations:
header Parameters
version required | string Value: "v2" The version of the api. |
Request Body schema: application/json
uuids | Array of strings UUIDs of the Licenses which are being canceled |
Responses
Request samples
- Payload
{- "uuids": [
- "674e7460-8eea-48b1-a795-2705d0e38ff4",
- "eb6424b2-4cb3-4812-85a4-25acab877109"
]
}
Get all usage records for grantee
Retrieves all usage records for grantee's metered licenses.
Authorizations:
query Parameters
granteeId required | string The granteeId of the license belongs. |
type | string Filter by the type of usage record |
status | string Filter by the status of the license |
planUuid | string The uuid of the plan the license belongs to. |
subscriptionUuid | string <uuid> Filters usage records by their license's subscription. |
sort | string Default: "asc" Enum: "asc" "desc" Sorts usage records by createdAt field. |
cursor | string A unique identifier for the last item of one page to get the next page. This will be either the |
take | string Default: "20" The number of records to take before or after cursor. A positive or negative in the range of -100 to 100. Use a number below 0 to take the previous records before the cursor. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "first": "2fa1275f-16fc-4c83-ad1d-bd5fae716244",
- "last": "7ee24cab-37fe-451b-82f6-65831f7c105f",
- "data": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "unitCount": 0,
- "type": "recorded",
- "recordedAt": "2024-07-09T20:08:26.685Z",
- "resetAt": "2024-07-09T20:08:26.685Z",
- "planUuid": "4da9429c-fce6-4d7f-97f3-072e42f5878b",
- "licenseUuid": "1a47cf96-c79e-4cca-b330-9fcb1633f9a0",
- "createdAt": "2024-07-09T20:08:26.685Z",
- "updatedAt": "2024-07-09T20:08:26.685Z"
}
]
}
Updates a license's usage
Updates the usage on a license by incrementing its value.
Authorizations:
header Parameters
version required | string Value: "v2" The version of the api. |
unique-key required | string A unique key for idempotent requests |
Request Body schema: application/json
planUuid required | string The uuid of the plan the license belongs to. |
granteeId required | string The granteeId of the license. |
required | object |
Responses
Request samples
- Payload
{- "planUuid": "string",
- "granteeId": "string",
- "countOptions": {
- "increment": 1
}
}
Get current usage record for grantee on plan
Retrieves the current usage record for a metered license.
Authorizations:
query Parameters
planUuid required | string The uuid of the plan the license belongs to. |
granteeId required | string The granteeId of the license belongs. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "unitCount": 0,
- "updatedAt": "2024-07-09T20:08:26.685Z"
}
Get a event
Retrieves an event by its UUID. Events keep track of the progress of asynchronous tasks which rely on receiving webhooks or additional processing to complete.
Authorizations:
path Parameters
eventUuid required | string The unique identifier for the event. |
header Parameters
version required | string Value: "v2" The version of the api. |
Responses
Response samples
- 200
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "type": "Create seats",
- "organisation": "string",
- "status": "retrying",
- "isTest": true,
- "retries": 0,
- "errorMessage": "string",
- "errorCode": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Create a Stripe subscription with a payment intent
Creates a Stripe subscription with an incomplete
status and returns the latest_invoice.payment_intent.client_secret
necessary for Stripe Elements and Salable Checkout component.
This status changes to active
once a payment method is successfully processed.
Authorizations:
header Parameters
version required | string Value: "v2" The version of the api. |
Request Body schema: application/json
planUuid required | string |
email required | string |
member required | string |
granteeId required | string |
currency | string |
Responses
Request samples
- Payload
{- "planUuid": "string",
- "email": "string",
- "member": "string",
- "granteeId": "string",
- "currency": "string"
}
Response samples
- 200
{- "clientSecret": "string"
}