Skip to content

Start recurring billing for an existing subscription

POST
/api/tenant/{tenantId}/Subscriptions/{id}/billing
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.

id
required
string format: uuid
tenantId
required
string format: uuid

Your tenant id.

Media typeapplication/json
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
paymentOptionId
string format: uuid
unitAmount
number format: double
currency
string
nullable
seatCount
integer format: int32
intervalMonths
integer format: int32
productName
string
nullable
description
string
nullable
buyerEmail
string
nullable
buyerName
string
nullable
discountCode
string
nullable
discountPercentOff
number format: double
nullable
discountAmountOff
number format: double
nullable
discountDurationMonths
integer format: int32
nullable

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
}

OK

Media typeapplication/json
object
fields
object
key
additional properties
string
data
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
subscriptionId
string format: uuid
stripeSubscriptionId
string
nullable
stripeCustomerId
string
nullable
clientSecret
string
nullable
currentPeriodEnd
string format: date-time
nullable

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
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
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
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
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
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
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
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"errors": {
"additionalProperty": [
"example"
]
},
"status": 1,
"title": "example",
"type": "example"
}