# POST /api/invoices > Invoices - Add an Invoice - **Endpoint:** `POST /api/invoices` - **Group:** Invoices - **Since:** v1.0.0 - **Defined in:** `RestApi/Controllers/InvoicesController.php` ## Headers | Field | Type | Description | | --- | --- | --- | | `authtoken` | String | Authentication token, generated from admin area | ## Parameters | Field | Type | Required | Description | | --- | --- | --- | --- | | `invoice_bill_date` | string | yes | Optional invoice bill date | | `invoice_due_date` | string | yes | Mandatory invoice due date | | `invoice_client_id` | string | yes | Mandatory invoice client id | | `invoice_project_id` | string | yes | Optional invoice project id | | `tax_id` | string | yes | Optional invoice tax id | | `tax_id2` | string | yes | Optional invoice tax id2 | | `tax_id3` | string | yes | Optional invoice tax id3 | | `recurring` | string | yes | Optional invoice recurring | | `invoice_note` | string | yes | Optional invoice note | | `labels` | string | yes | Optional invoice labels | | `items` | Object[] | no | Optional invoice lines, in the same shape GET /api/invoices/:id/items returns. Omit the key to keep the previous behaviour of creating a header with no lines. An empty array is rejected with a 400. | | `items.title` | String | yes | Mandatory line title. A description is accepted instead. | | `items.description` | String | no | Optional line description | | `items.quantity` | Number | yes | Mandatory quantity, numeric | | `items.rate` | Number | yes | Mandatory unit rate, numeric | | `items.unit_type` | String | no | Optional unit type, maximum 20 characters | | `items.sort` | Number | no | Optional display order. Defaults to the array position. | | `items.item_id` | Number | no | Optional items library ID | | `items.taxable` | Number | no | Optional, 1 (default) or 0 | ## Request example ```bash curl -X POST "https://yoursite.com/index.php/api/invoices" \ -H "authtoken: YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "invoice_bill_date": "...", "invoice_due_date": "...", "invoice_client_id": "...", "invoice_project_id": "...", "tax_id": "...", "tax_id2": "...", "tax_id3": "...", "recurring": "...", "invoice_note": "...", "labels": "...", "items.title": "...", "items.quantity": "...", "items.rate": "..." }' ``` ## Responses ### Success - Success-Response: ```json HTTP/1.1 200 OK { "status": true, "message": "Invoice add successful." } HTTP/1.1 404 Not Found { "status": false, "message": "Invoice add fail." } ``` --- Part of the [REST API for RISE CRM](https://risecrm.themesic.com/apiguide/) documentation. Full page: https://risecrm.themesic.com/apiguide/invoices/create-invoice/