> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getprimo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Complete onboardings in bulk

> Close many onboardings for employees already in post in one call. Each one creates the employee from the connected HRIS data if needed and marks the employee active, without executing the remaining onboarding actions (no equipment ordered, no SaaS provisioned). Best-effort and independent: the call returns 200 with a per-id `results` manifest (`ok` / `error`) — always inspect `results` rather than the HTTP status to detect partial failures. Up to 100 ids per call.

<span className="badge-write">Key: Write</span><span className="badge-company">Scope: Company</span>


## OpenAPI

````yaml https://api.getprimo.com/openapi.json post /onboardings/complete
openapi: 3.1.1
info:
  title: Public API - BETA
  description: Read docs on https://docs.getprimo.com/
  version: '1.0'
  contact: {}
servers:
  - url: https://api.getprimo.com
security:
  - apikey: []
tags: []
paths:
  /onboardings/complete:
    post:
      tags:
        - Onboardings
      summary: Complete onboardings in bulk
      description: >-
        Close many onboardings for employees already in post in one call. Each
        one creates the employee from the connected HRIS data if needed and
        marks the employee active, without executing the remaining onboarding
        actions (no equipment ordered, no SaaS provisioned). Best-effort and
        independent: the call returns 200 with a per-id `results` manifest (`ok`
        / `error`) — always inspect `results` rather than the HTTP status to
        detect partial failures. Up to 100 ids per call.
      operationId: completeOnboardings
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompleteOnboardingsBody'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompleteOnboardingsResult_Output'
components:
  schemas:
    CompleteOnboardingsBody:
      type: object
      properties:
        onboardingIds:
          description: >-
            IDs of the onboardings to complete (1-100, unique). Best-effort and
            independent: inspect the per-id `results` — the HTTP status is 200
            even when some items fail.
          minItems: 1
          maxItems: 100
          type: array
          items:
            type: string
      required:
        - onboardingIds
    CompleteOnboardingsResult_Output:
      type: object
      properties:
        successCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        failureCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        results:
          type: array
          description: Per-onboarding outcome, in the same order as the input.
          items:
            type: object
            properties:
              onboardingId:
                type: string
              status:
                type: string
                enum:
                  - ok
                  - error
              errorCode:
                description: Machine-readable error code when status is "error".
                anyOf:
                  - type: string
                  - type: 'null'
            required:
              - onboardingId
              - status
            additionalProperties: false
      required:
        - successCount
        - failureCount
        - results
      additionalProperties: false
  securitySchemes:
    apikey:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: >-
        Use your Primo API key in the Authorization header as `Bearer
        <API_KEY>`.

````