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.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.