Transactions

All URLs below are relative to your site origin with the /api prefix (e.g. https://your-domain.com/api/v1/...).

All endpoints require Authorization: Bearer <api_key_or_jwt>.


GET /v1/transactions

Query parameters (all optional)

ParameterType
limitnumber (1–100)
cursorstring
budget_iduuid
category_iduuid
subcategory_iduuid
start_datestring
end_datestring
sortdate, amount, or created_at
orderasc or desc

Request body: none

Response 200

{
  "data": [
    {
      "id": "aa0e8400-e29b-41d4-a716-446655440005",
      "budget_id": "770e8400-e29b-41d4-a716-446655440002",
      "category_id": "880e8400-e29b-41d4-a716-446655440003",
      "subcategory_id": null,
      "amount": -42.5,
      "date": "2025-04-02",
      "details": "Weekly shop",
      "created_at": "2025-04-02T18:30:00.000Z"
    }
  ],
  "pagination": {
    "next_cursor": null,
    "has_more": false
  }
}

POST /v1/transactions

Request body

{
  "budget_id": "770e8400-e29b-41d4-a716-446655440002",
  "category_id": "880e8400-e29b-41d4-a716-446655440003",
  "subcategory_id": null,
  "amount": -18.99,
  "date": "2025-04-03",
  "details": "Coffee"
}

category_id, subcategory_id, and details may be omitted or null where allowed.

Response 201

{
  "data": {
    "id": "bb0e8400-e29b-41d4-a716-446655440006",
    "budget_id": "770e8400-e29b-41d4-a716-446655440002",
    "category_id": "880e8400-e29b-41d4-a716-446655440003",
    "subcategory_id": null,
    "amount": -18.99,
    "date": "2025-04-03",
    "details": "Coffee",
    "created_at": "2025-04-03T08:15:00.000Z"
  }
}

GET /v1/transactions/{transactionId}

Response 200data is a single transaction object (same fields as in the list).


PATCH /v1/transactions/{transactionId}

Request body (all optional)

{
  "category_id": null,
  "subcategory_id": null,
  "amount": -20,
  "date": "2025-04-04",
  "details": "Coffee + pastry"
}

Response 200 — updated transaction object under data.


DELETE /v1/transactions/{transactionId}

Request body: none

Response 200

{
  "data": {
    "deleted": true
  }
}