---
title: "Create an invitation for a user to join a partner"
method: POST
path: "/api/v1/partners/{partnerId}/invitations"
tags: ["Partner Invitations"]
---

# Create an invitation for a user to join a partner

`POST /api/v1/partners/{partnerId}/invitations`

## Request

- Base URL: `https://core.quidkey.com`
- URL: `https://core.quidkey.com/api/v1/partners/{partnerId}/invitations`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/banqzinc/apis/quidkey-api/docs/api/v1/partners/:partnerId/invitations/post.ts> (a function with typed inputs; its response is checked against the schema)

Create an invitation for a user to join a partner

## Path parameters

- `partnerId` string, uuid, required

## Request body

- InvitationCreateBody: Request body for creating an invitation
  - `email` string, email, required: Invitee email address
  - `role` string, required: Role to grant (e.g. admin, admin-read-only)

## Response `201`

Created

- InvitationWithLinkResponse: Response containing an invitation with one-time link (create/resend)
  - `success` boolean, required: Indicates if the request was successful
  - `data` object, required: Invitation with one-time link (returned on create/resend only)
    - `id` string, uuid, required: Invitation ID
    - `email` string, email, required: Invitee email address
    - `scope_type` union, required: The scope this invitation grants access to
      - 'partner'
      - 'merchant'
    - `scope_id` string, uuid, required: Partner or merchant ID the invitation is for
    - `role` string, required: Role to grant upon acceptance (e.g. admin, admin-read-only)
    - `status` union, required: Current status of the invitation
      - 'pending'
      - 'accepted'
      - 'revoked'
      - 'expired'
    - `expires_at` string, date-time, required: When this invitation expires
    - `invited_by_user_id` string, uuid, nullable, required: User ID of the person who created this invitation (null if user was deleted)
    - `accepted_at` string, date-time, nullable, required: When the invitation was accepted
    - `accepted_by_user_id` string, uuid, nullable, required: User ID of the person who accepted
    - `last_sent_at` string, date-time, required: When the invitation email was last sent
    - `send_count` number, required: Number of times the invitation email has been sent
    - `created_at` string, date-time, required: When the invitation was created
    - `invitation_link` string, uri, required: One-time invitation link (only returned on create/resend, not stored server-side)

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `409`: Response

## Changes

- **2026-06-17** `b372e7d5563d`: 1 info
  - endpoint added
- **2025-11-02** `919eb7a392aa`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/banqzinc/apis/quidkey-api/changes/api/v1/partners/:partnerId/invitations/post.md)

---

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