Zum Inhalt springen
Ressource · Workspace

Invitations

An invitation asks a person, by email, to join a workspace with a given role.

invitations:readinvitations:write
MethodePfadZusammenfassung
GET…/invitationsList workspace invitations
POST…/invitationsCreate and send a workspace invitation
DELETE…/invitations/{invitationId}Delete (cancel) a pending invitation
GET…/invitations/{invitationId}Get detailed information about an invitation
POST…/invitations/{invitationId}/resendResend a pending invitation email
POST…/invitations/{invitationId}/consumeConsume an invitation to join the workspace

Die Pfade beginnen mit /workspaces/{workspaceId}. GET-Endpunkte brauchen invitations:read, die übrigen invitations:write.

Das Objekt Invitation

firestoreIdstringerforderlich

ID of the invitation.

workspaceIdstringerforderlich

ID of the workspace.

inviterIdstringerforderlich

ID of the user.

statusstringerforderlich

Status of the invitation.

  • pending

    The invitation waits for the invited person to accept it.

  • consumed

    The invited person accepted the invitation and became a member of the workspace.

rolestringerforderlich

Role of the user, which sets its permissions in a workspace (ws.) or a billing account (ba.).

  • ws.owner

    Owner of the workspace, with every permission, including deleting the workspace and managing owners.

  • ws.admin

    Administrator of the workspace, with every permission except managing owners and deleting the workspace or its files.

  • ws.member

    Member of the workspace, who works on its transactions, invoices, payments and accounting but manages neither its bank accounts nor its members.

  • ws.viewer

    Viewer of the workspace, a role that grants no permission.

  • ws.support

    Sway support access, granted when you invite the Sway bot.

  • ba.owner

    Owner of the billing account, with every permission, including deleting it.

  • ba.admin

    Administrator of the billing account, who reads and updates it but cannot delete it.

  • ba.member

    Member of the billing account, who can only read it.

emailstringemailerforderlich
expirationDateTimestringdate-time
Das Objekt Invitation
{
  "firestoreId": "In8rD4sF7jPw2yKm6tQb",
  "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
  "inviterId": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj",
  "status": "pending",
  "role": "ws.owner",
  "email": "anna.meier@example.com",
  "expirationDateTime": "2026-03-02T09:30:00.000Z"
}
GET/workspaces/{workspaceId}/invitations

List workspace invitations

Bereichinvitations:read

Pfadparameter

workspaceIdstringerforderlich

ID of the workspace.

Abfrageparameter

limitinteger

Maximum number of items to return, from 1 to 100. A missing, invalid or non-positive value falls back to 20, and a larger value to 100.

Standard20

startAfterstring

Cursor of the page to return: the nextCursor of the previous page.

fieldsstring

Comma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.

idsstring[]

Comma-separated IDs of the items to return, up to 30. When set, limit, startAfter and the filters are ignored.

Rückgabe

200

List of items

dataInvitation[]erforderlich

Items of the page, in list order.

limitintegererforderlich

Page size of the request, or the number of requested ids.

nextCursorstring

Cursor of the next page, to pass as startAfter. Absent when the page holds fewer items than limit; a full last page still has one, and the page it points to is empty.

curl 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/invitations' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "data": [
    {
      "firestoreId": "In8rD4sF7jPw2yKm6tQb",
      "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
      "inviterId": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj",
      "status": "pending",
      "role": "ws.owner",
      "email": "anna.meier@example.com",
      "expirationDateTime": "2026-03-02T09:30:00.000Z"
    }
  ],
  "limit": 20
}
POST/workspaces/{workspaceId}/invitations

Create and send a workspace invitation

Bereichinvitations:write

Pfadparameter

workspaceIdstringerforderlich

ID of the workspace.

Abfrageparameter

fieldsstring

Comma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.

Request-Body

emailstringerforderlich
rolestringerforderlich

Wertews.ownerws.adminws.memberws.viewerba.ownerba.adminba.member

Rückgabe

200

Successful response

dataInvitationerforderlich
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/invitations' \
  -H "Authorization: Bearer $SWAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "email": "anna.meier@example.com",
  "role": "ws.owner"
}'
{
  "data": {
    "firestoreId": "In8rD4sF7jPw2yKm6tQb",
    "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
    "inviterId": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj",
    "status": "pending",
    "role": "ws.owner",
    "email": "anna.meier@example.com",
    "expirationDateTime": "2026-03-02T09:30:00.000Z"
  }
}
DELETE/workspaces/{workspaceId}/invitations/{invitationId}

Delete (cancel) a pending invitation

Bereichinvitations:write

Pfadparameter

workspaceIdstringerforderlich

ID of the workspace.

invitationIdstringerforderlich

ID of the invitation.

Rückgabe

204

No content

curl -X DELETE 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/invitations/In8rD4sF7jPw2yKm6tQb' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
GET/workspaces/{workspaceId}/invitations/{invitationId}

Get detailed information about an invitation

Bereichinvitations:read

Pfadparameter

workspaceIdstringerforderlich

ID of the workspace.

invitationIdstringerforderlich

ID of the invitation.

Abfrageparameter

fieldsstring

Comma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.

emailstringerforderlich

Rückgabe

200

Successful response

dataDetailedInvitationerforderlich
8 untergeordnete Felder anzeigen
firestoreIdstringerforderlich

ID of the invitation.

workspaceIdstringerforderlich

ID of the workspace.

inviterIdstringerforderlich

ID of the user.

statusstringerforderlich

Status of the invitation.

  • pending

    The invitation waits for the invited person to accept it.

  • consumed

    The invited person accepted the invitation and became a member of the workspace.

rolestringerforderlich

Role of the user, which sets its permissions in a workspace (ws.) or a billing account (ba.).

  • ws.owner

    Owner of the workspace, with every permission, including deleting the workspace and managing owners.

  • ws.admin

    Administrator of the workspace, with every permission except managing owners and deleting the workspace or its files.

  • ws.member

    Member of the workspace, who works on its transactions, invoices, payments and accounting but manages neither its bank accounts nor its members.

  • ws.viewer

    Viewer of the workspace, a role that grants no permission.

  • ws.support

    Sway support access, granted when you invite the Sway bot.

  • ba.owner

    Owner of the billing account, with every permission, including deleting it.

  • ba.admin

    Administrator of the billing account, who reads and updates it but cannot delete it.

  • ba.member

    Member of the billing account, who can only read it.

emailstringemailerforderlich
expirationDateTimestringdate-time
detailsobjecterforderlich
3 untergeordnete Felder anzeigen
inviterNamestringerforderlich
workspaceNamestringerforderlich
workspacePhotoUrlstringuri
curl 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/invitations/In8rD4sF7jPw2yKm6tQb?email=anna.meier%40example.com' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "data": {
    "firestoreId": "In8rD4sF7jPw2yKm6tQb",
    "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
    "inviterId": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj",
    "status": "pending",
    "role": "ws.owner",
    "email": "anna.meier@example.com",
    "expirationDateTime": "2026-03-02T09:30:00.000Z",
    "details": {
      "inviterName": "string",
      "workspaceName": "string",
      "workspacePhotoUrl": "https://example.com"
    }
  }
}
POST/workspaces/{workspaceId}/invitations/{invitationId}/resend

Resend a pending invitation email

Bereichinvitations:write

Pfadparameter

workspaceIdstringerforderlich

ID of the workspace.

invitationIdstringerforderlich

ID of the invitation.

Rückgabe

204

No content

curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/invitations/In8rD4sF7jPw2yKm6tQb/resend' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "error": {
    "code": "invalid-argument",
    "message": "Invalid request"
  }
}
POST/workspaces/{workspaceId}/invitations/{invitationId}/consume

Consume an invitation to join the workspace

Bereichinvitations:write

Pfadparameter

workspaceIdstringerforderlich

ID of the workspace.

invitationIdstringerforderlich

ID of the invitation.

Abfrageparameter

fieldsstring

Comma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.

Rückgabe

200

Successful response

dataMembershiperforderlich
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/invitations/In8rD4sF7jPw2yKm6tQb/consume' \
  -H "Authorization: Bearer $SWAY_API_KEY"
{
  "data": {
    "firestoreId": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj",
    "workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
    "userId": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj",
    "displayName": "string",
    "email": "anna.meier@example.com",
    "photoUrl": "https://example.com",
    "role": "ws.owner",
    "activation": {
      "enabled": true,
      "updateDateTime": "2026-03-02T09:15:00.000Z",
      "updatedBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
    }
  }
}

Bauen Sie auf Ihren eigenen Daten.

Erstellen Sie ein Konto, öffnen Sie Profil › Entwickler und erstellen Sie einen Schlüssel, der auf die nötigen Ressourcen begrenzt ist. Fragen zu einer Integration? Das Team beantwortet sie in einem Gespräch.