Financial Analysis
This guide walks you through building a full financial analysis for a company by combining accounting, banking, and tax data.
Goal
Evaluate a company’s financial health by collecting:
- Published balance sheets and income statements
- Detailed tax bundles
- Banking data (accounts, transactions, cashflow)
- VAT and corporate tax filings
Data collected
| Data type | Description | Provider | Endpoint |
|---|---|---|---|
| Financial Statement | Published financial statements | company_legal_fr | /users/{userId}/financial-statements |
| Tax Return | Complete tax bundles | company_legal_fr, impots_gouv | /users/{userId}/tax-returns |
| Tax Return Analysis | Computed ratios and indicators | company_legal_fr | /users/{userId}/tax-return-analysis |
| Sector Analysis | Industry comparisons | company_legal_fr | /users/{userId}/sector-analysis |
| Bank Account | Bank accounts | budget_insight, gocardless | /users/{userId}/bank-accounts |
| Bank Transaction | Transaction history | budget_insight, gocardless | /users/{userId}/bank-transactions |
| Bank Cashflow | Cashflow analysis | budget_insight, gocardless | /users/{userId}/bank-cashflow |
| VAT Declaration | VAT filings | impots_gouv | /users/{userId}/vat-declarations |
Provider architecture
Financial Data Stack
Blend legal, tax, and banking feeds to build a full financial cockpit.
Legal data
- Provider: `company_legal_fr`
- Data: Financial Statements, Tax Return (INPI), Tax Return Analysis, Sector Analysis
Tax data
- Provider: `impots_gouv`
- Data: Tax Return, VAT Declaration, Corporate Tax, Tax Account
Banking data
- Providers: `budget_insight`, `gocardless`
- Data: Bank Account, Bank Transaction, Bank Cashflow, Credit Insights
Implementation steps
Step 1: Enable the providers
Provider Company Legal FR (public data)
{
"enable": true
}
{
"auto_connect": true
}
Provider Impots Gouv (tax data - OAuth required)
{
"enable": true
}
Provider Budget Insight (bank data - OAuth required)
{
"enable": true
}
Step 2: Create the user
{
"name": "Company to analyze SAS",
"siren": "123456789",
"group": "analyse-financiere"
}
Step 3: Create the data connections
3.1 Legal data (automatic)
{
"requested_data_types": [
"FINANCIAL_STATEMENT",
"TAX_RETURN",
"TAX_RETURN_ANALYSIS",
"SECTOR_ANALYSIS"
],
"provider_name": "company_legal_fr"
}
3.2 Tax data (OAuth redirect required)
{
"requested_data_types": [
"TAX_RETURN",
"VAT_DECLARATION",
"CORPORATE_TAX",
"TAX_ACCOUNT"
],
"provider_name": "impots_gouv"
}
For impots_gouv and banking providers, users must complete an OAuth authorization flow. Redirect them to the redirect_url returned when the user is created.
3.3 Banking data (OAuth redirect required)
{
"requested_data_types": [
"BANK_ACCOUNT",
"BANK_TRANSACTION",
"BANK_CASHFLOW",
"BANK_CREDIT_INSIGHTS"
],
"provider_name": "budget_insight"
}
Step 4: Launch the synchronization
{
"data_types": [
"FINANCIAL_STATEMENT",
"TAX_RETURN",
"TAX_RETURN_ANALYSIS",
"SECTOR_ANALYSIS",
"VAT_DECLARATION",
"BANK_ACCOUNT",
"BANK_TRANSACTION",
"BANK_CASHFLOW"
]
}
Step 5: Analyze financial data
5.1 Published financial statements
/api/v6/users/{userId}/financial-statementsKey metrics to extract:
- Revenue and its evolution
- Net income
- Equity
- Debt level
5.2 Detailed tax bundles
/api/v6/users/{userId}/tax-returnsResponse structure:
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "C",
"closing_year": 2023,
"closing_date": "2023-12-31",
"duration": 12,
"revenue": 1500000,
"net_profit": 150000,
"tax_return_values": [
{ "code": "FL", "values": [1500000, 0, 0, 0] },
{ "code": "HN", "values": [150000, 0, 0, 0] }
],
"warnings": []
}
]
Bundle types
| Code | Type |
|---|---|
C | Full (standard regime) |
S | Simplified (simplified regime) |
K | Consolidated |
5.3 Automated tax bundle analysis
/api/v6/users/{userId}/tax-return-analysisThe API calculates financial ratios automatically:
- Profitability (ROE, ROA)
- Solvency
- Liquidity
- Capital structure
5.4 Sector comparison
/api/v6/users/{userId}/sector-analysisCompare the company's performance against the industry median (APE code).
5.5 Banking data
/api/v6/users/{userId}/bank-accounts/api/v6/users/{userId}/bank-cashflowCashflow analysis:
[
{
"month": "2021-08",
"balance": {
"value": 0,
"currency": "string"
},
"inbound": {
"value": 0,
"currency": "string"
},
"outbound": {
"value": 0,
"currency": "string"
}
}
]
Example financial scoring
function calculateFinancialScore(data) {
const { taxReturns, bankCashflow, sectorAnalysis } = data;
// Latest tax bundle
const lastTaxReturn = taxReturns[0];
// Ratio calculations
const profitMargin = lastTaxReturn.net_profit / lastTaxReturn.revenue;
const revenueGrowth = calculateGrowth(taxReturns);
// Cashflow score (based on the last 6 months)
const cashflowScore = bankCashflow
.slice(0, 6)
.reduce((acc, month) => acc + (month.balance > 0 ? 1 : 0), 0) / 6;
// Sector benchmark
const sectorPerformance = sectorAnalysis.percentile || 50;
// Final score (0-100)
return {
score: Math.round(
profitMargin * 30 +
revenueGrowth * 20 +
cashflowScore * 30 +
(sectorPerformance / 100) * 20
),
details: {
profitMargin,
revenueGrowth,
cashflowScore,
sectorPerformance
}
};
}
Data quality checks
Tax bundles include warnings that highlight completeness or consistency issues:
| Code | Message |
|---|---|
01 | Missing balance sheet - assets - 2050-SD |
02 | Missing balance sheet - liabilities - 2051-SD |
26 | Control: assets = liabilities - 2050-SD |
41 | Control: profit or loss - 2053-SD |
If warnings are present, the data might be incomplete or inconsistent. Double-check manually before making a decision.
Recommended webhooks
{
"url": "https://mon-app.com/webhooks/financial-data-ready"
}
See also
- Tax bundles - Detailed guide on tax bundles
- Tax Return - Tax bundle data format
- Bank Cashflow - Cashflow data format
- Impots Gouv - Tax provider configuration