---
title: "Bulk create stations"
method: POST
path: "/v1/stations"
tags: ["Stations"]
---

# Bulk create stations

`POST /v1/stations`

## Request

- Base URL: `https://api.finalpos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.finalpos.com/v1/stations`
- Auth: API key in header `x-api-key`

Bulk creates multiple stations in a single request. Returns per-item results with success/error status for each item.

## Request body

- BulkCreateRequestDto
  - `items` BulkCreateItemDto[], required: Array of items to create
    - `data` object, required: The data payload for the item to create
    - `clientRef` string: Client-provided reference key for correlating request items with response results
  - `options` BulkOptionsDto
    - `onError` 'continue' | 'abort': How to handle item-level failures. "continue" processes all items and reports per-item status. "abort" stops on the first failure.

## Response `200`

Bulk operation completed. Each item in the results array indicates success or failure.

- object
  - `summary` BulkSummaryDto
    - `total` number, required: Total number of items in the bulk operation
    - `succeeded` number, required: Number of items that succeeded
    - `failed` number, required: Number of items that failed
    - `skipped` number: Number of items skipped (abort policy only)
  - `results` union[]
    - union
      - object
        - `index` number
        - `status` 'success'
        - `data` StationResponseDto
          - `id` string: Unique identifier for the Station.
          - `createdAt` string, date-time: Timestamp when the Station was created.
          - `updatedAt` string, date-time: Timestamp when the Station was last updated.
          - `companyId` string: Company ID associated with the Station.
          - `name` string: Name of the station.
          - `outletId` string: ID of the outlet this station belongs to.
          - `status` 'IN_USE' | 'AVAILABLE': Status of the station.
          - `deviceId` string: Device ID of the station.
          - `deviceName` string: Name of the device.
          - `stripeTerminalId` string: Stripe terminal ID of the station.
          - `serialReaderId` string: Serial reader ID of the station.
          - `sequenceNumber` number: Sequence number of the station.
          - `isVirtual` boolean: Whether the station is virtual.
          - `enrolledBy` string: User who enrolled the station.
          - `flowRuntime` object: Flow build this station is running, reported by station-home after an auto-publish rollout applies or arms: the live version, and any newer version it is holding with where it is in that rollout. Observational — absent until the station first reports.
          - `terminals` object[]: Terminal configurations for the station.
          - `buildSrcId` string: Source build ID of the station.
          - `flowSrcId` string: Source flow ID of the station.
        - `clientRef` string
      - BulkItemErrorResultDto
        - `index` number, required: Zero-based index of the item in the request array
        - `status` 'error', required: Result status
        - `error` BulkItemErrorDetail, required
          - `statusCode` number, required: HTTP-style status code for this item
          - `message` string, required: Error message
        - `clientRef` string: Client-provided reference key echoed back

## Other responses

- `400`: Bad request. The bulk request itself is invalid (e.g., malformed body, exceeds max items).

---

[API](https://skmtc.dev/finalpos/apis/final-pos-public-api.md) · [All operations](https://skmtc.dev/finalpos/apis/final-pos-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/finalpos/apis/final-pos-public-api/revisions/6a6842dcb479?raw)
