UC Statements
API reference for Universal Credit statement management and the UC calculator.
List UC Statements
JavaScript
const statements = await $fetch('https://taxmtd.uk/api/uc-statements')
// Returns: Array<UCStatement>
Python
res = requests.get(
"https://taxmtd.uk/api/uc-statements",
cookies=session_cookies,
)
statements = res.json()["data"]
PHP
$response = Http::withCookies($session)
->get('https://taxmtd.uk/api/uc-statements');
$statements = $response->json()['data'];
Rust
#[derive(Deserialize)]
struct UCStatement {
id: i64,
assessment_start: String,
assessment_end: String,
payment_amount: Option<f64>,
standard_allowance: Option<f64>,
total_entitlement: Option<f64>,
minimum_income_floor: Option<f64>,
used_earnings: Option<f64>,
work_allowance: Option<f64>,
taper_rate: Option<f64>,
total_deductions: Option<f64>,
reported_income: f64,
reported_expenses: f64,
uc_payment: Option<f64>,
}
let stmts: Vec<UCStatement> = client
.get("https://taxmtd.uk/api/uc-statements")
.send().await?
.json::<serde_json::Value>().await?["data"]
.as_array().unwrap()
.iter()
.map(|v| serde_json::from_value(v.clone()).unwrap())
.collect();
cURL
curl https://taxmtd.uk/api/uc-statements
Create UC Statement
Full UC statement with DWP breakdown fields.
JavaScript
await $fetch('https://taxmtd.uk/api/uc-statements', {
method: 'POST',
body: {
// Period
periodId: 1,
assessmentStart: '2026-01-30',
assessmentEnd: '2026-02-27',
// Payment
paymentDate: '2026-03-15',
paymentAmount: 312.45,
// Entitlement
standardAllowance: 393.45,
housingElement: 450.00,
childrenElement: 269.58,
totalEntitlement: 1112.03,
// Claimants
claimant1Name: 'Jane Doe',
claimant1Earnings: 800.00,
claimant2Name: 'John Doe',
claimant2SelfEmploymentEarnings: 1200.00,
claimant2PreviousLosses: 0,
claimant2TotalEarnings: 1200.00,
// Calculation
minimumIncomeFloor: 1400.00,
usedEarnings: 1400.00,
workAllowance: 411.00,
taperRate: 0.55,
// Deductions
takeHomePay: 440.00,
savingsDeduction: 0,
totalDeductions: 984.50,
// Legacy
reportedIncome: 1200,
reportedExpenses: 300,
// Source file
sourceFilename: 'uc-statement-march.pdf',
sourceMimeType: 'application/pdf',
sourceFile: 'base64-encoded-file-data...'
}
})
Python
res = requests.post(
"https://taxmtd.uk/api/uc-statements",
json={
"periodId": 1,
"assessmentStart": "2026-01-30",
"assessmentEnd": "2026-02-27",
"paymentDate": "2026-03-15",
"paymentAmount": 312.45,
"standardAllowance": 393.45,
"housingElement": 450.00,
"totalEntitlement": 843.45,
"minimumIncomeFloor": 1400.00,
"workAllowance": 411.00,
"taperRate": 0.55,
"reportedIncome": 1200,
"reportedExpenses": 300,
},
cookies=session_cookies,
)
data = res.json()["data"]
PHP
$response = Http::withCookies($session)->post(
'https://taxmtd.uk/api/uc-statements',
[
'periodId' => 1,
'assessmentStart' => '2026-01-30',
'assessmentEnd' => '2026-02-27',
'paymentDate' => '2026-03-15',
'paymentAmount' => 312.45,
'standardAllowance' => 393.45,
'housingElement' => 450.00,
'totalEntitlement' => 843.45,
'minimumIncomeFloor' => 1400.00,
'workAllowance' => 411.00,
'taperRate' => 0.55,
'reportedIncome' => 1200,
'reportedExpenses' => 300,
]
);
$data = $response->json()['data'];
Rust
let res = client.post("https://taxmtd.uk/api/uc-statements")
.json(&serde_json::json!({
"periodId": 1,
"assessmentStart": "2026-01-30",
"assessmentEnd": "2026-02-27",
"paymentAmount": 312.45,
"standardAllowance": 393.45,
"minimumIncomeFloor": 1400.00,
"workAllowance": 411.00,
"taperRate": 0.55,
"reportedIncome": 1200,
"reportedExpenses": 300
}))
.send().await?;
cURL
curl -X POST https://taxmtd.uk/api/uc-statements \
-H "Content-Type: application/json" \
-d '{
"periodId": 1,
"assessmentStart": "2026-01-30",
"assessmentEnd": "2026-02-27",
"paymentAmount": 312.45,
"standardAllowance": 393.45,
"reportedIncome": 1200,
"reportedExpenses": 300
}'
Update UC Statement
JavaScript
await $fetch('https://taxmtd.uk/api/uc-statements', {
method: 'PUT',
body: { id: 1, paymentAmount: 320.00, notes: 'Corrected amount' }
})
Python
res = requests.put(
"https://taxmtd.uk/api/uc-statements",
json={"id": 1, "paymentAmount": 320.00, "notes": "Corrected amount"},
cookies=session_cookies,
)
data = res.json()["data"]
PHP
$response = Http::withCookies($session)->put(
'https://taxmtd.uk/api/uc-statements',
['id' => 1, 'paymentAmount' => 320.00, 'notes' => 'Corrected amount']
);
$data = $response->json()['data'];
Rust
let res = client.put("https://taxmtd.uk/api/uc-statements")
.json(&serde_json::json!({
"id": 1,
"paymentAmount": 320.00,
"notes": "Corrected amount"
}))
.send().await?;
cURL
curl -X PUT https://taxmtd.uk/api/uc-statements \
-H "Content-Type: application/json" \
-d '{"id":1,"paymentAmount":320.00}'
Delete UC Statement
JavaScript
await $fetch('https://taxmtd.uk/api/uc-statements', {
method: 'DELETE',
body: { id: 1 }
})
Python
res = requests.delete(
"https://taxmtd.uk/api/uc-statements",
json={"id": 1},
cookies=session_cookies,
)
data = res.json()["data"]
PHP
$response = Http::withCookies($session)->delete(
'https://taxmtd.uk/api/uc-statements',
['id' => 1]
);
$data = $response->json()['data'];
Rust
let res = client.delete("https://taxmtd.uk/api/uc-statements")
.json(&serde_json::json!({ "id": 1 }))
.send().await?;
cURL
curl -X DELETE https://taxmtd.uk/api/uc-statements \
-H "Content-Type: application/json" \
-d '{"id":1}'
UC Statement Data Model
| Field | Type | Description |
|---|---|---|
paymentDate | string | Date payment received |
paymentAmount | number | Headline payment amount |
standardAllowance | number | Base UC amount |
housingElement | number | Housing costs support |
childrenElement | number | Child element totals |
totalEntitlement | number | Sum of all elements |
claimant1Name | string | Name of claimant 1 |
claimant1Earnings | number | Claimant 1 earnings |
claimant2Name | string | Self-employed claimant |
claimant2SelfEmploymentEarnings | number | SE gross income |
claimant2PreviousLosses | number | Carried-forward losses |
minimumIncomeFloor | number | MIF threshold |
usedEarnings | number | Earnings used by DWP |
workAllowance | number | Earnings before taper |
taperRate | number | Deduction rate (0.55) |
takeHomePay | number | Total earnings deduction |
savingsDeduction | number | Capital/savings deduction |
totalDeductions | number | Combined deductions |
sourceFile | string | Base64-encoded UC letter |
sourceFilename | string | Original filename |
sourceMimeType | string | MIME type of source |