---
title: "Create a new station"
method: POST
path: "/v1/station"
tags: ["Station"]
---

# Create a new station

`POST /v1/station`

## 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/station`
- Auth: API key in header `x-api-key`

Creates a new station record.

## Request body

- StationCreateDto
  - `name` string, required: Name of the station.
  - `outletId` string, required: ID of the outlet this station belongs to.
  - `status` 'IN_USE' | 'AVAILABLE', required: 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.

## Response `201`

The station has been successfully created.

- 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.

## Other responses

- `400`: Bad request. Returns validation errors or other request-related errors.

---

[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)
