API-referens
Avtalen
El, bredband, försäkring och andra avtal, med bindningstid och uppsägning.
GET
/api/v1/houses/{houseId}/contracts
operationId listContracts
- Bearer-token
- Kräver läsrätt i huset
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
Exempel
curl -X GET "https://husvo.app/api/v1/houses/1/contracts" \
-H "Authorization: Bearer $TOKEN"
Svar
200 Klart · ContractListResponse
{
"items": [
{
"id": 1,
"kind": "text",
"kindLabel": "text",
"provider": "text",
"name": "text",
"costKr": 1,
"costPeriod": "text",
"yearlyKr": 1,
"startedAt": "2026-11-13",
"endsAt": "2026-11-13",
"noticeMonths": 1,
"lastNoticeDay": "2026-11-13",
"daysLeft": 1,
"state": "text",
"stateLabel": "text",
"notes": "text",
"applianceId": 1,
"applianceName": "text",
"createdAt": "2026-11-13T08:00:00Z"
}
],
"totalYearlyKr": 1,
"windowDays": 1
}
Fel, som problem+json (felkoderna):
- 404Finns inte, eller inte för dig
POST
/api/v1/houses/{houseId}/contracts
operationId addContract
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
- Tar Idempotency-Key
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
Kropp application/json · AddContractBody
| Fält | Typ | Krävs |
kind |
string |
nej |
provider |
string |
nej |
costKr |
integer |
nej |
costPeriod |
string |
nej |
startedAt |
datum |
nej |
endsAt |
datum |
nej |
bindingMonths |
integer |
nej |
noticeMonths |
integer |
nej |
notes |
string |
nej |
applianceId |
integer |
nej |
{
"kind": "text",
"provider": "text",
"costKr": 1,
"costPeriod": "text",
"startedAt": "2026-11-13",
"endsAt": "2026-11-13",
"bindingMonths": 1,
"noticeMonths": 1,
"notes": "text",
"applianceId": 1
}
Exempel
curl -X POST "https://husvo.app/api/v1/houses/1/contracts" \
-H "Authorization: Bearer $TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"kind":"text","provider":"text","costKr":1,"costPeriod":"text","startedAt":"2026-11-13","endsAt":"2026-11-13","bindingMonths":1,"noticeMonths":1,"notes":"text","applianceId":1}'
Svar
201 Skapad · ContractDto
{
"id": 1,
"kind": "text",
"kindLabel": "text",
"provider": "text",
"name": "text",
"costKr": 1,
"costPeriod": "text",
"yearlyKr": 1,
"startedAt": "2026-11-13",
"endsAt": "2026-11-13",
"noticeMonths": 1,
"lastNoticeDay": "2026-11-13",
"daysLeft": 1,
"state": "text",
"stateLabel": "text",
"notes": "text",
"applianceId": 1,
"applianceName": "text",
"createdAt": "2026-11-13T08:00:00Z"
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
GET
/api/v1/houses/{houseId}/contracts/{contractId}
operationId getContract
- Bearer-token
- Kräver läsrätt i huset
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
contractId |
adressen |
integer |
ja |
Exempel
curl -X GET "https://husvo.app/api/v1/houses/1/contracts/1" \
-H "Authorization: Bearer $TOKEN"
Svar
200 Klart · ContractDto
{
"id": 1,
"kind": "text",
"kindLabel": "text",
"provider": "text",
"name": "text",
"costKr": 1,
"costPeriod": "text",
"yearlyKr": 1,
"startedAt": "2026-11-13",
"endsAt": "2026-11-13",
"noticeMonths": 1,
"lastNoticeDay": "2026-11-13",
"daysLeft": 1,
"state": "text",
"stateLabel": "text",
"notes": "text",
"applianceId": 1,
"applianceName": "text",
"createdAt": "2026-11-13T08:00:00Z"
}
Fel, som problem+json (felkoderna):
- 404Finns inte, eller inte för dig
PATCH
/api/v1/houses/{houseId}/contracts/{contractId}
operationId updateContract
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
contractId |
adressen |
integer |
ja |
Kropp application/json · PatchContractBody
| Fält | Typ | Krävs |
kind |
string |
nej |
provider |
string |
nej |
costKr |
integer |
nej |
costPeriod |
string |
nej |
startedAt |
datum |
nej |
endsAt |
datum |
nej |
bindingMonths |
integer |
nej |
noticeMonths |
integer |
nej |
notes |
string |
nej |
applianceId |
integer |
nej |
clearCost |
boolean |
nej |
clearStartedAt |
boolean |
nej |
clearEndsAt |
boolean |
nej |
clearAppliance |
boolean |
nej |
{
"kind": "text",
"provider": "text",
"costKr": 1,
"costPeriod": "text",
"startedAt": "2026-11-13",
"endsAt": "2026-11-13",
"bindingMonths": 1,
"noticeMonths": 1,
"notes": "text",
"applianceId": 1,
"clearCost": false,
"clearStartedAt": false,
"clearEndsAt": false,
"clearAppliance": false
}
Exempel
curl -X PATCH "https://husvo.app/api/v1/houses/1/contracts/1" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"kind":"text","provider":"text","costKr":1,"costPeriod":"text","startedAt":"2026-11-13","endsAt":"2026-11-13","bindingMonths":1,"noticeMonths":1,"notes":"text","applianceId":1,"clearCost":false,"clearStartedAt":false,"clearEndsAt":false,"clearAppliance":false}'
Svar
200 Klart · ContractDto
{
"id": 1,
"kind": "text",
"kindLabel": "text",
"provider": "text",
"name": "text",
"costKr": 1,
"costPeriod": "text",
"yearlyKr": 1,
"startedAt": "2026-11-13",
"endsAt": "2026-11-13",
"noticeMonths": 1,
"lastNoticeDay": "2026-11-13",
"daysLeft": 1,
"state": "text",
"stateLabel": "text",
"notes": "text",
"applianceId": 1,
"applianceName": "text",
"createdAt": "2026-11-13T08:00:00Z"
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
DELETE
/api/v1/houses/{houseId}/contracts/{contractId}
operationId deleteContract
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
contractId |
adressen |
integer |
ja |
Exempel
curl -X DELETE "https://husvo.app/api/v1/houses/1/contracts/1" \
-H "Authorization: Bearer $TOKEN"
Svar
204 Klart, inget innehåll
Inget innehåll.
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig