Skip to main content

Bank packages

A bank package is everything an organization submits to satisfy ajour ("up to date") requirements with your bank. Internally it's modeled as bankReport — a single row that aggregates pointers to every component document.

What's in a package

A bank package fans out into sub‑components. Each has its own page below; this overview only covers cross‑package concerns (state, rejection, lifecycle).

  • Constitution — the founding document plus three server‑generated overview PDFs.
  • Administrator changes — board members, external administrators, their roles, and per‑administrator attorney and bank‑account changes.
  • Statute — the organization's articles of association.
  • Summary — the cover sheet describing the change.
  • Accounting — financial statements / accounting evidence.
  • Business volume — answers to your bank's business volume questionnaire.
  • Tax residency — supporting declarations and per‑jurisdiction tax residency relations.
  • Approvers — who is required to sign the package and where they are in the signing flow.
  • Self‑declaration — self‑declaration document.
  • Legal documents — bank‑supplied PDFs signed during the report (module‑gated).
  • Screening — pre‑screening answers, present only on screening reports (module‑gated).

Not every package contains every component. Optional components are marked nullable on the bankReport type; required components are gated by the matching is…Required boolean (e.g. isStatutesRequired). Query the live schema in /graphql for the authoritative field list.

State

A bankReport carries a few state‑related fields rather than a single enum:

  • publishedTime — set when the package is submitted to the bank.
  • finishedDate — set when the package is fully processed.
  • isRejected plus rejectedReason — true when your bank has rejected one or more components.
  • typeOrganizationChangeType (FIRST_TIME, ODD, PARTIALLY_AJOUR_SCREENING, SCREENING). isFirstTimeReporting is a deprecated convenience for type == FIRST_TIME.
  • hasCondition plus condition — when set, your bank has approved the package conditionally; the condition text describes what is expected of the customer.

bankReports excludes cancelled and soft‑deleted packages automatically; rejected and published packages are both returned.

Rejection

When you reject via rejectBankPackageById, each component you mark reject…: true is what the customer must resubmit. The organization is flagged not‑ajour and a new ajour flow starts to chase the resubmission. The customer‑facing reason text is what you put in the reason field — write it as if speaking to the customer directly.

Ajour lifecycle

┌──> Published ──> Review ──> Approved
│ │
Organization (ajour) ───────┤ └──> Rejected (RejectedByBank)
│ │
└────────── (not-ajour flow) <────────┘

When a package is rejected, the organization moves out of the ajour state and into a flow that periodically reminds the customer to resubmit. That flow can be paused via pauseNotAjourFlow and restarted via restartNotAjourFlow.

Where to query / mutate