Expenses

Track business expenses with receipt storage and recurring support. All amounts in cents.

Categories: TELECOMMUNICATIONSSOFTWARE_TOOLSEQUIPMENTOFFICE_RENTTRAVELTRAININGBUSINESS_MEALSPROFESSIONAL_SERVICESOTHER

GETList expenses

GET/expenses
ParameterTypeDescription
pageintegerPage number (default: 1)
limitintegerItems per page, max 100 (default: 20)
categorystringFilter by category
dateAfterdate-timeFilter expenses after this date
dateBeforedate-timeFilter expenses before this date
sortstringdate | -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
ParameterTypeDescription
supplier*stringSupplier / vendor name
amountHt*integerPre-tax amount in cents
taxAmount*integerTax in cents. totalWithTax = amountHt + taxAmount
category*stringExpense category
date*date-timeExpense date
descriptionstringDescription
receiptUrluriReceipt file URL
recurrentbooleanWhether this is a recurring expense
frequencystringWEEKLY | BIWEEKLY | MONTHLY | QUARTERLY | YEARLY
recurringEndDatedate-timeWhen 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"