# POST /api/expenses > Expenses - Add New Expense - **Endpoint:** `POST /api/expenses` - **Group:** Expenses - **Since:** v1.0.0 - **Defined in:** `RestApi/Controllers/ExpensesController.php` ## Headers | Field | Type | Description | | --- | --- | --- | | `authtoken` | String | Authentication token, generated from admin area | ## Parameters | Field | Type | Required | Description | | --- | --- | --- | --- | | `expense_date` | string | yes | Mandatory Expense date (Y-m-d) | | `category_id` | number | yes | Mandatory Category ID | | `title` | string | yes | Mandatory Expense title | | `amount` | number | yes | Mandatory Expense amount | | `description` | string | no | Optional Expense description | | `project_id` | number | no | Optional Project ID | | `user_id` | number | no | Optional User ID | | `client_id` | number | no | Optional Client ID | | `tax_id` | number | no | Optional Tax ID | | `tax_id2` | number | no | Optional Second tax ID | | `created_by` | number | no | Optional RISE user ID. Default: 1. Use for proper attribution. | ## Request example ```bash curl -X POST "https://yoursite.com/index.php/api/expenses" \ -H "authtoken: YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "expense_date": "...", "category_id": "...", "title": "...", "amount": "..." }' ``` ## Responses ### Success - Success-Response: ```json HTTP/1.1 200 OK { "status": true, "message": "Expense add successful." } ``` --- Part of the [REST API for RISE CRM](https://risecrm.themesic.com/apiguide/) documentation. Full page: https://risecrm.themesic.com/apiguide/expenses/create-expense/