---
title: "Create a tenant invitation"
method: POST
path: "/platform/tenants/{tenantId}/invitations"
tags: ["Platform Tenants"]
---

# Create a tenant invitation

`POST /platform/tenants/{tenantId}/invitations`

## Request

- Base URL: `http://localhost:3200`
- URL: `http://localhost:3200/platform/tenants/{tenantId}/invitations`
- Auth: API key in header `X-Steward-Platform-Key`
- TypeScript: <https://skmtc.dev/steward-fi/apis/steward-api/docs/platform/tenants/:tenantId/invitations/post.ts> (a function with typed inputs; its response is checked against the schema)

Requires platform:tenant-member:write. Returns the single-use invitation token exactly once, stores only its hash, sets no-store response headers at runtime, and audits create/rollback behavior around pending invitation replacement.

## Headers

- `X-Steward-Request-Timestamp` string
- `X-Steward-Request-Expires-At` string
- `X-Steward-Signature` string
- `X-Steward-Signing-Key-Id` string
- `Idempotency-Key` string

## Request body

- object
  - `email` string, email, required
  - `role` 'owner' | 'admin' | 'member'
  - `expiresInSeconds` integer
  - `invitedByUserId` string
  - `sendEmail` boolean

## Response `201`

JSON response

- object
  - `ok` true, required
  - `data` object, required
    - `invitation` object, required
      - `id` string, required
      - `tenantId` string, required
      - `email` string, email, required
      - `role` 'owner' | 'admin' | 'member', required
      - `status` 'pending' | 'accepted' | 'revoked' | 'expired', required
      - `invitedByUserId` string, nullable
      - `acceptedByUserId` string, nullable
      - `acceptedAt` string, date-time, nullable
      - `revokedAt` string, date-time, nullable
      - `expiresAt` string, date-time, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time
    - `token` string, required
    - `emailSent` boolean, required

## Other responses

- `400`: JSON response
- `401`: JSON response
- `403`: JSON response
- `404`: JSON response
- `408`: JSON response
- `409`: JSON response

## Changes

- **2026-08-17** `261a7c8070b2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/steward-fi/apis/steward-api/changes/platform/tenants/:tenantId/invitations/post.md)

---

[API](https://skmtc.dev/steward-fi/apis/steward-api.md) - [All operations](https://skmtc.dev/steward-fi/apis/steward-api/llms.txt) - [OpenAPI document](https://skmtc.dev/steward-fi/apis/steward-api/revisions/b88b4b97a664?raw)
