Budgets API
Complete reference for Budget management endpoints.
See also: Budget Management User Guide.
List Budgets
http
GET /v1/budgetsQuery Parameters
| Parameter | Type | Description |
|---|---|---|
department_id | integer | Filter by department |
fiscal_year | integer | Filter by fiscal year (e.g. 2026) |
status | string | Filter by status: draft, active, closed, frozen |
page | integer | Page number (default: 1) |
per_page | integer | Items per page (default: 15, max: 100) |
Example Request
bash
curl -X GET "https://api.waqti.sa/v1/budgets?department_id=2&fiscal_year=2026&status=active&per_page=20" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json"Example Response
json
{
"data": [
{
"id": 18,
"name": "Operations — FY2026 Capex",
"currency": "SAR",
"allocated_amount": 500000.00,
"committed_amount": 127500.00,
"spent_amount": 84250.00,
"available_amount": 288250.00,
"utilization_percentage": 42.35,
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"fiscal_year": 2026,
"status": "active",
"created_at": "2026-01-05T08:15:00Z"
},
{
"id": 19,
"name": "IT — Software & Licenses",
"currency": "SAR",
"allocated_amount": 200000.00,
"committed_amount": 45000.00,
"spent_amount": 120000.00,
"available_amount": 35000.00,
"utilization_percentage": 82.50,
"department": {
"id": 4,
"name": "Information Technology",
"code": "IT"
},
"fiscal_year": 2026,
"status": "active",
"created_at": "2026-01-06T11:00:00Z"
}
],
"meta": {
"current_page": 1,
"last_page": 2,
"per_page": 20,
"total": 24
}
}Get Budget
http
GET /v1/budgets/{id}Returns full budget details including amounts, department, category, and timestamps.
Example Request
bash
curl -X GET "https://api.waqti.sa/v1/budgets/18" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json"Example Response
json
{
"data": {
"id": 18,
"name": "Operations — FY2026 Capex",
"category": "Capex",
"currency": "SAR",
"allocated_amount": 500000.00,
"committed_amount": 127500.00,
"spent_amount": 84250.00,
"available_amount": 288250.00,
"utilization_percentage": 42.35,
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"fiscal_year": 2026,
"status": "active",
"notes": "Includes warehouse upgrades and fleet maintenance.",
"created_at": "2026-01-05T08:15:00Z",
"updated_at": "2026-03-28T09:40:00Z"
}
}Get Budget Utilization
http
GET /v1/budgets/{id}/utilizationReturns utilization breakdown: committed vs spent, optional period splits, and how much remains against allocation.
Example Request
bash
curl -X GET "https://api.waqti.sa/v1/budgets/18/utilization" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json"Example Response
json
{
"data": {
"budget_id": 18,
"name": "Operations — FY2026 Capex",
"currency": "SAR",
"allocated_amount": 500000.00,
"committed_amount": 127500.00,
"spent_amount": 84250.00,
"available_amount": 288250.00,
"utilization_percentage": 42.35,
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"fiscal_year": 2026,
"status": "active",
"breakdown": {
"by_po_status": {
"approved_uninvoiced": 43250.00,
"invoiced_pending_payment": 41000.00,
"paid": 84250.00
},
"remaining_against_committed": 211750.00
},
"as_of": "2026-04-04T12:00:00Z"
}
}Create Budget
http
POST /v1/budgetsRequest Body
json
{
"name": "Facilities — FY2026 Opex",
"allocated_amount": 350000.00,
"department_id": 3,
"fiscal_year": 2026,
"category": "Opex",
"currency": "SAR",
"notes": "Building maintenance, utilities, and security services."
}Example Request
bash
curl -X POST "https://api.waqti.sa/v1/budgets" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Facilities — FY2026 Opex",
"allocated_amount": 350000.00,
"department_id": 3,
"fiscal_year": 2026,
"category": "Opex",
"currency": "SAR"
}'Example Response
json
{
"data": {
"id": 27,
"name": "Facilities — FY2026 Opex",
"category": "Opex",
"currency": "SAR",
"allocated_amount": 350000.00,
"committed_amount": 0.00,
"spent_amount": 0.00,
"available_amount": 350000.00,
"utilization_percentage": 0.00,
"department": {
"id": 3,
"name": "Facilities",
"code": "FAC"
},
"fiscal_year": 2026,
"status": "draft",
"created_at": "2026-04-04T14:22:00Z"
}
}Update Budget
http
PUT /v1/budgets/{id}Request Body
json
{
"name": "Operations — FY2026 Capex (revised)",
"allocated_amount": 525000.00,
"department_id": 2,
"fiscal_year": 2026,
"category": "Capex",
"status": "active",
"notes": "Adjusted after Q1 forecast review."
}All fields are optional; send only the attributes to change.
Example Request
bash
curl -X PUT "https://api.waqti.sa/v1/budgets/18" \
-H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"allocated_amount": 525000.00,
"notes": "Adjusted after Q1 forecast review."
}'Example Response
json
{
"data": {
"id": 18,
"name": "Operations — FY2026 Capex",
"category": "Capex",
"currency": "SAR",
"allocated_amount": 525000.00,
"committed_amount": 127500.00,
"spent_amount": 84250.00,
"available_amount": 313250.00,
"utilization_percentage": 40.33,
"department": {
"id": 2,
"name": "Operations",
"code": "OPS"
},
"fiscal_year": 2026,
"status": "active",
"notes": "Adjusted after Q1 forecast review.",
"created_at": "2026-01-05T08:15:00Z",
"updated_at": "2026-04-04T15:05:00Z"
}
}