---
title: "Charge subscription usage"
method: POST
path: "/api/v1/subscriptions/{id}/usage/charge"
tags: ["Subscriptions"]
---

# Charge subscription usage

`POST /api/v1/subscriptions/{id}/usage/charge`

Immediately charges usage for a subscription via the billing integration. Calculates usage since the last charge and creates an invoice.

## Path parameters

- `id` string, required

## Headers

- `X-ACCOUNT-ID` string
- `X-ENVIRONMENT-ID` string

## Request body

- ChargeSubscriptionUsageRequestDto — Request to immediately charge usage for a subscription.
  - `untilDate` string, date-time — Cutoff date for usage calculation. If not provided, the current time is used.

## Response `200`

The charge result including period, invoice ID, and usage details.

- ChargeSubscriptionUsageResponseDto — Response object
  - `data` object, required — Result of charging subscription usage including the billing period and charged items.
    - `subscriptionId` string, required — The subscription ID for which usage was charged
    - `periodStart` string, date-time, required — Start of the usage billing period
    - `periodEnd` string, date-time, required — End of the usage billing period
    - `invoiceBillingId` string, nullable, required — The invoice ID in the billing integration
    - `usageCharged` object[], required — Usage items that were charged
      - `featureId` string, nullable, required — The feature ID for which usage was charged
      - `usageAmount` number, required — The number of units charged

## Other responses

- `400` — bad request.
- `401` — User is not authenticated.
- `403` — User is not allowed to access this resource.
- `404` — Subscription not found.
- `429` — Too many requests.

## Changes

- **2026-07-28** `913f273cc2f7` — 1 warning
  - added the new `ContractNotFound` enum value to the `code` response property for the response status `404`
- **2026-07-23** `b876edd1a4fc` — 5 warning
  - added the new `CreditOveragePriceCurrencyNotFound` enum value to the `code` response property for the response status `400`
  - added the new `InvalidCreditOverageBillingModel` enum value to the `code` response property for the response status `400`
  - added the new `InvoicePreviewNotAvailableForDraftContract` enum value to the `code` response property for the response status `400`
  - added the new `OveragePriceNotSupportedOnAddon` enum value to the `code` response property for the response status `400`
  - …1 more
- **2026-07-08** `58bb216ff8ce` — 1 warning
  - added the new `GovernanceNotEnabled` enum value to the `code` response property for the response status `403`
- **2026-06-08** `3acd63d6c861` — 2 info
  - added the new optional `header` request parameter `X-ACCOUNT-ID`
  - added the new optional `header` request parameter `X-ENVIRONMENT-ID`
- **2026-06-04** `4fa87d66426d` — 1 warning
  - added the new `PricingModelNotSupportedByBillingIntegration` enum value to the `code` response property for the response status `400`

[Full history](https://skmtc.dev/stiggio/apis/stigg-api/changes/api/v1/subscriptions/:id/usage/charge/post.md)

---

[API](https://skmtc.dev/stiggio/apis/stigg-api.md) · [All operations](https://skmtc.dev/stiggio/apis/stigg-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stiggio/stigg-api/revisions/3e2c8cfcd035/schema)
