Organization invitations
An organization invitation represents a prospective customer that hasn't yet completed onboarding. You create the invitation, optionally update its information, then start the invitation flow which sends the invitation to the contact person and tracks the onboarding state.
All mutations on this page require a JWT — get one from the homepage first.
Create an invitation
Creates a new invitation with contact person, bank account(s), risk group, and optional branch office. The invitation is created in a draft state — call startInvitationFlow to send it.
The input takes a nested contactPerson object, but the resulting OrganizationInvitation exposes the same data as flat chairman* fields.
mutation createOrganizationInvitation($input: CreateOrganizationInvitationInput!) {
createOrganizationInvitation(input: $input) {
organizationInvitation {
id
organizationName
vatNumber
externalId
chairmanFirstName
chairmanLastName
chairmanEmail
}
}
}
Validation rules:
registrationNumbermust be exactly 4 characters;accountNumbermust be exactly 10.- At most one bank account may have
isPrimary: true. - The
riskGroupIdmust reference a risk group on your bank.
Update invitation information
Updates one or more invitation fields. All fields except invitationId are optional — only the fields you provide are changed.
mutation updateOrganizationInvitationInformation($input: UpdateOrganizationInvitationInformationInput!) {
updateOrganizationInvitationInformation(input: $input) {
organizationInvitation {
id
organizationName
vatNumber
externalId
}
}
}
Set or change the branch office
Associates a branch office with the invitation. The input is doubly nested: the outer UpdateOrganizationInvitationBranchOfficeRelationInput wraps a single input: UpdateOrganizationInvitationBranchOfficeInput field. The payload also has an inner organizationInvitationPayload wrapper.
To remove the relation, pass branchOfficeId: null.
mutation updateOrganizationInvitationBranchOfficeRelation($input: UpdateOrganizationInvitationBranchOfficeRelationInput!) {
updateOrganizationInvitationBranchOfficeRelation(input: $input) {
organizationInvitationPayload {
organizationInvitation {
id
branchOffice {
id
name
}
}
}
}
}
Start the invitation flow
Sends the invitation and starts onboarding. The response includes counters showing how many invitations you have left in the current month and week — your bank has a configured limit on both.
mutation startInvitationFlow($input: StartInvitationFlowInput!) {
startInvitationFlow(input: $input) {
organizationInvitation {
id
isInvitationFlowStarted
}
invitationsLeft {
invitationsPerMonth
invitationsLast30Days
invitationsLeftThisMonth
invitationsPerWeek
invitationsThisWeek
invitationsLeftThisWeek
}
}
}
Errors to expect:
No more invitations left this month. used X of Y— you've hit the monthly cap.No more invitations left this week. used X of Y— weekly cap.- The mutation may also return validation errors on the invitation itself (e.g. missing required information) without throwing — check the GraphQL
errorsarray.
Delete an invitation
Soft-deletes the invitation and cancels any background jobs scheduled for it.
mutation deleteOrganizationInvitation($input: DeleteOrganizationInvitationInput!) {
deleteOrganizationInvitation(input: $input) {
success
}
}