Start recurring billing for an existing subscription
POST
/api/tenant/{tenantId}/Subscriptions/{id}/billing
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://api.nimles.com/e-commerce/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Subscriptions/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/billing"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"fields\": { \"additionalProperty\": { \"value\": \"example\", \"valueType\": \"example\" } }, \"accessibility\": \"example\", \"paymentOptionId\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"unitAmount\": 1, \"currency\": \"example\", \"seatCount\": 1, \"intervalMonths\": 1, \"productName\": \"example\", \"description\": \"example\", \"buyerEmail\": \"example\", \"buyerName\": \"example\", \"discountCode\": \"example\", \"discountPercentOff\": 1, \"discountAmountOff\": 1, \"discountDurationMonths\": 1 }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}const url = 'https://api.nimles.com/e-commerce/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Subscriptions/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/billing';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"fields":{"additionalProperty":{"value":"example","valueType":"example"}},"accessibility":"example","paymentOptionId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","unitAmount":1,"currency":"example","seatCount":1,"intervalMonths":1,"productName":"example","description":"example","buyerEmail":"example","buyerName":"example","discountCode":"example","discountPercentOff":1,"discountAmountOff":1,"discountDurationMonths":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.nimles.com/e-commerce/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Subscriptions/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/billing \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "fields": { "additionalProperty": { "value": "example", "valueType": "example" } }, "accessibility": "example", "paymentOptionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "unitAmount": 1, "currency": "example", "seatCount": 1, "intervalMonths": 1, "productName": "example", "description": "example", "buyerEmail": "example", "buyerName": "example", "discountCode": "example", "discountPercentOff": 1, "discountAmountOff": 1, "discountDurationMonths": 1 }'Starts recurring billing for an existing subscription. The subscription is left unactivated until the processor confirms the first invoice was paid.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string format: uuid
tenantId
required
string format: uuid
Your tenant id.
Request Body
Section titled “Request Body”Media typeapplication/json
object
fields
object
key
additional properties
object
value
required
valueType
string
accessibility
string
paymentOptionId
string format: uuid
unitAmount
number format: double
currency
string
seatCount
integer format: int32
intervalMonths
integer format: int32
productName
string
description
string
buyerEmail
string
buyerName
string
discountCode
string
discountPercentOff
number format: double
discountAmountOff
number format: double
discountDurationMonths
integer format: int32
Example generated
{ "fields": { "additionalProperty": { "value": "example", "valueType": "example" } }, "accessibility": "example", "paymentOptionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "unitAmount": 1, "currency": "example", "seatCount": 1, "intervalMonths": 1, "productName": "example", "description": "example", "buyerEmail": "example", "buyerName": "example", "discountCode": "example", "discountPercentOff": 1, "discountAmountOff": 1, "discountDurationMonths": 1}Responses
Section titled “Responses”OK
Media typeapplication/json
object
fields
object
key
additional properties
string
data
object
fields
object
key
additional properties
object
value
required
valueType
string
accessibility
string
subscriptionId
string format: uuid
stripeSubscriptionId
string
stripeCustomerId
string
clientSecret
string
currentPeriodEnd
string format: date-time
Example generated
{ "data": { "fields": { "additionalProperty": { "value": "example", "valueType": "example" } }, "accessibility": "example", "subscriptionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "stripeSubscriptionId": "example", "stripeCustomerId": "example", "clientSecret": "example", "currentPeriodEnd": "2026-04-15T12:00:00Z" }}Unauthorized: no bearer token, or one that is expired or not for this API.
Forbidden: the caller holds no role that allows this action at this scope. The body is empty, or a problem whose detail names the action.
Media typeapplication/json
An RFC 9457 problem.
object
detail
string
instance
string
status
integer format: int32
title
string
type
string
key
additional properties
Example generated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Not found: no such item in the tenant.
Media typeapplication/problem+json
An RFC 9457 problem.
object
detail
string
instance
string
status
integer format: int32
title
string
type
string
key
additional properties
Example generated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Conflict: the item kept changing under concurrent writes; read it again and retry.
Media typeapplication/problem+json
An RFC 9457 problem.
object
detail
string
instance
string
status
integer format: int32
title
string
type
string
key
additional properties
Example generated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Unprocessable: the body or the change is invalid. The errors are keyed by member.
Media typeapplication/problem+json
A validation problem: the messages by member (or by JSON Pointer for a patch).
object
errors
object
key
additional properties
Array<string>
status
integer format: int32
title
string
type
string
key
additional properties
Example generated
{ "errors": { "additionalProperty": [ "example" ] }, "status": 1, "title": "example", "type": "example"}