Document schemas · Business & Financial

Business & Financial

Prebuilt extractors for the French and Monegasque business and financial documents submitted in an application file: registry extracts, beneficial-ownership declarations, general meeting minutes, audited reports, business plans and accountants' certificates. Each one returns a structured document_part with the legal identity, registration and governance you need to reconcile the entity against an applicant. Any of these can also be handled with a custom extractor.

PreviewThese schemas are preview contracts

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.


KBIS Extract (Extrait KBIS)

part_typefr_extrait_kbisPreviewBusiness & Financial

The Extrait KBIS is the official registration certificate issued by the French commercial court registry (greffe du tribunal de commerce). It is the reference identity document for a registered company. The extraction returns the legal identity, registered office, activity and current executives so the record can be reconciled against an application file.

Document structure

  • Legal identity: Company name, legal form, siren, and RCS registration number
  • Capital and office: Share capital and the registered office address
  • Activity: APE/NAF code and the free-text description of the main activity
  • Governance: Current executives and, when appointed, the statutory auditor
  • Issuance: Registry court and the date the extract was drawn

Data structure

Within the document_parts array, the fr_extrait_kbis data object contains:

dataJSON
{
  "company_name": "MARTIN CONSEIL",
  "legal_form": "SAS",
  "siren": "812345678",
  "rcs_number": "812 345 678 R.C.S. Paris",
  "share_capital": 50000,
  "registered_office": {
    "street": "24 rue de la Republique",
    "postal_code": "75011",
    "city": "Paris"
  },
  "registration_date": "2019-04-15",
  "ape_code": "7022Z",
  "main_activity": "Conseil pour les affaires et autres conseils de gestion",
  "executives": [
    {
      "role": "President",
      "last_name": "MARTIN",
      "first_names": "Camille"
    },
    {
      "role": "Directeur general",
      "last_name": "DUBOIS",
      "first_names": "Jean Paul"
    }
  ],
  "auditor": null,
  "registry_court": "Paris",
  "extract_date": "2026-07-20"
}

Field reference

FieldTypeDescription
company_namestringRegistered company name (denomination sociale)
legal_formstringLegal form (e.g. SAS, SARL, SA)
sirenstringNine-digit siren identifier
rcs_numberstringRCS registration number as printed, including the registry city
share_capitalnumberShare capital amount in euros
registered_officeobjectRegistered office address: street, postal_code, city
registration_datedateDate of registration with the RCS (YYYY-MM-DD)
ape_codestringAPE/NAF activity code (e.g. 7022Z)
main_activitystringFree-text description of the principal activity
executivesarrayCurrent executives, each with role, last_name, first_names
auditorobject | nullStatutory auditor (commissaire aux comptes) when appointed, otherwise null
registry_courtstringCommercial court registry that issued the extract
extract_datedateDate the extract was drawn (YYYY-MM-DD)

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



RCS Extract (Extrait d'immatriculation RCS)

part_typefr_extrait_rcsPreviewBusiness & Financial

The Extrait d'immatriculation RCS reports a company's entry in the Registre du commerce et des sociétés. It carries the same legal identity as a KBIS extract and is used to confirm the entity name, registration and governance against an application file.

Document structure

  • Legal identity: Company name, legal form, siren, and RCS number
  • Registry: The commercial court holding the registration
  • Capital and office: Share capital and the registered office address
  • Activity and governance: APE/NAF code and current executives
  • Issuance: Date the extract was drawn

Data structure

Within the document_parts array, the fr_extrait_rcs data object contains:

dataJSON
{
  "company_name": "MARTIN CONSEIL",
  "legal_form": "SAS",
  "siren": "812345678",
  "rcs_number": "812 345 678 R.C.S. Paris",
  "registry_court": "Paris",
  "share_capital": 50000,
  "registered_office": {
    "street": "24 rue de la Republique",
    "postal_code": "75011",
    "city": "Paris"
  },
  "registration_date": "2019-04-15",
  "ape_code": "7022Z",
  "executives": [
    {
      "role": "President",
      "last_name": "MARTIN",
      "first_names": "Camille"
    }
  ],
  "extract_date": "2026-07-20"
}

Field reference

FieldTypeDescription
company_namestringRegistered company name (denomination sociale)
legal_formstringLegal form (e.g. SAS, SARL, SA)
sirenstringNine-digit siren identifier
rcs_numberstringRCS registration number as printed, including the registry city
registry_courtstringCommercial court registry holding the registration
share_capitalnumberShare capital amount in euros
registered_officeobjectRegistered office address: street, postal_code, city
registration_datedateDate of registration with the RCS (YYYY-MM-DD)
ape_codestringAPE/NAF activity code (e.g. 7022Z)
executivesarrayCurrent executives, each with role, last_name, first_names
extract_datedateDate the extract was drawn (YYYY-MM-DD)

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



SIRENE Situation Notice (Avis de situation SIRENE)

part_typefr_avis_situation_sirenePreviewBusiness & Financial

The Avis de situation SIRENE is the INSEE notice confirming an entity's entry in the SIRENE directory. It pairs the siren and the establishment siret with the declared address and activity, and is used to confirm that an establishment is active and correctly identified.

Document structure

  • Identifiers: siren (legal unit) and siret (establishment)
  • Address: Establishment address as recorded in the directory
  • Activity: APE/NAF code and its description
  • Classification: Legal category and, when published, the workforce bracket
  • Dates: Establishment creation date and the notice edition date

Data structure

Within the document_parts array, the fr_avis_situation_sirene data object contains:

dataJSON
{
  "entity_name": "MARTIN CONSEIL",
  "siren": "812345678",
  "siret": "81234567800021",
  "address": {
    "street": "24 rue de la Republique",
    "postal_code": "75011",
    "city": "Paris"
  },
  "ape_code": "7022Z",
  "activity": "Conseil pour les affaires et autres conseils de gestion",
  "legal_category": "5710 - SAS, societe par actions simplifiee",
  "creation_date": "2019-04-15",
  "workforce_bracket": "6 a 9 salaries",
  "edition_date": "2026-07-20"
}

Field reference

FieldTypeDescription
entity_namestringLegal unit name (denomination or name of the entrepreneur)
sirenstringNine-digit siren identifier of the legal unit
siretstringFourteen-digit siret identifier of the establishment
addressobjectEstablishment address: street, postal_code, city
ape_codestringAPE/NAF activity code (e.g. 7022Z)
activitystringDescription of the declared activity
legal_categorystringINSEE legal category (categorie juridique), code and label
creation_datedateEstablishment creation date (YYYY-MM-DD)
workforce_bracketstring | nullPublished workforce range (tranche d'effectif), or null when not disclosed
edition_datedateDate the notice was edited (YYYY-MM-DD)

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



Beneficial Owners Declaration (CERFA 16062)

part_typefr_declaration_beneficiaires_effectifsPreviewBusiness & Financial

The CERFA 16062 is the declaration of beneficial owners (bénéficiaires effectifs) filed with the commercial court registry. The extraction returns the declaring company and each declared beneficial owner with their ownership and control attributes for beneficial-ownership review.

Document structure

  • Declaring company: Name and siren of the entity making the declaration
  • Beneficial owners: One record per declared beneficial owner
  • Ownership: Capital share and voting rights held by each owner
  • Control: The nature of control declared for each owner
  • Filing: Declaration date and the registry court

Data structure

Within the document_parts array, the fr_declaration_beneficiaires_effectifs data object contains:

dataJSON
{
  "company": {
    "name": "MARTIN CONSEIL",
    "siren": "812345678"
  },
  "beneficial_owners": [
    {
      "last_name": "MARTIN",
      "first_names": "Camille",
      "birth_date": "1982-06-14",
      "nationality": "Francaise",
      "capital_share_pct": 60.0,
      "voting_rights_pct": 60.0,
      "control_type": "Detention directe du capital"
    },
    {
      "last_name": "DUBOIS",
      "first_names": "Jean Paul",
      "birth_date": "1975-11-02",
      "nationality": "Francaise",
      "capital_share_pct": 40.0,
      "voting_rights_pct": 40.0,
      "control_type": "Detention directe du capital"
    }
  ],
  "declaration_date": "2019-04-20",
  "registry_court": "Paris"
}

Field reference

FieldTypeDescription
companyobjectDeclaring company: name, siren
beneficial_ownersarrayDeclared beneficial owners (see per-owner fields below)
beneficial_owners[].last_namestringOwner surname
beneficial_owners[].first_namesstringOwner given names
beneficial_owners[].birth_datedateOwner date of birth (YYYY-MM-DD)
beneficial_owners[].nationalitystringOwner nationality
beneficial_owners[].capital_share_pctnumberShare of capital held, as a percentage (e.g. 60.0)
beneficial_owners[].voting_rights_pctnumberShare of voting rights held, as a percentage (e.g. 60.0)
beneficial_owners[].control_typestringDeclared nature of control (e.g. direct holding of capital, control by other means)
declaration_datedateDate of the declaration (YYYY-MM-DD)
registry_courtstringCommercial court registry where the declaration was filed

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



Monaco RBE Extract (Extrait du Registre des Bénéficiaires Effectifs)

part_typemc_extrait_rbePreviewBusiness & Financial

The Extrait du Registre des Bénéficiaires Effectifs is the Monaco beneficial-ownership register extract. It links a company identified by its RCI number to its declared beneficial owners and is used for beneficial-ownership review of Monegasque entities.

Document structure

  • Company: Name and RCI number of the Monegasque entity
  • Beneficial owners: One record per declared beneficial owner
  • Ownership: Ownership percentage held by each owner
  • Control: The declared nature of control
  • Issuance: Extract date and the issuing registry

Data structure

Within the document_parts array, the mc_extrait_rbe data object contains:

dataJSON
{
  "company": {
    "name": "MARTIN MONACO SAM",
    "rci_number": "19S12345"
  },
  "beneficial_owners": [
    {
      "last_name": "MARTIN",
      "first_names": "Camille",
      "birth_date": "1982-06-14",
      "nationality": "Francaise",
      "ownership_pct": 55.0,
      "control_nature": "Detention directe du capital"
    },
    {
      "last_name": "ROSSI",
      "first_names": "Marco",
      "birth_date": "1978-03-09",
      "nationality": "Italienne",
      "ownership_pct": 45.0,
      "control_nature": "Detention directe du capital"
    }
  ],
  "extract_date": "2026-07-20",
  "registry": "Registre des Beneficiaires Effectifs de Monaco"
}

Field reference

FieldTypeDescription
companyobjectCompany: name, rci_number (Répertoire du Commerce et de l'Industrie)
beneficial_ownersarrayDeclared beneficial owners (see per-owner fields below)
beneficial_owners[].last_namestringOwner surname
beneficial_owners[].first_namesstringOwner given names
beneficial_owners[].birth_datedateOwner date of birth (YYYY-MM-DD)
beneficial_owners[].nationalitystringOwner nationality
beneficial_owners[].ownership_pctnumberOwnership held, as a percentage (e.g. 55.0)
beneficial_owners[].control_naturestringDeclared nature of control
extract_datedateDate the extract was drawn (YYYY-MM-DD)
registrystringName of the issuing register

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



General Meeting Minutes (Procès-verbal d'assemblée générale)

part_typefr_pv_assemblee_generalePreviewBusiness & Financial

The Procès-verbal d'assemblée générale records the deliberations of a company's shareholder meeting. The extraction returns the meeting identity, attendance and quorum, and the resolutions with their vote tallies and outcomes for corporate-governance review.

Document structure

  • Company and meeting: Company identity, meeting type, date and location
  • Chair: The person chairing the meeting
  • Attendance: Present and represented shares and whether quorum was reached
  • Resolutions: Each resolution with its subject, vote tally and outcome
  • Signatures: Signatories of the minutes

Data structure

Within the document_parts array, the fr_pv_assemblee_generale data object contains:

dataJSON
{
  "company": {
    "name": "MARTIN CONSEIL",
    "siren": "812345678"
  },
  "meeting_type": "ago",
  "meeting_date": "2025-06-18",
  "location": "24 rue de la Republique, 75011 Paris",
  "chairman": "MARTIN Camille",
  "attendance": {
    "present_shares": 3200,
    "represented_shares": 800,
    "quorum_reached": true
  },
  "resolutions": [
    {
      "number": 1,
      "subject": "Approbation des comptes de l'exercice clos le 31 decembre 2024",
      "votes_for": 4000,
      "votes_against": 0,
      "abstentions": 0,
      "outcome": "adoptee"
    },
    {
      "number": 2,
      "subject": "Affectation du resultat",
      "votes_for": 3600,
      "votes_against": 400,
      "abstentions": 0,
      "outcome": "adoptee"
    }
  ],
  "signatories": [
    "MARTIN Camille",
    "DUBOIS Jean Paul"
  ]
}

Field reference

FieldTypeDescription
companyobjectCompany holding the meeting: name, siren
meeting_typestringMeeting type: ago (ordinaire) or age (extraordinaire)
meeting_datedateDate the meeting was held (YYYY-MM-DD)
locationstringMeeting location
chairmanstringPerson chairing the meeting (président de séance)
attendanceobjectAttendance summary: present_shares, represented_shares, quorum_reached
attendance.present_sharesnumberShares present in person
attendance.represented_sharesnumberShares represented by proxy
attendance.quorum_reachedbooleanWhether the required quorum was reached
resolutionsarrayResolutions put to the vote (see per-resolution fields below)
resolutions[].numbernumberResolution number
resolutions[].subjectstringSubject of the resolution
resolutions[].votes_fornumberVotes in favour
resolutions[].votes_againstnumberVotes against
resolutions[].abstentionsnumberAbstentions
resolutions[].outcomestringOutcome (e.g. adoptee, rejetee)
signatoriesarrayNames of the signatories of the minutes

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



Audited Annual Report (Rapport annuel audité)

part_typefr_rapport_annuelPreviewBusiness & Financial

The Rapport annuel audité presents a company's annual results together with the statutory auditor's opinion. The extraction returns the headline figures, the auditor and the audit opinion for financial review.

Document structure

  • Company and period: Company name and the fiscal year covered
  • Key figures: Revenue, net income, equity and total assets
  • Auditor: The statutory auditor and their firm
  • Opinion: The audit opinion issued on the accounts
  • Narrative: Report date and optional highlights

Data structure

Within the document_parts array, the fr_rapport_annuel data object contains:

dataJSON
{
  "company": "MARTIN CONSEIL",
  "fiscal_year": "2024",
  "revenue": 1250000,
  "net_income": 148000,
  "equity": 620000,
  "total_assets": 1980000,
  "auditor": {
    "name": "DURAND Sophie",
    "firm": "Cabinet Durand Audit"
  },
  "audit_opinion": "unqualified",
  "report_date": "2025-05-30",
  "highlights": [
    "Croissance du chiffre d'affaires de 12% sur l'exercice",
    "Renforcement des fonds propres"
  ]
}

Field reference

FieldTypeDescription
companystringCompany name
fiscal_yearstringFiscal year covered by the report
revenuenumberRevenue (chiffre d'affaires) in euros
net_incomenumberNet income (résultat net) in euros
equitynumberShareholders' equity (capitaux propres) in euros
total_assetsnumberTotal assets (total du bilan) in euros
auditorobjectStatutory auditor: name, firm
audit_opinionstringAudit opinion: unqualified, qualified, adverse, or disclaimer
report_datedateDate of the report (YYYY-MM-DD)
highlightsarray | nullOptional narrative highlights, or null when none are extracted

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



Business Plan (Business plan prévisionnel)

part_typefr_business_planPreviewBusiness & Financial

The Business plan prévisionnel sets out a project's forecast financials and financing structure. The extraction returns the project owner, the multi-year forecast, the financing need and its financing plan for underwriting review.

Document structure

  • Project: The project owner and the planned activity
  • Forecast: Revenue, expenses and result projected per year
  • Financing need: The total funding required
  • Financing plan: The sources and uses of funds
  • Assumptions: Break-even point and key assumptions, when stated

Data structure

Within the document_parts array, the fr_business_plan data object contains:

dataJSON
{
  "project_owner": "MARTIN Camille",
  "activity": "Ouverture d'un cabinet de conseil en gestion",
  "forecast_years": [
    {
      "year": "2026",
      "revenue": 180000,
      "expenses": 150000,
      "result": 30000
    },
    {
      "year": "2027",
      "revenue": 240000,
      "expenses": 185000,
      "result": 55000
    },
    {
      "year": "2028",
      "revenue": 300000,
      "expenses": 210000,
      "result": 90000
    }
  ],
  "financing_need": 120000,
  "financing_plan": {
    "sources": [
      {"label": "Apport personnel", "amount": 40000},
      {"label": "Pret bancaire", "amount": 80000}
    ],
    "uses": [
      {"label": "Amenagement des locaux", "amount": 50000},
      {"label": "Materiel et informatique", "amount": 30000},
      {"label": "Fonds de roulement", "amount": 40000}
    ]
  },
  "break_even_point": "Atteint au cours de la deuxieme annee",
  "assumptions": [
    "Taux de marge brute de 55%",
    "Recrutement d'un collaborateur en annee 2"
  ]
}

Field reference

FieldTypeDescription
project_ownerstringPerson or entity carrying the project (porteur de projet)
activitystringPlanned activity described in the plan
forecast_yearsarrayYearly forecast records (see per-year fields below)
forecast_years[].yearstringForecast year
forecast_years[].revenuenumberProjected revenue for the year, in euros
forecast_years[].expensesnumberProjected expenses for the year, in euros
forecast_years[].resultnumberProjected result for the year, in euros
financing_neednumberTotal financing required, in euros
financing_planobjectFinancing plan with sources and uses, each an array of { label, amount }
break_even_pointstring | nullStated break-even point (seuil de rentabilité), or null
assumptionsarray | nullKey assumptions underpinning the forecast, or null

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



Accountant's Certificate on Director Income (Attestation comptable)

part_typefr_attestation_comptable_dirigeantPreviewBusiness & Financial

The Attestation comptable on director income is a certificate issued by a chartered accountant confirming a director's remuneration and dividends over a period. The extraction returns the accountant, the director, the company and the certified income for income-verification review.

Document structure

  • Accountant: The chartered accountant and their registration
  • Director: The director whose income is certified, and their role
  • Company: The company paying the income
  • Income: Remuneration, dividends and their total over the period
  • Issuance: The certified period, issue date and whether a signature is present

Data structure

Within the document_parts array, the fr_attestation_comptable_dirigeant data object contains:

dataJSON
{
  "accountant": {
    "firm": "Cabinet Durand Expertise",
    "name": "DURAND Sophie",
    "register_number": "14-75-0001234"
  },
  "director": {
    "last_name": "MARTIN",
    "first_names": "Camille"
  },
  "company": {
    "name": "MARTIN CONSEIL",
    "siren": "812345678"
  },
  "role": "President",
  "annual_income": {
    "remuneration": 72000,
    "dividends": 18000,
    "total": 90000
  },
  "period": {
    "start_date": "2024-01-01",
    "end_date": "2024-12-31"
  },
  "issue_date": "2025-03-12",
  "signature_present": true
}

Field reference

FieldTypeDescription
accountantobjectCertifying accountant: firm, name, register_number (numéro d'inscription à l'ordre)
directorobjectDirector whose income is certified: last_name, first_names
companyobjectPaying company: name, siren
rolestringDirector's role in the company (e.g. Président, Gérant)
annual_incomeobjectCertified income: remuneration, dividends, total (euros)
annual_income.remunerationnumberRemuneration over the period, in euros
annual_income.dividendsnumberDividends over the period, in euros
annual_income.totalnumberTotal certified income, in euros
periodobjectCertified period: start_date, end_date (YYYY-MM-DD)
issue_datedateDate the certificate was issued (YYYY-MM-DD)
signature_presentbooleanWhether a signature is present on the certificate

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.



Accountant's Certificate on Company Activity (Attestation comptable)

part_typefr_attestation_comptable_activitePreviewBusiness & Financial

The Attestation comptable on company activity is a certificate issued by a chartered accountant confirming a company's activity figures over a period. The extraction returns the accountant, the company, the certified revenue and result, and the observed trend for financial-review purposes.

Document structure

  • Accountant: The chartered accountant and their registration
  • Company: The company whose activity is certified
  • Results: Certified revenue and net result
  • Analysis: Profitability and the observed trend, when stated
  • Issuance: The certified period, issue date and whether a signature is present

Data structure

Within the document_parts array, the fr_attestation_comptable_activite data object contains:

dataJSON
{
  "accountant": {
    "firm": "Cabinet Durand Expertise",
    "name": "DURAND Sophie",
    "register_number": "14-75-0001234"
  },
  "company": {
    "name": "MARTIN CONSEIL",
    "siren": "812345678"
  },
  "revenue": 1250000,
  "net_result": 148000,
  "profitability_pct": 11.8,
  "trend": "En progression par rapport a l'exercice precedent",
  "period": {
    "start_date": "2024-01-01",
    "end_date": "2024-12-31"
  },
  "issue_date": "2025-03-12",
  "signature_present": true
}

Field reference

FieldTypeDescription
accountantobjectCertifying accountant: firm, name, register_number (numéro d'inscription à l'ordre)
companyobjectCompany whose activity is certified: name, siren
revenuenumberCertified revenue (chiffre d'affaires) over the period, in euros
net_resultnumberCertified net result (résultat net) over the period, in euros
profitability_pctnumber | nullProfitability as a percentage (e.g. 11.8), or null when not stated
trendstring | nullObserved trend versus the prior period, or null
periodobjectCertified period: start_date, end_date (YYYY-MM-DD)
issue_datedateDate the certificate was issued (YYYY-MM-DD)
signature_presentbooleanWhether a signature is present on the certificate

Validation

Extraction results include validation_status and validation_codes reflecting coherence, completeness and authenticity controls. Anomalies are surfaced as graded alerts for human review.