---
title: "offer.startApprovalProcess"
method: POST
path: "/offer.startApprovalProcess"
tags: ["Offer"]
---

# offer.startApprovalProcess

`POST /offer.startApprovalProcess`

Starts the approval process for an offer in a "WaitingOnApprovalStart" state.
Once started, the approval is sent to the configured approvers.

The offer version ID can be obtained from the offer (e.g. `offer.info` or `offer.list` response's `latestVersion.id`).

**Requires the [`offersWrite`](authentication#permissions-offerstartapprovalprocess) permission.**

## Request body

- OfferStartApprovalProcessRequest
  - `offerVersionId` string, uuid, required — The id of the offer version whose approval process should be started
  - `note` string, nullable — Optional note to attach to the approval request
  - `excludeFormDefinition` boolean, nullable — If true, omit the form definition from the response.

## Response `200`

Responses from the offer.startApprovalProcess endpoint

- union
  - OfferStartApprovalProcessSuccessResponse
    - `success` true, required
    - `results` Offer, required
      - `id` string, uuid, required — The unique identifier for the offer
      - `decidedAt` string, date-time, nullable — The time the offer was accepted or rejected
      - `applicationId` string, uuid, required — The id of the application associated with the offer
      - `acceptanceStatus` 'Accepted' | 'Declined' | 'Pending' | 'Created' | 'Cancelled', required — The candidate's acceptance status for the offer
      - `offerStatus` 'WaitingOnOfferCreation' | 'WaitingOnApprovalStart' | 'WaitingOnOfferApproval' | 'WaitingOnApprovalDefinition' | 'WaitingOnCandidateResponse' | 'CandidateRejected' | 'CandidateAccepted' | 'OfferCancelled', required — The current status of the offer process
      - `latestVersion` OfferVersion
        - `id` string, uuid, required — The unique identifier for the offer version
        - `startDate` string, date, nullable — The start date of the offer
        - `salary` OfferCurrencyNumericValue
          - `value` number, required — The numeric currency amount
          - `currencyCode` string, required — A valid ISO 4217 currency code
        - `createdAt` string, date-time, required — The time the offer version was created
        - `openingId` string, uuid, nullable — The id of the opening associated with the offer
        - `customFields` OfferCustomField[], nullable — Custom fields associated with the offer version
          - `id` string, uuid, required — The unique identifier for the custom field
          - `isPrivate` boolean, nullable — Whether the custom field is private
          - `title` string, required — The custom field title
          - `valueLabel` union — The display label for select custom field values
            - string
            - string[]
          - `value` union, required — The custom field value
            - boolean
            - OfferCurrencyNumericValue
              - …
            - string, date-time
            - string
            - string[]
            - number
            - object
              - …
            - object
              - …
        - `fileHandles` OfferFileHandle[], nullable — File handles associated with the offer version
          - `id` string, uuid, required — The unique identifier for the file
          - `name` string, required — The file name
          - `handle` string, required — The file handle that can be used with the file.info endpoint
        - `author` User
          - `id` string, uuid, required — The unique identifier for the user
          - `firstName` string, required — The user's first name
          - `lastName` string, required — The user's last name
          - `email` string, email, nullable, required — The user's email address
          - `globalRole` 'Organization Admin' | 'Elevated Access' | 'Limited Access' | 'External Recruiter', required — The user's global role in the organization
          - `isEnabled` boolean, required — Whether the user is enabled (not deactivated)
          - `updatedAt` string, required — The timestamp when the user was last updated (ISO 8601 format)
          - `managerId` string, uuid — The unique identifier for the user's manager
          - `customFields` CustomField[] — Custom fields associated with the user (only included when requested)
            - `id` string, uuid, required — The unique identifier for the custom field definition
            - `isPrivate` boolean, required — Whether the custom field is private
            - `title` string, required — The title of the custom field
            - `value` union, required — The value of the custom field
              - …
            - `valueLabel` union — The label of the custom field value. This is only present for value select custom fields.
              - …
        - `approvalStatus` 'Approved' | 'WaitingOnApprovals' | 'Declined' — The approval status of this offer version, if approvals are configured
      - `formDefinition` FormDefinition
        - `sections` FormDefinitionSection[], required — The sections in the form definition
          - `title` string, nullable — The section title
          - `descriptionHtml` string, nullable — The section description formatted as HTML
          - `descriptionPlain` string, nullable — The section description as plain text
          - `fields` FormDefinitionFieldEntry[], required — The fields in this form section
            - `isRequired` boolean, required — Whether this form field is required
            - `descriptionHtml` string, nullable — The field description formatted as HTML
            - `descriptionPlain` string, nullable — The field description as plain text
            - `field` FormDefinitionField, required
              - …
      - `versions` OfferVersion[], nullable — The versions of the offer
        - `id` string, uuid, required — The unique identifier for the offer version
        - `startDate` string, date, nullable — The start date of the offer
        - `salary` OfferCurrencyNumericValue
          - `value` number, required — The numeric currency amount
          - `currencyCode` string, required — A valid ISO 4217 currency code
        - `createdAt` string, date-time, required — The time the offer version was created
        - `openingId` string, uuid, nullable — The id of the opening associated with the offer
        - `customFields` OfferCustomField[], nullable — Custom fields associated with the offer version
          - `id` string, uuid, required — The unique identifier for the custom field
          - `isPrivate` boolean, nullable — Whether the custom field is private
          - `title` string, required — The custom field title
          - `valueLabel` union — The display label for select custom field values
            - string
            - string[]
          - `value` union, required — The custom field value
            - boolean
            - OfferCurrencyNumericValue
              - …
            - string, date-time
            - string
            - string[]
            - number
            - object
              - …
            - object
              - …
        - `fileHandles` OfferFileHandle[], nullable — File handles associated with the offer version
          - `id` string, uuid, required — The unique identifier for the file
          - `name` string, required — The file name
          - `handle` string, required — The file handle that can be used with the file.info endpoint
        - `author` User
          - `id` string, uuid, required — The unique identifier for the user
          - `firstName` string, required — The user's first name
          - `lastName` string, required — The user's last name
          - `email` string, email, nullable, required — The user's email address
          - `globalRole` 'Organization Admin' | 'Elevated Access' | 'Limited Access' | 'External Recruiter', required — The user's global role in the organization
          - `isEnabled` boolean, required — Whether the user is enabled (not deactivated)
          - `updatedAt` string, required — The timestamp when the user was last updated (ISO 8601 format)
          - `managerId` string, uuid — The unique identifier for the user's manager
          - `customFields` CustomField[] — Custom fields associated with the user (only included when requested)
            - `id` string, uuid, required — The unique identifier for the custom field definition
            - `isPrivate` boolean, required — Whether the custom field is private
            - `title` string, required — The title of the custom field
            - `value` union, required — The value of the custom field
              - …
            - `valueLabel` union — The label of the custom field value. This is only present for value select custom fields.
              - …
        - `approvalStatus` 'Approved' | 'WaitingOnApprovals' | 'Declined' — The approval status of this offer version, if approvals are configured
  - ErrorResponse
    - `success` false, required
    - `errors` ErrorDetail[], required
      - `message` string, required
      - `parameter` string

---

[API](https://skmtc.net/ashbyhq/apis/ashby-api.md) · [All operations](https://skmtc.net/ashbyhq/apis/ashby-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ashbyhq/ashby-api/revisions/778b919dc743/schema)
