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).
- Dynamic attorney changes — card and procura changes recorded against your bank's dynamic attorney settings, present only on reports created with the dynamic representation (module‑gated).
- Company documents — a company's FATCA/CRS self‑declaration, annual report and register of owners, present only on reports for companies.
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.
Packages from companies
bankReports returns packages from companies alongside those from associations, through the same bankReport type. organization.discriminator tells them apart: "Company" or "Association".
A company's package carries:
- Administrator changes — the company's people, with their company roles and ownership.
- Approvers — the one administrator who signed the package for the company.
- Business volume — the company's answers to your bank's customer questionnaire (kundeskema) and its signed PDF.
- Dynamic attorney changes — the company's card and procura fuldmagter.
- Company documents — the signed FATCA/CRS self‑declaration, annual report and register of owners.
A company's self-declaration and annual report are also served on selfDeclaration and accounting, with isAccountingRequired following the annual report, so queries written for associations reach them. The other association components — summary, statute, constitution, taxResidencyChanges and legalDocuments — are null or empty on a company's package, and companyDocuments is null on an association's.
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.isRejectedplusrejectedReason— true when your bank has rejected one or more components.type—OrganizationChangeType(FIRST_TIME,ODD,PARTIALLY_AJOUR_SCREENING,SCREENING).isFirstTimeReportingis a deprecated convenience fortype == FIRST_TIME.hasConditionpluscondition— 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
- Read: per‑component guides under Querying bank packages.
- Write: Rejecting a bank package.
- Related reads: Querying reviews for the bank‑side review state.