Contracts
List, retrieve, create, and edit service contracts / billing entries.
Contracts (called service entries internally) represent services rendered to a client — including billing details like fee, tax, and total.
List contracts
GET /contractsQuery parameters
| Parameter | Type | Description |
|---|---|---|
clientId | string | Filter by client UUID |
search | string | Filter by service name or service type |
limit | number | Max results (default 50, max 100) |
offset | number | Pagination offset |
Example
curl "https://api.untangly.com/contracts?clientId=3fa85f64-..." \
-H "Authorization: Bearer mint_<key>"Response
{
"contracts": [
{
"id": 42,
"clientId": "3fa85f64-...",
"serviceName": "2025 Tax Return",
"serviceType": "tax-filing",
"serviceFee": 350.0,
"taxPercent": 13.0,
"totalFeeWithTax": 395.5,
"serviceDate": "2026-04-15T00:00:00.000Z",
"notes": "T1 personal return",
"createdAt": "2026-04-15T10:00:00.000Z",
"updatedAt": "2026-04-15T10:00:00.000Z"
}
],
"total": 1
}Get contract details
GET /contracts/{id}id is a numeric contract ID.
Add a contract
POST /contractsRequest body
{
"clientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"serviceName": "2025 Tax Return",
"serviceType": "tax-filing",
"serviceFee": 350.0,
"taxPercent": 13,
"serviceDate": "2026-04-15",
"notes": "T1 personal return"
}| Field | Type | Required | Description |
|---|---|---|---|
clientId | string | ✅ | UUID of the client |
serviceName | string | ✅ | Display name for the service |
serviceType | string | ✅ | Category (e.g. "tax-filing", "bookkeeping") |
serviceFee | number | ✅ | Fee before tax |
taxPercent | number | — | Tax percentage (default 0) |
serviceDate | string | — | ISO date YYYY-MM-DD |
notes | string | — |
totalFeeWithTax is calculated automatically as serviceFee × (1 + taxPercent / 100).
Example
curl -X POST https://api.untangly.com/contracts \
-H "Authorization: Bearer mint_<key>" \
-H "Content-Type: application/json" \
-d '{
"clientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"serviceName": "2025 Tax Return",
"serviceType": "tax-filing",
"serviceFee": 350,
"taxPercent": 13
}'Edit a contract
PATCH /contracts/{id}Send only the fields you want to change. totalFeeWithTax is recalculated automatically when serviceFee or taxPercent is updated.
Example
curl -X PATCH "https://api.untangly.com/contracts/42" \
-H "Authorization: Bearer mint_<key>" \
-H "Content-Type: application/json" \
-d '{"serviceFee": 400, "notes": "Updated fee after review"}'