---
title: "Initialize a transaction"
method: POST
path: "/{tenant_id}/transaction/initialize"
---

# Initialize a transaction

`POST /{tenant_id}/transaction/initialize`

Initializes a new transaction for an existing user

## Path parameters

- `tenant_id` string, uuid, required

## Headers

- `apiKey` string, required

## Request body

- object
  - `user_id` string, required
  - `transaction_id` string, required — Needs to be a tenant-wide unique identifier
  - `transaction_data` object, required

## Response `200`

Example response

- object
  - `publicKey` object
    - `challenge` string, required
    - `timeout` integer
    - `rpId` string
    - `allowCredentials` CredentialDescriptorEntity[]
      - `type` 'public-key', required
      - `id` string, required
      - `transports` string[]
    - `userVerification` 'discouraged' | 'preferred' | 'required'
    - `extensions` object
      - `appid` boolean
      - `appidExclude` boolean
      - `credProps` object
        - `rk` boolean
  - `mediation` 'optional' | 'required' | 'silent'

## Other responses

- `400` — Error Response with detailed information
- `401` — Error Response with detailed information
- `404` — Error Response with detailed information
- `409` — Error Response with detailed information
- `500` — Error Response with detailed information

---

[API](https://skmtc.net/hanko/apis/hanko-admin-api.md) · [All operations](https://skmtc.net/hanko/apis/hanko-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hanko/hanko-admin-api/versions/d22a127b0978/schema)
