# POST /control/v1/billing/invoices

> CreateInvoice

- `operationId`: `ControlV1BillingInvoicesCreateInvoice`
- Group: [Billing](https://sference.com/docs/api-reference/billing.md)
- API spec (machine-readable): https://sference.com/openapi.json
- HTML version: https://sference.com/docs/api-reference/billing/ControlV1BillingInvoicesCreateInvoice

## Request body (required)

Content type `application/json`. Schema: `InvoiceCreateRequest`

| Field | Type | Required | Constraints | Description |
| --- | --- | --- | --- | --- |
| `period_start` | string \| null | no | — | — |
| `period_end` | string \| null | no | — | — |

## Responses

### `201` — Document created, URL follows

Schema: `InvoiceCreateResponse`

| Field | Type | Required | Constraints | Description |
| --- | --- | --- | --- | --- |
| `stripe_invoice_id` | string | yes | — | — |
| `hosted_invoice_url` | string \| null | no | — | — |
| `amount_cents` | integer | yes | — | — |
| `currency` | string | yes | — | — |
| `period_start` | string | yes | date-time | — |
| `period_end` | string | yes | date-time | — |
| `status` | string | yes | — | — |

### `400` — Bad request syntax or unsupported method

Schema: `object`

| Field | Type | Required | Constraints | Description |
| --- | --- | --- | --- | --- |
| `status_code` | integer | yes | — | — |
| `detail` | string | yes | — | — |
| `extra` | null \| object \| array | no | — | — |

Source: https://sference.com/docs/api-reference/billing/ControlV1BillingInvoicesCreateInvoice
