---
title: "Rejects a transfer that is awaiting approval (Pending Approvals → Reject)."
method: POST
path: "/api/v1/transfers/{id}/reject"
tags: ["Transfers"]
---

# Rejects a transfer that is awaiting approval (Pending Approvals → Reject).

`POST /api/v1/transfers/{id}/reject`

## Request

- Base URL: `https://app.flexonthejob.com`
- URL: `https://app.flexonthejob.com/api/v1/transfers/{id}/reject`
- Auth: HTTP bearer

Requires `ManageTransfers` and an `Idempotency-Key` header. Body:
`{ "reason": "Van 2 is out of service this week." }` — the reason is required. Only a
transfer whose `approvalStatus` is `Pending` and whose `status` is still
`Pending` or `Draft` can be rejected. The transfer is
cancelled, the reason is stored as `rejectionReason` and the requester is emailed.

## Path parameters

- `id` integer, required

## Request body

- RejectTransferRequest: Body of `POST /api/v1/transfers/{id}/reject`. Example: `{ "reason": "Van 2 is out of service this week." }`.
  - `reason` string, required: Why the transfer is rejected (required, 1–1000 characters). Stored on the approval and emailed to the person who requested it. Example: `Van 2 is out of service this week.`

## Response `200`

Transfer id and confirmation message (`Transfer rejected.`).

- ApiOperationResponse: Body of a successful workflow-style write that has no richer resource to return (assign, start, complete, void…). Id is the affected resource's id; Warning carries a non-fatal note from the service (e.g. an email that could not be sent).
  - `id` integer: Id of the resource the operation acted on (e.g. the job id).
  - `message` string, nullable: Human-readable confirmation from the service (e.g. "Job started."). May be null.
  - `warning` string, nullable: Non-fatal problem encountered while completing the operation (e.g. a notification email that could not be sent). Null when there was none.

## Other responses

- `400`: Missing `Idempotency-Key` or a blank `reason` (listed in `errors`).
- `401`: Unauthorized
- `403`: Forbidden
- `404`: No such transfer in this organization.
- `409`: The transfer has no pending approval (none requested, already decided, or the transfer was since cancelled, completed or moved), or the key's creator is unknown on this server.
- `429`: Too Many Requests
- `500`: The rejection could not be saved. Retry with the same `Idempotency-Key`.

---

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