Update Expense (v1)
Method & Path
PATCH /api/v1/client/workspace/:workspaceId/expenses/:expenseId
Description
Update an existing expense record. All fields are optional, but at least one field must be provided.
Authentication
Required: Workspace authentication. User must be authenticated as Workspace Owner or Staff with financial permissions.
Headers
Authorization: Bearer <workspace_token>
Content-Type: application/json
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | Workspace identifier |
expenseId | string | Yes | Expense identifier |
Request Body
All fields are optional, but at least one field must be provided:
{
"amount": 1600.00,
"date": "2025-01-16T10:30:00.000Z",
"time": "11:00",
"description": "Updated expense description",
"category": "utilities",
"notes": "Updated notes"
}
Request Body Schema
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | No | Expense amount (min: 0) |
date | date | No | Expense date (ISO 8601 format) |
time | string | No | Expense time in HH:MM format (24-hour format) |
description | string | No | Expense description (min length: 1 if provided) |
category | string | No | Expense category (services, salaries, rent, utilities, marketing, other) |
notes | string | No | Additional notes about the expense |
Response 200 OK
{
"id": "507f1f77bcf86cd799439011",
"workspaceId": "507f1f77bcf86cd799439012",
"amount": 1600.00,
"date": "2025-01-16T10:30:00.000Z",
"time": "11:00",
"description": "Updated expense description",
"category": "utilities",
"receiptImage": null,
"notes": "Updated notes",
"createdBy": "507f1f77bcf86cd799439014",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-16T11:00:00.000Z"
}
Common Errors
400 Bad Request: Invalid request body (e.g., no fields provided, invalid amount, invalid time format)
401 Unauthorized: Missing or invalid authentication token
403 Forbidden: User does not have permission to update expense records
404 Not Found: Expense or workspace not found
422 Unprocessable Entity: Validation error (e.g., invalid category enum value)
500 Internal Server Error: Server error occurred while processing the request