{"openapi":"3.1.0","info":{"title":"AXITAM Public API","description":"Reference data (ISO, CLDR), Belgian enterprises, annual accounts and addresses, Peppol participants - built on community-maintained and official sources. See the data-sources API for each source's version and license. Beta.","version":"0.10.0"},"servers":[{"url":"/","description":"This server"}],"tags":[{"name":"Annual accounts","description":"Annual accounts deposited by Belgian enterprises at the Central Balance Sheet Office of the National Bank of Belgium (source: NBB CBSO web services). The deposits of the last three years are mirrored and refreshed daily; the complete history of an enterprise (since 1978) is fetched from the NBB once, on request. Documents are relayed from the NBB."}],"paths":{"/api/v1/bel/enterprises/{number}/annual-accounts":{"get":{"tags":["Annual accounts"],"summary":"List the annual accounts of an enterprise","description":"Deposits known for the enterprise, newest first, answered from the mirror. With history=complete, the complete history is fetched from the NBB the first time (several seconds) and stored; later calls answer from the mirror, kept up to date daily.","operationId":"findByEnterprise","parameters":[{"name":"number","in":"path","description":"Enterprise number, with or without dots, spaces or BE prefix","required":true,"schema":{"type":"string"},"example":"0420.254.973"},{"name":"history","in":"query","description":"complete: fetch the complete history from the NBB if not done yet","required":false,"schema":{"type":"string","pattern":"^complete$"},"example":"complete"}],"responses":{"200":{"description":"Deposits, possibly none","content":{"*/*":{"schema":{"$ref":"#/components/schemas/EnterpriseAnnualAccountsResponse"}}}},"400":{"description":"Not a well-formed enterprise number (code INVALID_ENTERPRISE_NUMBER) or history other than complete (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"The NBB did not answer the history request (code UPSTREAM_UNAVAILABLE)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Too many requests towards the NBB in flight, retry later (code UPSTREAM_BUSY)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/bel/annual-accounts/{reference}":{"get":{"tags":["Annual accounts"],"summary":"Read one annual account deposit","description":"By its NBB reference; a deposit not mirrored yet is fetched from the NBB and stored.","operationId":"findByReference","parameters":[{"name":"reference","in":"path","description":"Deposit reference: year and eight digits","required":true,"schema":{"type":"string"},"example":"2025-00555958"}],"responses":{"200":{"description":"Deposit found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AnnualAccountResponse"}}}},"400":{"description":"Not a well-formed reference (code INVALID_ANNUAL_ACCOUNT_REFERENCE)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No deposit has this reference (code ANNUAL_ACCOUNT_NOT_FOUND)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"The NBB did not answer (code UPSTREAM_UNAVAILABLE)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Too many requests towards the NBB in flight (code UPSTREAM_BUSY)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}},"/api/v1/bel/annual-accounts/{reference}/{format}":{"get":{"tags":["Annual accounts"],"summary":"Download a document of an annual account deposit","description":"Relayed from the NBB: pdf for every deposit (the accounts as filed), xbrl and json only for deposits with structured data (json for deposits since April 2022).","operationId":"downloadDocument","parameters":[{"name":"reference","in":"path","description":"Deposit reference: year and eight digits","required":true,"schema":{"type":"string"},"example":"2025-00555958"},{"name":"format","in":"path","description":"pdf, xbrl or json","required":true,"schema":{"type":"string"},"example":"pdf"}],"responses":{"200":{"description":"The document","content":{"application/pdf":{},"application/xml":{},"application/json":{}}},"400":{"description":"Not a well-formed reference (code INVALID_ANNUAL_ACCOUNT_REFERENCE)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The NBB has no such document for this deposit (code ANNUAL_ACCOUNT_NOT_FOUND)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"The NBB did not answer (code UPSTREAM_UNAVAILABLE)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Too many requests towards the NBB in flight (code UPSTREAM_BUSY)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The X-API-Key header carries an unknown, revoked or malformed key (code INVALID_API_KEY). Leave the header out to call anonymously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests from this client: the code is RATE_LIMITED, Retry-After says in how many seconds a request will pass again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Sustained requests per second allowed on this path","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests left in the current burst","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{},{"apiKey":[]}]}}},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"correlationId":{"type":"string"}}},"AnnualAccountAddressResponse":{"type":"object","description":"The registered office as stated on the deposit","properties":{"street":{"type":["string","null"],"description":"Street","example":"Rue de la Centenaire(ET)"},"houseNumber":{"type":["string","null"],"description":"House number","example":"126"},"box":{"type":["string","null"],"description":"Box number"},"postalCode":{"type":["string","null"],"description":"Postal code","example":"7050"},"city":{"type":["string","null"],"description":"City","example":"Jurbise"},"countryCode":{"type":["string","null"],"description":"ISO 3166-1 alpha-2 country code","example":"BE"}}},"AnnualAccountDocumentsResponse":{"type":"object","description":"Where this API relays the documents of the deposit from the NBB","properties":{"pdf":{"type":"string","description":"The accounts as filed, PDF (every deposit)","example":"/api/v1/bel/annual-accounts/2025-00555958/pdf"},"xbrl":{"type":["string","null"],"description":"The XBRL instance; absent when the deposit has no structured data","example":"/api/v1/bel/annual-accounts/2025-00555958/xbrl"},"json":{"type":["string","null"],"description":"The NBB's JSON rendering of the XBRL (deposits since April 2022); absent when the deposit has no structured data","example":"/api/v1/bel/annual-accounts/2025-00555958/json"}}},"AnnualAccountResponse":{"type":"object","description":"An annual account deposit at the Belgian Central Balance Sheet Office (NBB)","properties":{"referenceNumber":{"type":"string","description":"Reference the NBB assigned to the deposit","example":"2025-00555958"},"enterpriseNumber":{"type":"string","description":"Enterprise number, 10 digits","example":"0420254973"},"depositDate":{"type":"string","format":"date","description":"Date of the deposit","example":"2025-10-31"},"exerciseStart":{"type":["string","null"],"format":"date","description":"First day of the financial year","example":"2024-01-01"},"exerciseEnd":{"type":["string","null"],"format":"date","description":"Last day of the financial year","example":"2024-12-31"},"modelType":{"type":["string","null"],"description":"NBB model of the accounts (m02-f full model, m81-f micro model, m87-f micro model...)","example":"m87-f"},"depositType":{"type":["string","null"],"description":"Initial, Correction or Complementary","example":"Initial"},"language":{"type":["string","null"],"description":"Language of the deposit: FR, NL, DE or EN","example":"FR"},"currency":{"type":["string","null"],"description":"ISO 4217 currency of the accounts","example":"EUR"},"enterpriseName":{"type":["string","null"],"description":"Enterprise name as stated on the deposit","example":"AXITAM"},"address":{"type":"null","$ref":"#/components/schemas/AnnualAccountAddressResponse"},"legalForm":{"type":["string","null"],"description":"KBO juridical form code","example":"610"},"legalSituation":{"type":["string","null"],"description":"KBO juridical situation code","example":"000"},"legalValidation":{"type":["boolean","null"],"description":"Whether the deposit fulfilled the legal validation checks"},"activityCode":{"type":["string","null"],"description":"NACE-BEL main activity code","example":"63110"},"generalAssemblyDate":{"type":["string","null"],"format":"date","description":"Date of the general assembly that approved the accounts","example":"2025-10-23"},"structuredDataAvailable":{"type":"boolean","description":"The NBB holds structured data (XBRL, JSON) for this deposit, not only the PDF"},"dataVersion":{"type":["string","null"],"description":"Authentic (as filed) or Improved","example":"Authentic"},"documents":{"$ref":"#/components/schemas/AnnualAccountDocumentsResponse"}}},"EnterpriseAnnualAccountsResponse":{"type":"object","description":"The annual account deposits of a Belgian enterprise, newest first","properties":{"enterpriseNumber":{"type":"string","description":"Enterprise number, 10 digits","example":"0420254973"},"historyComplete":{"type":"boolean","description":"The complete history (every deposit since 1978) was fetched from the NBB; otherwise only the deposits of the mirrored period (3 years, kept up to date daily) are listed. Ask for history=complete to fetch it once."},"historyFetchedAt":{"type":["string","null"],"format":"date-time","description":"When the complete history was fetched"},"annualAccounts":{"type":"array","description":"Deposits, newest first","items":{"$ref":"#/components/schemas/AnnualAccountResponse"}}}}},"securitySchemes":{"apiKey":{"type":"apiKey","description":"Optional. A key of a registered developer (portal: /account/) raises the request rate of the client from the anonymous per-IP limit to the plan's. Without it the request is anonymous; an unknown or revoked key is refused (401 INVALID_API_KEY).","name":"X-API-Key","in":"header"}}}}