Every endpoint of the Prosperanova REST API, generated from the API itself.
All endpoints are relative to https://api.prosperanova.com. Create an API key in your Prosperanova dashboard, then authenticate every request with it.
apiKey — HTTP Basic auth carrying only the API key secret: Authorization: Basic base64(<key secret>).
accessToken — Operator session token issued by the Prosperanova dashboard: Authorization: Token <access token>.
Download the OpenAPI specification for use with your own tooling.
List coupons
Lists the coupons of your organization. Requires the coupons:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| currency | query | string | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of coupons |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the coupons:read scope |
| 429 | API key rate limit exceeded |
Create a coupon
Creates a coupon and fans out a signed coupon.created webhook. Requires the coupons:write scope.
| Status | Meaning |
|---|---|
| 200 | The created coupon |
| 403 | API key is missing the coupons:write scope |
Retrieve a coupon
Retrieves a single coupon by id. Requires the coupons:read scope. Answers 404 if the coupon belongs to another organization.
| Name | In | Type | Description |
|---|---|---|---|
| couponIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The coupon |
| 404 | No such coupon in your organization |
Update a coupon
Updates a coupon and fans out a signed coupon.updated webhook. Requires the coupons:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| couponIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated coupon |
| 403 | API key is missing the coupons:write scope |
List customers
Lists the customers of your organization. Requires the customers:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| limit | query | integer | |
| skip | query | integer | |
| sortField | query | string | |
| sortDirection | query | string (ASC | DESC) | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of customers |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the customers:read scope |
| 429 | API key rate limit exceeded |
Create a customer
Creates a customer and fans out a signed customer.created webhook. Requires the customers:write scope.
| Field | Type | Description |
|---|---|---|
| projectIdrequired | string | |
| string | ||
| name | string | |
| phone | string |
| Status | Meaning |
|---|---|
| 200 | The created customer |
| 403 | API key is missing the customers:write scope |
Retrieve a customer
Retrieves a single customer by id. Requires the customers:read scope. Answers 404 if the customer belongs to another organization, so ids cannot be probed.
| Name | In | Type | Description |
|---|---|---|---|
| customerIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The customer |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the customers:read scope |
| 404 | No such customer in your organization |
| 429 | API key rate limit exceeded |
Update a customer
Updates a customer and fans out a signed customer.updated webhook. Requires the customers:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| customerIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated customer |
| 403 | API key is missing the customers:write scope |
List invoices
Lists the invoices of your organization. Requires the invoices:read scope. Invoices are read-only on the public API — they are produced by the billing engine.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of invoices |
| 403 | API key is missing the invoices:read scope |
| 429 | API key rate limit exceeded |
Retrieve an invoice
Retrieves a single invoice by id. Requires the invoices:read scope. Answers 404 if the invoice belongs to another organization.
| Name | In | Type | Description |
|---|---|---|---|
| invoiceIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The invoice |
| 404 | No such invoice in your organization |
List payment intents
Lists the payment intents of your organization. Requires the paymentintents:read scope. Payment intents are read-only on the public API — they are produced by the billing engine.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of payment intents |
| 403 | API key is missing the paymentintents:read scope |
| 429 | API key rate limit exceeded |
Retrieve a payment intent
Retrieves a single payment intent by id. Requires the paymentintents:read scope. Answers 404 if it belongs to another organization.
| Name | In | Type | Description |
|---|---|---|---|
| paymentintentIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The payment intent |
| 404 | No such payment intent in your organization |
List prices
Lists the prices of your organization, optionally filtered by country/currency for localized checkout. Requires the prices:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| currency | query | string | |
| country | query | string | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of prices |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the prices:read scope |
| 429 | API key rate limit exceeded |
Create a price
Creates a price and fans out a signed price.created webhook. Requires the prices:write scope.
| Status | Meaning |
|---|---|
| 200 | The created price |
| 403 | API key is missing the prices:write scope |
Retrieve a price
Retrieves a single price by id. Requires the prices:read scope. Answers 404 if the price belongs to another organization.
| Name | In | Type | Description |
|---|---|---|---|
| priceIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The price |
| 404 | No such price in your organization |
Update a price
Updates a price and fans out a signed price.updated webhook. Requires the prices:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| priceIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated price |
| 403 | API key is missing the prices:write scope |
List products
Lists the products of your organization. Requires the products:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| limit | query | integer | |
| skip | query | integer | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of products |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the products:read scope |
| 429 | API key rate limit exceeded |
Create a product
Creates a product and fans out a signed product.created webhook. Requires the products:write scope.
| Status | Meaning |
|---|---|
| 200 | The created product |
| 403 | API key is missing the products:write scope |
Retrieve a product
Retrieves a single product by id. Requires the products:read scope. Answers 404 if the product belongs to another organization.
| Name | In | Type | Description |
|---|---|---|---|
| productIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The product |
| 404 | No such product in your organization |
Update a product
Updates a product and fans out a signed product.updated webhook. Requires the products:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| productIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated product |
| 403 | API key is missing the products:write scope |
List subscriptions
Lists the subscriptions of your organization. Requires the subscriptions:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| limit | query | integer | |
| skip | query | integer | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of subscriptions |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the subscriptions:read scope |
| 429 | API key rate limit exceeded |
Create a subscription
Creates a subscription (charging the first period) and fans out a signed subscription.created webhook. Requires the subscriptions:write scope.
| Status | Meaning |
|---|---|
| 200 | The created subscription |
| 403 | API key is missing the subscriptions:write scope |
Retrieve a subscription
Retrieves a single subscription by id. Requires the subscriptions:read scope. Answers 404 if the subscription belongs to another organization.
| Name | In | Type | Description |
|---|---|---|---|
| subscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The subscription |
| 404 | No such subscription in your organization |
Cancel a subscription
Cancels a subscription immediately, or at period end when cancelAtPeriodEnd is true. Fans out subscription.deleted on an immediate cancel. Requires the subscriptions:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| subscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The canceled subscription |
| 403 | API key is missing the subscriptions:write scope |
| 404 | No such subscription in your organization |
List webhook subscriptions
Webhook subscriptions deliver billing events to your server as signed POST requests (X-Prosperanova-Signature: t=<timestamp>,v1=<hex HMAC-SHA256 of "timestamp.body">). An endpoint failing 20 times in a row is disabled automatically. Subscriptions are managed with an operator access token; the secret is only returned once, on create.
| Status | Meaning |
|---|---|
| 200 | Array of webhook subscriptions (without secrets) |
Create a webhook subscription
The response includes the signing secret exactly once — store it; it cannot be retrieved again.
| Field | Type | Description |
|---|---|---|
| projectIdrequired | string | |
| urlrequired | string | |
| events | array (customer.created | customer.updated | subscription.created | subscription.updated | subscription.deleted | product.created | product.updated | price.created | price.updated | coupon.created | coupon.updated | invoice.created | invoice.updated | paymentintent.succeeded) | Empty array subscribes to all events |
| Status | Meaning |
|---|---|
| 200 | The created subscription, including its secret |