---
title: "Offer referral to a candidate"
method: POST
path: "/api/v1/sub-out/{referralId}/offer"
tags: ["sub-out"]
---

# Offer referral to a candidate

`POST /api/v1/sub-out/{referralId}/offer`

## Request

- Base URL: `http://localhost:3002`
- URL: `http://localhost:3002/api/v1/sub-out/{referralId}/offer`
- Auth: HTTP bearer

Originating captain offers the sub-out referral to a specific candidate tenant from the shortlist. Per spec §10.9, candidateTenantId is the candidate captain's tenant identity, not their captain id.

## Path parameters

- `referralId` string, required

## Headers

- `Idempotency-Key` string, uuid: Client-supplied UUID v4. Repeat requests with the same key return the cached response.

## Request body

- OfferToCandidateBody
  - `candidateTenantId` string, required

## Response `200`

Offer recorded

- object
  - `data` SubOutReferral, required
    - `id` string, required
    - `sourceType` string, required
    - `sourceId` string, required
    - `bookingId` string, nullable, required
    - `subOutState` string, nullable, required
    - `subOutReason` string, nullable, required
    - `status` string, required
    - `targetType` string, required
    - `targetId` string, required
    - `currentOfferId` string, nullable
    - `offerExpiresAt` string, date-time, nullable
    - `ownerApproval` string, nullable

## Other responses

- `400`: Request body or query parameters failed validation.
- `401`: Authentication required, or the bearer token is missing or invalid.
- `404`: The requested resource does not exist (existence is not leaked).
- `409`: Idempotency-Key was reused with a different request body
- `412`: Error

---

[API](https://skmtc.dev/chartercaptain/apis/charter-captain-api.md) · [All operations](https://skmtc.dev/chartercaptain/apis/charter-captain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/chartercaptain/apis/charter-captain-api/revisions/1ffea1113adb?raw)
