cURL
curl --request POST \
--url https://commet.co/api/v1/test-clock/process-billing \
--header 'x-api-key: <api-key>'import { Commet } from "@commet/node";
const commet = new Commet({ apiKey: "ck_xxx" });
const response = await commet.testClock.processBilling();from commet import Commet
commet = Commet("ck_xxx")
response = commet.test_clock.process_billing()client, err := commet.New("ck_xxx")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
response, err := client.TestClock.ProcessBilling(ctx)
if err != nil {
log.Fatal(err)
}import co.commet.Commet;
var commet = Commet.builder().apiKey("ck_xxx").build();
var response = commet.testClock().processBilling();use Commet\Commet;
$commet = new Commet('ck_xxx');
$response = $commet->testClock->processBilling();{
"error": {
"type": "validation_error",
"code": "validation_error",
"message": "The request contains an invalid parameter.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md"
}
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "A valid API key is required.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md"
}
}{
"error": {
"type": "authentication_error",
"code": "forbidden",
"message": "You do not have permission to perform this operation.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md"
}
}{
"error": {
"type": "conflict_error",
"code": "idempotency_in_progress",
"message": "A request with this idempotency key is still being processed.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_in_progress.md"
}
}{
"error": {
"type": "not_found_error",
"code": "endpoint_deprecated",
"message": "This endpoint is no longer available. Use the replacement documented for this API version.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/endpoint_deprecated.md"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Too many requests. Retry after the interval specified in the Retry-After header.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md"
}
}{
"error": {
"type": "internal_error",
"code": "internal_error",
"message": "An unexpected error occurred while processing the request.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md"
}
}{
"error": {
"type": "internal_error",
"code": "idempotency_unavailable",
"message": "Idempotency storage is temporarily unavailable. Retry with the same idempotency key.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_unavailable.md"
}
}Test Clock
Deprecated manual billing processing
deprecated
Deprecated. POST /test-clock now advances time and processes every due billing deadline in one durable run.
POST
/
test-clock
/
process-billing
cURL
curl --request POST \
--url https://commet.co/api/v1/test-clock/process-billing \
--header 'x-api-key: <api-key>'import { Commet } from "@commet/node";
const commet = new Commet({ apiKey: "ck_xxx" });
const response = await commet.testClock.processBilling();from commet import Commet
commet = Commet("ck_xxx")
response = commet.test_clock.process_billing()client, err := commet.New("ck_xxx")
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
response, err := client.TestClock.ProcessBilling(ctx)
if err != nil {
log.Fatal(err)
}import co.commet.Commet;
var commet = Commet.builder().apiKey("ck_xxx").build();
var response = commet.testClock().processBilling();use Commet\Commet;
$commet = new Commet('ck_xxx');
$response = $commet->testClock->processBilling();{
"error": {
"type": "validation_error",
"code": "validation_error",
"message": "The request contains an invalid parameter.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md"
}
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "A valid API key is required.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md"
}
}{
"error": {
"type": "authentication_error",
"code": "forbidden",
"message": "You do not have permission to perform this operation.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md"
}
}{
"error": {
"type": "conflict_error",
"code": "idempotency_in_progress",
"message": "A request with this idempotency key is still being processed.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_in_progress.md"
}
}{
"error": {
"type": "not_found_error",
"code": "endpoint_deprecated",
"message": "This endpoint is no longer available. Use the replacement documented for this API version.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/endpoint_deprecated.md"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Too many requests. Retry after the interval specified in the Retry-After header.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md"
}
}{
"error": {
"type": "internal_error",
"code": "internal_error",
"message": "An unexpected error occurred while processing the request.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md"
}
}{
"error": {
"type": "internal_error",
"code": "idempotency_unavailable",
"message": "Idempotency storage is temporarily unavailable. Retry with the same idempotency key.",
"doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_unavailable.md"
}
}Deprecated. POST /test-clock now advances time and processes every due billing deadline in one durable run.
Autorizaciones
Encabezados
Unique key used to safely retry this write for 24 hours without applying it twice.
Required string length:
1 - 200API version used by this reference. Send this header to select this contract explicitly.
Respuesta
Bad request
Show child attributes
Show child attributes
¿Esta página le ayudó?