Skip to main content

Organizations

The customer side of your bank. Three core entities: OrganizationInvitation, Organization, and the per-organization ExtendedInformation.

OrganizationInvitation

Represents a prospective customer that hasn't yet completed onboarding. Created via createOrganizationInvitation, then sent via startInvitationFlow.

Key fields

  • id, organizationName, vatNumber, branchIdentifier, externalId — identifiers.
  • Contact person — exposed as flat fields chairmanFirstName, chairmanLastName, chairmanEmail, chairmanCallingCode, chairmanPhoneNumber. (On the input side of createOrganizationInvitation you pass a nested contactPerson object — the API flattens it to these fields on the entity.)
  • invitationBankAccounts — list of bank accounts linked to the invitation; each entry has an inner bankAccount with isPrimary, registrationNumber, accountNumber, accountName. The legacy bankAccounts: String field is deprecated.
  • riskGroup — your bank's risk classification for this prospect.
  • branchOffice — optional association (flat field, not via extended information).
  • invitationDate — when the flow was started.
  • isInvitationFlowStarted — true once startInvitationFlow has run.
  • isInvitationValid plus invalidReasons — surfaces missing required fields without throwing.
  • surrenderedTime, isSurrendered, surrenderedReason — set if the invitation was withdrawn.

Lifecycle: created → sent (flow started) → accepted (becomes an Organization) | surrendered | deleted.

The bank has a configured ceiling on invitations per month and per week; startInvitationFlow enforces both and the response surfaces remaining quota.

Organization

The accepted customer. Once an invitation is accepted, the Organization is the canonical record going forward.

Key fields

  • id, name, vatNumber, branchIdentifier — identifiers.
  • typeAssociationType (legal form: ApS, A/S, foundation, …). Names live on associationTypeLocalizations.
  • creationDate — when onboarding completed.
  • bankAccounts: [BankAccount!]! — the organization's bank accounts; each has accountName, registrationNumber, accountNumber, and (optionally) attorneys.
  • bankRelation — the BankOrganizationRelation that holds your bank's view of the customer (isAjour, ajourDate, riskGroup, isSurrendered, surrenderedReason, …).
  • extendedInformation: [ExtendedInformation!]! — see below. Note this is a list — there can be more than one entry.
  • administrators: [Administrator!]! — board members and external administrators (the Administrator interface).
  • taxResidencies: [OrganizationTaxResidency!]!.
  • bankReports(order) — ordered list of bank reports for this organization.

BankOrganizationRelation

Holds the bank-specific state for an organization. This is where ajour status, surrender info, and the assigned risk group live — not on the Organization itself.

Key fields

  • isAjour, ajourDate — current ajour status.
  • riskGroup: [RiskGroup!]! — assigned risk classification.
  • isSurrendered, surrenderedTime, surrenderedReason — surrender state.
  • externalId — your bank's identifier for the relation.
  • selfDeclaration, marketingConsent, legalDocuments — assorted documents.

ExtendedInformation

Per-organization metadata maintained by your bank. Created lazily when first needed. Exposed as a list on Organization.extendedInformation.

Key fields

  • id.
  • branchOffice — the BranchOffice this organization belongs to (optional).
  • isFirstTimeReporting.

Relationships at a glance

OrganizationInvitation ──(accepted)──> Organization ──┬─> bankRelation (BankOrganizationRelation) ─> riskGroup

├─> extendedInformation[] ──> branchOffice
├─> bankAccounts[]
├─> administrators[] (BoardMember | ExternalAdministrator)
└─> bankReports[] (see Bank packages concept)

Where to query / mutate