---
title: "Record a GBP expense. Keep the same UUID and payload on retries."
method: POST
path: "/api/v1/costs"
---

# Record a GBP expense. Keep the same UUID and payload on retries.

`POST /api/v1/costs`

## Request

- Base URL: `https://fleetkeep.co.uk`
- URL: `https://fleetkeep.co.uk/api/v1/costs`
- Auth: OAuth 2 (authorization code, authorization URL `https://fleetkeep.co.uk/auth/oauth2/authorize`, token URL `https://fleetkeep.co.uk/auth/oauth2/token`, scopes: `operations:write`)

## Request body

- object
  - `id` string, uuid, required
  - `vehicleId` string, uuid, required
  - `incurredOn` string, date, required
  - `category` 'fuel' | 'insurance' | 'repair' | 'parking' | 'other', required
  - `description` string, required
  - `amount` string, required: GBP decimal amount, up to two decimal places; negative for refunds.

## Response `200`

Recorded expense

## Other responses

- `409`: Submission UUID already used with different details

---

[API](https://skmtc.dev/fleetkeep/apis/fleetkeep-api.md) · [All operations](https://skmtc.dev/fleetkeep/apis/fleetkeep-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fleetkeep/apis/fleetkeep-api/revisions/ace19bc0d64d?raw)
