---
title: "Record user-supplied service evidence"
method: POST
path: "/api/v1/vehicles/{id}/service-evidence-requests/{requestId}/submissions"
---

# Record user-supplied service evidence

`POST /api/v1/vehicles/{id}/service-evidence-requests/{requestId}/submissions`

## Request

- Base URL: `https://fleetkeep.co.uk`
- URL: `https://fleetkeep.co.uk/api/v1/vehicles/{id}/service-evidence-requests/{requestId}/submissions`
- Auth: OAuth 2 (authorization code, authorization URL `https://fleetkeep.co.uk/auth/oauth2/authorize`, token URL `https://fleetkeep.co.uk/auth/oauth2/token`, scopes: `maintenance:write`)

Use actual user-provided facts only. First call returns a confirmation challenge. Show the proposed action and use the returned token only after approval, with the same payload and idempotency key.

## Path parameters

- `id` string, uuid, required
- `requestId` string, uuid, required

## Headers

- `x-fleetkeep-confirmation` string

## Request body

- object
  - `submittedByName` string, nullable
  - `submittedByEmail` string, email, nullable
  - `serviceDate` string, date, nullable
  - `odometerMileage` integer, nullable
  - `statement` string, nullable
  - `documentIds` string[], required
  - `submittedAt` string, date-time, nullable: Optional actual timestamp. When omitted, Fleetkeep records the time after confirmation succeeds.

## Response `200`

Confirmed result or exact retry readback

## Other responses

- `409`: Confirmation required or stale evidence

---

[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)
