Aller au contenu
Ressource · Workspace

Invitations

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

invitations:readinvitations:write
MéthodeCheminRésumé
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

Les chemins commencent par /workspaces/{workspaceId}. Les endpoints GET demandent invitations:read, les autres invitations:write.

L’objet Invitation

firestoreIdstringobligatoire

ID of the invitation.

workspaceIdstringobligatoire

ID of the workspace.

inviterIdstringobligatoire

ID of the user.

statusstringobligatoire

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.

rolestringobligatoire

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.

emailstringemailobligatoire
expirationDateTimestringdate-time
L’objet 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

Portéeinvitations:read

Paramètres de chemin

workspaceIdstringobligatoire

ID of the workspace.

Paramètres de requête

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.

Par défaut20

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.

Renvoie

200

List of items

dataInvitation[]obligatoire

Items of the page, in list order.

limitintegerobligatoire

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

Portéeinvitations:write

Paramètres de chemin

workspaceIdstringobligatoire

ID of the workspace.

Paramètres de requête

fieldsstring

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

Corps de la requête

emailstringobligatoire
rolestringobligatoire

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

Renvoie

200

Successful response

dataInvitationobligatoire
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

Portéeinvitations:write

Paramètres de chemin

workspaceIdstringobligatoire

ID of the workspace.

invitationIdstringobligatoire

ID of the invitation.

Renvoie

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

Portéeinvitations:read

Paramètres de chemin

workspaceIdstringobligatoire

ID of the workspace.

invitationIdstringobligatoire

ID of the invitation.

Paramètres de requête

fieldsstring

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

emailstringobligatoire

Renvoie

200

Successful response

dataDetailedInvitationobligatoire
Afficher les 8 champs enfants
firestoreIdstringobligatoire

ID of the invitation.

workspaceIdstringobligatoire

ID of the workspace.

inviterIdstringobligatoire

ID of the user.

statusstringobligatoire

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.

rolestringobligatoire

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.

emailstringemailobligatoire
expirationDateTimestringdate-time
detailsobjectobligatoire
Afficher les 3 champs enfants
inviterNamestringobligatoire
workspaceNamestringobligatoire
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

Portéeinvitations:write

Paramètres de chemin

workspaceIdstringobligatoire

ID of the workspace.

invitationIdstringobligatoire

ID of the invitation.

Renvoie

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

Portéeinvitations:write

Paramètres de chemin

workspaceIdstringobligatoire

ID of the workspace.

invitationIdstringobligatoire

ID of the invitation.

Paramètres de requête

fieldsstring

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

Renvoie

200

Successful response

dataMembershipobligatoire
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"
    }
  }
}

Construisez sur vos propres données.

Créez un compte, ouvrez Profil › Développeur et créez une clé limitée aux ressources dont vous avez besoin. Une question sur une intégration ? L’équipe y répond lors d’un appel.