{"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.13.0"},"servers":[{"url":"/","description":"This server"}],"tags":[{"name":"E-invoicing code lists","description":"The code lists behind EN 16931 and Peppol BIS e-invoices, served as published and mirrored daily: the EN 16931 code lists of the European Commission (tax categories, VAT exemption reasons, payment means, units of measure, electronic address schemes, identifier schemes...; source: European Commission, Digital Building Blocks) and the Peppol code lists of OpenPeppol (document types, participant identifier schemes, processes...; OpenPeppol AISBL, Apache License 2.0). Only the current release of each list is served; its version comes with every answer."}],"paths":{"/api/v1/code-lists":{"get":{"tags":["E-invoicing code lists"],"summary":"Every code list","description":"The lists served, with their publisher, the release served and their number of codes.","operationId":"findAllLists","responses":{"200":{"description":"Every list (empty before the first synchronization)","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CodeListResponse"}}}}},"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/code-lists/{listId}":{"get":{"tags":["E-invoicing code lists"],"summary":"Codes of a list","description":"The codes of one list in published order, optionally those whose code or name contains a text (case-insensitive) or, for the Peppol lists, in one state.","operationId":"findCodes","parameters":[{"name":"listId","in":"path","description":"Identifier of the list: en16931-1001, en16931-1153, en16931-4461, en16931-5305, en16931-allowance, en16931-charge, en16931-item, en16931-text, en16931-unit, en16931-vatex, en16931-eas, en16931-icd, en16931-country, en16931-currency, en16931-mime, peppol-document-types, peppol-participant-identifier-schemes, peppol-processes, peppol-transport-profiles, peppol-spis-use-cases","required":true,"schema":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"example":"en16931-5305"},{"name":"q","in":"query","description":"Text the code or the name contains, case-insensitive","required":false,"schema":{"type":"string","pattern":"^[^\\p{Cntrl}]{1,100}$"},"example":"exempt"},{"name":"state","in":"query","description":"Peppol state to keep: active, deprecated or removed (Peppol lists)","required":false,"schema":{"type":"string","pattern":"^(active|deprecated|removed)$"},"example":"active"}],"responses":{"200":{"description":"The matching codes, possibly none","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CodeListCodesResponse"}}}},"400":{"description":"Malformed list identifier, text or state (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such list (code CODE_LIST_NOT_FOUND)","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/code-lists/{listId}/code":{"get":{"tags":["E-invoicing code lists"],"summary":"One code of a list","description":"One code by its exact value, given as a query parameter because Peppol identifiers contain # and :. Peppol document types and processes are keyed scheme::value (busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##...).","operationId":"findCode","parameters":[{"name":"listId","in":"path","description":"Identifier of the list: en16931-1001, en16931-1153, en16931-4461, en16931-5305, en16931-allowance, en16931-charge, en16931-item, en16931-text, en16931-unit, en16931-vatex, en16931-eas, en16931-icd, en16931-country, en16931-currency, en16931-mime, peppol-document-types, peppol-participant-identifier-schemes, peppol-processes, peppol-transport-profiles, peppol-spis-use-cases","required":true,"schema":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"example":"en16931-5305"},{"name":"value","in":"query","description":"The exact code","required":true,"schema":{"type":"string","pattern":"^[^\\p{Cntrl}]{1,300}$"},"example":"AE"}],"responses":{"200":{"description":"The code with its list and release","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CodeListCodeResponse"}}}},"400":{"description":"Malformed list identifier or value (code INVALID_REQUEST)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such list (code CODE_LIST_NOT_FOUND) or no such code in it (code CODE_NOT_FOUND)","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":{"CodeListResponse":{"type":"object","description":"A code list and the release it is served in","properties":{"id":{"type":"string","description":"Identifier of the list in this API","example":"en16931-5305"},"name":{"type":"string","description":"What the list holds","example":"Duty or tax or fee category codes (UNCL 5305, EN 16931 subset)"},"publisher":{"type":"string","description":"Who publishes it: EUROPEAN_COMMISSION (EN 16931 code lists) or OPENPEPPOL (Peppol code lists)","enum":["EUROPEAN_COMMISSION","OPENPEPPOL"]},"version":{"type":"string","description":"Release served, as its publisher numbers it: effective date of the Commission release, OpenPeppol release number","example":"2026-05-15"},"sourceUrl":{"type":"string","description":"Where the release was read"},"canonicalUri":{"type":["string","null"],"description":"Genericode canonical URI of the list (Commission lists)","example":"urn:cef.eu:names:identifier:EAS"},"codeCount":{"type":"integer","format":"int32","description":"Number of codes","example":9}}},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string"},"correlationId":{"type":"string"}}},"CodeListCodesResponse":{"type":"object","description":"Codes of one list, possibly filtered","properties":{"listId":{"type":"string","description":"Identifier of the list","example":"en16931-5305"},"listVersion":{"type":"string","description":"Release the codes belong to - record it with a code you use","example":"2026-05-15"},"codes":{"type":"array","description":"The matching codes, in published order","items":{"$ref":"#/components/schemas/CodeListEntryResponse"}}}},"CodeListEntryResponse":{"type":"object","description":"One code, as its publisher publishes it","properties":{"code":{"type":"string","description":"The code. Peppol document types and processes are keyed scheme::value, Peppol's own identifier form","example":"AE"},"name":{"type":["string","null"],"description":"Its published name; absent when the list publishes none (MIME types, Peppol processes, transport profiles, SPIS use cases)","example":"VAT Reverse charge"},"remark":{"type":["string","null"],"description":"The Commission's remark on the code"},"state":{"type":["string","null"],"description":"Peppol state: active, deprecated or removed; absent for the Commission lists","example":"active"},"attributes":{"type":"object","additionalProperties":{},"description":"The other columns the Peppol list publishes, named in camelCase (initialRelease, deprecationRelease, removalDate, scheme, value, processIds, category, iso6523, country, issuingAgency...); empty for the Commission lists"}}},"CodeListCodeResponse":{"type":"object","description":"One code with the list and release it belongs to","properties":{"listId":{"type":"string","description":"Identifier of the list","example":"en16931-5305"},"listVersion":{"type":"string","description":"Release the code belongs to - record it with the code","example":"2026-05-15"},"code":{"$ref":"#/components/schemas/CodeListEntryResponse","description":"The code"}}}},"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"}}}}