### Copenhagen Truck Wash API Help

# Authenticate subuser with password

This endpoint documentation is generated directly from `openapi.yaml`.

## Endpoint

POST /subusers/auth/password

## Operation

Operation ID: `subuserPasswordAuth`

Authenticates a subuser (driver) using a password together with one of the supported identifiers: `phone_country_code` + `phone`, `subuser_id`, or `username`. On success, returns a newly generated session token for the subuser.

## Authentication

No authentication required.

## Request Body

Required: yes.

Content type: `application/json`

{ "oneOf": [ { "properties": { "password": { "format": "password", "maxLength": 255, "minLength": 8, "type": "string" }, "phone": { "description": "Phone number (4–15 digits, no leading +)", "example": 12345678, "maximum": 999999999999999, "minimum": 1000, "type": "integer" }, "phone_country_code": { "description": "Phone country code (1–3 digits)", "example": 45, "maximum": 999, "minimum": 1, "type": "integer" } }, "required": [ "phone_country_code", "phone", "password" ], "type": "object" }, { "properties": { "password": { "format": "password", "maxLength": 255, "minLength": 8, "type": "string" }, "subuser_id": { "description": "Subuser ID", "example": 42, "type": "integer" } }, "required": [ "subuser_id", "password" ], "type": "object" }, { "properties": { "password": { "format": "password", "maxLength": 255, "minLength": 8, "type": "string" }, "username": { "example": "jdoe", "maxLength": 255, "minLength": 3, "type": "string" } }, "required": [ "username", "password" ], "type": "object" } ] }

## Responses

Status | Description | Content Types
--- | --- | ---
200 | Authentication successful | application/json
400 |  |
404 |  |
500 |  |

Schema for response `200` (`application/json`):

{ "oneOf": [ { "properties": { "session": { "description": "Newly generated subuser session token", "example": "2f7a8c0e-9b1d-4c6a-91a9-1a2b3c4d5e6f", "type": "string" } }, "required": [ "session" ], "type": "object" }, { "properties": { "2fa_required": { "example": true, "type": "boolean" }, "2fa_token": { "description": "Temporary 2FA verification token", "example": "557a3e7b1a2b...", "type": "string" } }, "required": [ "2fa_required", "2fa_token" ], "type": "object" } ] }
17 March 2026