Skip to main content

Tax Return

Tax returns for the purposes of this api are the annual accounts filled for the sake of tax declarations, and numerical data about its contents is available.

The tax return history is independent of the current month history setting, except when synchronization is triggered using the Infogreffe or impots-gouv providers.

Tax Return

FieldTypeDescription
iduuidUnique identifier (UUID)
typestringAnnual accounts type: COMPLETE, SIMPLIFIED, CONSOLIDATED, BANK, INSURANCE, or STANDALONE when the source only states that the accounts are not consolidated (Infogreffe)
closing_yearyearYear on which the fiscal year ended
closing_datedateDate on which the fiscal year ended
millesimeyearThe tax return vintage refers to the reference year for which tax data is reported or processed.
durationintDuration, in months, of the fiscal year
submitted_datedateDate on which the tax return was submitted
revenueintRevenues recorded on the declaration
net_profitintNet profit recorded on the declaration
file_idstringSee Download
privacystringPrivacy level of the tax return (PUBLISHED, CONFIDENTIAL, SEMI_CONFIDENTIAL or NOT_PUBLISHED)
provider_namestringProvider from which this tax return was obtained
data_connection_iduuidData connection from which this tax return was obtained
warningsarray of Tax return valuesList of completeness and consistency tests that failed.
tax_return_valuesarray of Tax return valuesTax return values object

Tax return values

FieldTypeDescription
codestringCode of the cell(s) in the tax return
valuesarray of intsValue of the cell(s) in the tax return

Please find below the doc organising the data according to the type of the tax return and the code of the cells. The doc is according to the INPI version, for the tax values please check from page 9 to 29. Document Technique Comptes annuels

Tax return warnings

note

Tax return warnings are applied to tax returns with a closing year from 2022 onward.

FieldTypeDescription
codestringError test(completeness/consistency) code
messagestringError test(completeness/consistency) message

List of completeness tests

CodeMessage
01Missing balance sheet - assets - 2050-SD
02Missing balance sheet - liabilities - 2051-SD
03Missing income statement - 2052-SD
04Missing income statement - 2053-SD
05Missing fixed assets schedules - 2054-SD
CodeMessage
07Missing balance sheet - 2033-A-SD
08Missing income statement - 2033-B-SD
09Missing fixed assets - 2033-C-SD

List of consistency tests

CodeMessage
11Check total fixed assets - gross - Balance sheet assets - 2050-SD
12Check total fixed assets - depreciation & provisions - Balance sheet assets - 2050-SD
13Check total fixed assets - net - Balance sheet assets - 2050-SD
15Check total current assets - gross - Balance sheet assets - 2050-SD
16Check total current assets - depreciation & provisions - Balance sheet assets - 2050-SD
17Check total current assets - net - Balance sheet assets - 2050-SD
18Check overall balance sheet - gross - Balance sheet assets - 2050-SD
19Check overall balance sheet - depreciation & provisions - Balance sheet assets - 2050-SD
20Check overall balance sheet - net - Balance sheet assets - 2050-SD
21Check total equity - Balance sheet liabilities - 2051-SD
22Check total other equity - Balance sheet liabilities - 2051-SD
24Check total liabilities - Balance sheet liabilities - 2051-SD
25Check overall total - Balance sheet liabilities - 2051-SD
26Check assets equal liabilities - 2050-SD
27Check revenue #1 - Income statement - 2052-SD
29Check total operating income - Income statement - 2052-SD
30Check total operating expenses - Income statement - 2052-SD
31Controle resultat d'exploitation - COMPTE DE RESULTAT - 2052-SD
32Controle total produits financiers - COMPTE DE RESULTAT - 2052-SD
33Check total financial expenses - Income statement - 2052-SD
34Check financial result - Income statement - 2052-SD
35Check total result - Income statement - 2052-SD
36Check total exceptional income - Income statement - 2053-SD
37Check total exceptional expenses - Income statement - 2053-SD
38Check exceptional result - Income statement - 2053-SD
39Check total income - Income statement - 2053-SD
40Check total expenses - Income statement - 2053-SD
41Check profit or loss - Income statement - 2053-SD
56Check total fixed assets - opening gross value - Fixed assets - 2054-SD
57Check total fixed assets - increases (revaluation/equity method) - Fixed assets - 2054-SD
58Check total fixed assets - increases (acquisitions, creations, etc.) - Fixed assets - 2054-SD
60Check total fixed assets - decreases (transfers) - Fixed assets - 2054-SD
61Check total fixed assets - decreases (disposals/retirements) - Fixed assets - 2054-SD
CodeMessage
75Check total fixed assets - gross - Simplified balance sheet - 2033-A-SD
76Check total depreciation/provisions on fixed assets - Simplified balance sheet - 2033-A-SD
77Check total current assets - gross - Simplified balance sheet - 2033-A-SD
78Check total depreciation on current assets - Simplified balance sheet - 2033-A-SD
79Check total fixed + current assets - Simplified balance sheet - 2033-A-SD
80Check total depreciation on fixed + current assets - Simplified balance sheet - 2033-A-SD
81Check difference between gross and net assets - Simplified balance sheet - 2033-A-SD
82Check totals for equity, risk provisions, liabilities - Simplified balance sheet - 2033-A-SD
84Check total operating income - Simplified income statement 2033-B-SD
85Check total operating expenses - Simplified income statement 2033-B-SD
86Check operating result - Simplified income statement 2033-B-SD
87Check profits or losses - Simplified income statement 2033-B-SD
88Check assets equal liabilities - 2030-SD

Available tax return

A tax return known to exist for the company, at any source, whether or not it has been fetched yet: listed by a registry — INPI (filed documents and the figures INPI entered), Infogreffe (its catalog, confidential filings included), BODACC (the filing notices, which reveal deposits INPI holds nothing about) — or already fetched from a private source (impots.gouv, OCR, user input), in which case source is the provider name. Use it to know which fiscal years exist before triggering a synchronization, to spot confidential filings, and to explain why a year is missing.

FieldTypeDescription
sourcestringWhere the filing is known: INPI, INFOGREFFE, BODACC, or the provider name of a private source it was fetched from (IMPOTS_GOUV, OCR_SERVICE, INPUT_USER…)
closing_datedateDate on which the fiscal year ended
submitted_atdateDate on which the accounts were filed at the registry (null when the source does not give it)
typestringSame values as the tax return type above; null when the source code is unknown
privacystringSame values as the tax return privacy above; null when the source code is unknown
referencestringFiling reference at the source (deposit number)
already_fetchedbooleantrue when a tax return with the same closing date already exists for the user
document_availablebooleantrue when the source holds the filed document (INPI PDF, Infogreffe filing, private file); false for a BODACC notice or INPI figures without document
figures_availablebooleantrue when the source holds the figures of the accounts (INPI entered accounts, fetched tax returns)
revenueintegerRevenue (chiffre d'affaires net) of the exercise in euros — the same figure as the tax return revenue above — when the figures are known: INPI entered accounts, the key figures Infogreffe publishes for its public filings, or a tax return already fetched for this closing date; null when only the filing is known (confidential filing, BODACC notice, PDF not read)
published_atdateBODACC only: date the filing was announced in the bulletin (null otherwise)

Exercise

The same filings folded into one entry per fiscal year (exercises in the response), newest first — the shortest answer to "which years exist, and what do we have for each".

FieldTypeDescription
closing_datedateDate on which the fiscal year ended
sourcesarraySources knowing this exercise, most authoritative first (INPI, INFOGREFFE, private providers, then BODACC)
typestringFrom the most authoritative source; null when unknown
privacystringFrom the most authoritative source; for a filing known only through BODACC, the confidentiality declaration read from the notice
submitted_atdateFiling date from the most authoritative source (null when no source gives it)
document_availablebooleantrue when at least one source holds the document
figures_availablebooleantrue when at least one source holds the figures
already_fetchedbooleantrue when a tax return with this closing date already exists for the user
revenueintegerRevenue in euros from the first source knowing the figures (same order as sources); null when none does

Endpoints

GET/api/v6/users/{userId}/tax-returns

Returns the list of tax returns for the user's company.

GET/api/v6/users/{userId}/tax-returns/available

Returns every tax return known for the user's company, all sources confounded: listed at INPI, Infogreffe and BODACC, or already fetched from a private source. items is one row per (source, filing); exercises folds them into one entry per fiscal year. Registries are a stored snapshot refreshed at most once a week per source; add ?refresh=true to force a refresh. No data connection is required: INPI and BODACC are read from public data, Infogreffe from Qard's own account.

Response:

{
"items": [
{
"source": "BODACC",
"closing_date": "2024-07-31",
"submitted_at": null,
"type": "COMPLETE",
"privacy": "CONFIDENTIAL",
"reference": "1893",
"already_fetched": false,
"document_available": false,
"figures_available": false,
"revenue": null,
"published_at": "2025-03-25"
},
{
"source": "INFOGREFFE",
"closing_date": "2025-12-31",
"submitted_at": "2026-08-21",
"type": "STANDALONE",
"privacy": "CONFIDENTIAL",
"reference": "2026/5649",
"already_fetched": false,
"document_available": true,
"figures_available": false,
"revenue": null,
"published_at": null
},
{
"source": "INPI",
"closing_date": "2021-12-31",
"submitted_at": "2022-12-19",
"type": "COMPLETE",
"privacy": "PUBLISHED",
"reference": "6734",
"already_fetched": true,
"document_available": true,
"figures_available": true,
"revenue": 12480000,
"published_at": null
},
{
"source": "IMPOTS_GOUV",
"closing_date": "2023-12-31",
"submitted_at": "2024-05-02",
"type": "COMPLETE",
"privacy": "NOT_PUBLISHED",
"reference": "9001",
"already_fetched": true,
"document_available": true,
"figures_available": true,
"revenue": 9875000,
"published_at": null
}
],
"exercises": [
{
"closing_date": "2025-12-31",
"sources": ["INFOGREFFE"],
"type": "STANDALONE",
"privacy": "CONFIDENTIAL",
"submitted_at": "2026-08-21",
"document_available": true,
"figures_available": false,
"already_fetched": false,
"revenue": null
},
{
"closing_date": "2024-07-31",
"sources": ["BODACC"],
"type": "COMPLETE",
"privacy": "CONFIDENTIAL",
"submitted_at": null,
"document_available": false,
"figures_available": false,
"already_fetched": false,
"revenue": null
},
{
"closing_date": "2023-12-31",
"sources": ["IMPOTS_GOUV"],
"type": "COMPLETE",
"privacy": "NOT_PUBLISHED",
"submitted_at": "2024-05-02",
"document_available": true,
"figures_available": true,
"already_fetched": true,
"revenue": 9875000
},
{
"closing_date": "2021-12-31",
"sources": ["INPI"],
"type": "COMPLETE",
"privacy": "PUBLISHED",
"submitted_at": "2022-12-19",
"document_available": true,
"figures_available": true,
"already_fetched": true,
"revenue": 12480000
}
],
"sources": {
"INPI": { "refreshed_at": "2026-09-07 11:14:29", "refreshed": false, "error": null },
"INFOGREFFE": { "refreshed_at": "2026-09-07 11:14:37", "refreshed": true, "error": null },
"BODACC": { "refreshed_at": "2026-09-07 11:14:38", "refreshed": true, "error": null }
}
}

A BODACC row means a deposit was announced in the official bulletin: it is the only trace of confidential filings of small companies and of the most recent exercises, before INPI publishes anything. Its privacy comes from the confidentiality declaration mentioned in the notice, and no document or figures are available from that source.

sources tells, per registry, when the snapshot was last refreshed (datetime), whether this call refreshed it, and the error message when a refresh failed (the stored snapshot is then served as is).