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