Document schemas · Banking & Wealth
Banking & Wealth
Prebuilt extractors for banking and wealth documents: bank certificates, transfer orders, amortization schedules, and wealth statements. Each schema below shows the document_part the extractor returns. Any document type below can also be processed with a custom extractor returning your own schema.
The part_type values and field layouts on this page describe Holofin's upcoming prebuilt extractors for these document types. They are not yet emitted by workflow runs.
If your workflow processes one of these document types with a custom extractor, each extracted part carries that extractor's own part_type and schema, which may differ from this page.
The authoritative schema is the one defined on the extractor in your workflow configuration.
Bank Certificate (Attestation bancaire)
fr_attestation_bancairePreviewBanking & WealthThe attestation bancaire is a document issued by a bank confirming the existence of an account, the identity of its holder, and optionally the account balance or the fact that the account is domiciled with the institution. It is commonly requested to prove banking domiciliation, solvency, or account ownership. The extraction returns the issuing institution, account identifiers, the stated purpose of the certificate, and signature details.
Document structure
- Issuing bank: The institution that produced the certificate
- Account holder: The named owner of the account
- Account identifiers: IBAN, BIC, and optionally the domestic account number, type, and opening date
- Purpose and balance: The stated reason for the certificate and, when present, the confirmed balance
- Signature block: Signatory name and role, and whether a stamp is present
Data structure
Within the document_parts array, the fr_attestation_bancaire data object contains:
{
"issuing_bank": "Banque Populaire Rives de Paris",
"account_holder": "MARTIN Camille",
"iban": "FR76 3000 4000 0100 0001 2345 678",
"bic": "BNPAFRPPXXX",
"account_number": "00012345678",
"account_type": "compte courant",
"account_opened_date": "2019-06-14",
"certificate_purpose": "domiciliation",
"balance": null,
"issue_date": "2026-02-03",
"signatory": {
"name": "DUBOIS Anne",
"role": "Directrice d'agence"
},
"stamp_present": true
}Field reference
| Field | Type | Description |
|---|---|---|
| issuing_bank | string | Name of the bank issuing the certificate |
| account_holder | string | Name of the account holder |
| iban | string | International Bank Account Number of the certified account |
| bic | string | Bank Identifier Code (SWIFT) of the institution |
| account_number | string | null | Domestic account number, when stated separately from the IBAN |
| account_type | string | null | Type of account as described on the certificate (e.g., compte courant, livret) |
| account_opened_date | date | null | Date the account was opened (YYYY-MM-DD), when stated |
| certificate_purpose | string | Purpose of the certificate: domiciliation, balance, or account_existence |
| balance | number | null | Confirmed account balance, when the certificate states one |
| issue_date | date | Date the certificate was issued (YYYY-MM-DD) |
| signatory | object | Signatory block with name and role |
| stamp_present | boolean | Whether a bank stamp is present on the document |
Validation
Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.
Transfer Order (Ordre de virement)
fr_ordre_virementPreviewBanking & WealthThe ordre de virement is an instruction to a bank to transfer a stated amount from a payer's account to a beneficiary's account. The extraction returns the payer and beneficiary identities and account numbers, the amount and currency, an optional reference and purpose, and the requested execution date.
Document structure
- Payer: The name and account (IBAN) the funds are debited from
- Beneficiary: The name, IBAN, and BIC the funds are credited to
- Amount: The transfer amount and currency
- Instruction details: Optional reference and purpose, and the requested execution date
- Signature: Whether the order carries a signature
Data structure
Within the document_parts array, the fr_ordre_virement data object contains:
{
"payer": {
"name": "MARTIN Camille",
"iban": "FR76 3000 4000 0100 0001 2345 678"
},
"beneficiary": {
"name": "SCI Les Tilleuls",
"iban": "FR76 1027 8060 4100 0200 3456 789",
"bic": "CMCIFR2AXXX"
},
"amount": 1450.00,
"currency": "EUR",
"reference": "Loyer mars 2026",
"purpose": "Paiement loyer",
"execution_date": "2026-03-05",
"signature_present": true
}Field reference
| Field | Type | Description |
|---|---|---|
| payer | object | Payer block with name and iban |
| beneficiary | object | Beneficiary block with name, iban, and bic |
| amount | number | Transfer amount |
| currency | string | ISO 4217 currency code of the amount (e.g., EUR) |
| reference | string | null | Transfer reference or label carried on the instruction |
| purpose | string | null | Stated purpose of the transfer, when present |
| execution_date | date | Requested execution date (YYYY-MM-DD) |
| signature_present | boolean | Whether a signature is present on the order |
Validation
Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.
Amortization Schedule Extract (Extrait d'échéancier)
fr_extrait_echeancierPreviewBanking & WealthThe extrait d'échéancier is the amortization schedule of a loan, listing each installment with its split between principal, interest, and insurance, and the outstanding balance after payment. The extraction returns the loan terms, the per-installment breakdown, and the current outstanding balance.
Document structure
- Loan header: Lending bank, borrower, and loan number
- Terms: Initial amount, interest rate, duration in months, and monthly payment
- Installments: One row per scheduled payment, split into principal, interest, and insurance
- Outstanding balance: Remaining balance after each installment and the current outstanding balance
Data structure
Within the document_parts array, the fr_extrait_echeancier data object contains:
{
"bank": "Crédit Agricole Île-de-France",
"borrower": "MARTIN Camille",
"loan_number": "PR-2021-0045678",
"initial_amount": 180000.00,
"interest_rate_pct": 1.35,
"duration_months": 240,
"monthly_payment": 812.45,
"installments": [
{
"due_date": "2026-01-05",
"principal": 610.12,
"interest": 172.33,
"insurance": 30.00,
"outstanding_balance": 152430.88
},
{
"due_date": "2026-02-05",
"principal": 610.81,
"interest": 171.64,
"insurance": 30.00,
"outstanding_balance": 151820.07
}
],
"current_outstanding_balance": 151820.07
}Field reference
| Field | Type | Description |
|---|---|---|
| bank | string | Lending institution |
| borrower | string | Name of the borrower |
| loan_number | string | Loan reference number |
| initial_amount | number | Original principal amount borrowed |
| interest_rate_pct | number | Nominal annual interest rate, as a percentage (e.g., 1.35) |
| duration_months | number | Total loan duration in months |
| monthly_payment | number | Scheduled monthly payment amount |
| installments | array | Array of installment objects (see below) |
| current_outstanding_balance | number | Remaining balance owed as of the most recent installment |
Installment object structure
Each installment object in the installments array contains the following fields:
| Field | Type | Description |
|---|---|---|
| due_date | date | Payment due date (YYYY-MM-DD) |
| principal | number | Principal repaid in this installment |
| interest | number | Interest paid in this installment |
| insurance | number | Insurance premium included in this installment |
| outstanding_balance | number | Remaining loan balance after this installment |
Validation
Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.
Wealth Statement (Relevé de patrimoine)
fr_releve_patrimoinePreviewBanking & WealthThe relevé de patrimoine is a snapshot of a person's assets and liabilities at a given date, typically produced by a wealth manager or private bank. The extraction returns the holder, the reference date, the itemized financial and real-estate assets, the liabilities, and the gross and net wealth totals.
Document structure
- Holder and date: The person the statement is drawn up for and the reference date
- Financial assets: Bank accounts, savings, and securities holdings, itemized with a value
- Real-estate assets: Properties with an address and a value
- Other assets and holdings: Optional additional asset lists
- Liabilities: Outstanding debts, itemized by type
- Totals: Gross wealth and net wealth
Data structure
Within the document_parts array, the fr_releve_patrimoine data object contains:
{
"holder": "MARTIN Camille",
"as_of_date": "2026-01-31",
"financial_assets": [
{ "type": "livret", "label": "Livret A", "value": 22950.00 },
{ "type": "securities", "label": "PEA", "value": 48300.00 }
],
"real_estate_assets": [
{ "address": "12 rue des Lilas, 75011 Paris", "value": 540000.00 }
],
"holdings": null,
"other_assets": [
{ "type": "vehicle", "label": "Véhicule", "value": 18000.00 }
],
"liabilities": [
{ "type": "mortgage", "outstanding": 151820.07 }
],
"gross_wealth": 629250.00,
"net_wealth": 477429.93
}Field reference
| Field | Type | Description |
|---|---|---|
| holder | string | Name of the person the statement is drawn up for |
| as_of_date | date | Reference date of the valuation (YYYY-MM-DD) |
| financial_assets | array | Financial asset lines, each with type, label, and value |
| real_estate_assets | array | Real-estate lines, each with address and value |
| holdings | array | null | Corporate or equity holdings, when itemized on the statement |
| other_assets | array | null | Additional assets not covered by the other categories |
| liabilities | array | Liability lines, each with type and outstanding |
| gross_wealth | number | Total asset value before deducting liabilities |
| net_wealth | number | Net wealth after deducting liabilities |
Validation
Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.
Wealth Profile Sheet (Fiche patrimoniale)
fr_fiche_patrimonialePreviewBanking & WealthThe fiche patrimoniale is a client profile sheet used in wealth advisory and lending, summarizing income, charges, assets, and liabilities together with derived affordability indicators. The extraction returns the client identity, marital status, monthly income and charge breakdowns, asset and liability lists, and the computed debt ratio, disposable income, and savings capacity.
Document structure
- Client: Name and marital status
- Monthly income: Salary, other income, and total
- Monthly charges: Credit payments, rent, other charges, and total
- Assets and liabilities: Itemized asset and liability lists
- Affordability indicators: Debt ratio, disposable income, and savings capacity
Data structure
Within the document_parts array, the fr_fiche_patrimoniale data object contains:
{
"client": {
"last_name": "MARTIN",
"first_names": "Camille"
},
"marital_status": "marié(e)",
"monthly_income": {
"salary": 3200.00,
"other": 250.00,
"total": 3450.00
},
"monthly_charges": {
"credit_payments": 812.45,
"rent": 0.00,
"other": 180.00,
"total": 992.45
},
"assets": [
{ "type": "real_estate", "label": "Résidence principale", "value": 540000.00 },
{ "type": "savings", "label": "Livret A", "value": 22950.00 }
],
"liabilities": [
{ "type": "mortgage", "outstanding": 151820.07 }
],
"debt_ratio_pct": 23.5,
"disposable_income": 2457.55,
"savings_capacity": 1465.10
}Field reference
| Field | Type | Description |
|---|---|---|
| client | object | Client block with last_name and first_names |
| marital_status | string | Marital status as stated on the sheet |
| monthly_income | object | Income breakdown with salary, other, and total |
| monthly_charges | object | Charge breakdown with credit_payments, rent, other, and total |
| assets | array | Itemized asset lines held by the client |
| liabilities | array | Itemized liability lines owed by the client |
| debt_ratio_pct | number | Debt-to-income ratio, as a percentage |
| disposable_income | number | Income remaining after monthly charges |
| savings_capacity | number | null | Estimated monthly savings capacity, when computed on the sheet |
Validation
Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.