Expenses
Track business expenses with receipt storage and recurring support. All amounts in cents.
Categories: TELECOMMUNICATIONSSOFTWARE_TOOLSEQUIPMENTOFFICE_RENTTRAVELTRAININGBUSINESS_MEALSPROFESSIONAL_SERVICESOTHER
GETList expenses
GET/expenses
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number (default: 1) |
| limit | integer | Items per page, max 100 (default: 20) |
| category | string | Filter by category |
| dateAfter | date-time | Filter expenses after this date |
| dateBefore | date-time | Filter expenses before this date |
| sort | string | date | -date | createdAt | -createdAt (default: -date) |
curl "https://paymavo.com/api/v1/expenses?category=SOFTWARE_TOOLS" \
-H "Authorization: Bearer sk_live_xxx"GETGet an expense
GET/expenses/{id}
curl https://paymavo.com/api/v1/expenses/clx789 \
-H "Authorization: Bearer sk_live_xxx"POSTCreate an expense
POST/expenses
| Parameter | Type | Description |
|---|---|---|
| supplier* | string | Supplier / vendor name |
| amountHt* | integer | Pre-tax amount in cents |
| taxAmount* | integer | Tax in cents. totalWithTax = amountHt + taxAmount |
| category* | string | Expense category |
| date* | date-time | Expense date |
| description | string | Description |
| receiptUrl | uri | Receipt file URL |
| recurrent | boolean | Whether this is a recurring expense |
| frequency | string | WEEKLY | BIWEEKLY | MONTHLY | QUARTERLY | YEARLY |
| recurringEndDate | date-time | When recurrence stops |
curl -X POST https://paymavo.com/api/v1/expenses \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"supplier": "GitHub",
"amountHt": 900,
"taxAmount": 0,
"category": "SOFTWARE_TOOLS",
"date": "2026-03-01T00:00:00.000Z",
"recurrent": true,
"frequency": "MONTHLY"
}'PATCHUpdate an expense
PATCH/expenses/{id}
curl -X PATCH https://paymavo.com/api/v1/expenses/clx789 \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{ "description": "Updated note" }'DELETEDelete an expense
DELETE/expenses/{id}
Also deletes the associated receipt from storage if present.
curl -X DELETE https://paymavo.com/api/v1/expenses/clx789 \
-H "Authorization: Bearer sk_live_xxx"GETGet receipt URL
GET/expenses/{id}/receipt
Returns the Cloudinary URL of the uploaded receipt file. Returns 404 if no receipt is attached.
curl "https://paymavo.com/api/v1/expenses/clx789/receipt" \
-H "Authorization: Bearer sk_live_xxx"