Sirenic Facture API

The Facture API from Sirenic — 1 operation(s) for facture.

Operations 1

GET /v1/facture/verifier Invoice verification — cross-check the identifiers printed on a French invoice #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sirenic-eu:sirenic-eu-facture-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sirenic-eu-facture-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sirenic Facture API
  version: 1.0.0
  description: 'French & European company data, pay-per-call in USDC or EURC — EURC at numeric parity: the same figure as the USDC price, not FX-converted (at the ECB rate of 4 Sept 2026, about 16 % more in dollar terms) via the x402 protocol — or with an API key and prepaid credits (1 credit = 1 EUR, same per-call prices, no wallet).'
  contact:
    email: contact@sirenic.eu
  license:
    name: 'Data: Licence Ouverte / Open License Etalab 2.0'
    url: https://www.etalab.gouv.fr/licence-ouverte-open-licence/
servers:
- url: https://api.sirenic.eu
security:
- {}
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: Facture
paths:
  /v1/facture/verifier:
    get:
      summary: Invoice verification — cross-check the identifiers printed on a French invoice
      description: 'Invoice verification for France — cross-check the identifiers PRINTED ON an invoice in one call: SIREN against the official registry (existence, active status, live), the VAT number on the invoice against the one computed from the SIREN AND live against VIES, the IBAN (ISO form, key digits, bank identified). Deterministic verdict coherent/incoherent/inverifiable, closed-list reasons. Flags a VAT that belongs to another company or a ceased supplier. Not a payee verification.'
      x-price: $0.02
      x-payment:
        protocol: x402
        network: eip155:8453
      parameters:
      - name: siren
        in: query
        required: true
        schema:
          type: string
          pattern: ^\d{9}$
        example: '552032534'
        description: 9-digit SIREN printed on the invoice
      - name: tva
        in: query
        required: false
        schema:
          type: string
          maxLength: 20
        example: FR27552032534
        description: VAT number printed on the invoice — cross-checked against the one computed from the SIREN AND live against VIES. At least one of tva/iban is required (400 otherwise)
      - name: iban
        in: query
        required: false
        schema:
          type: string
          maxLength: 40
        description: IBAN printed on the invoice — ISO form + key digits + bank identification (never a holder-name check). At least one of tva/iban is required
      responses:
        '200':
          description: controles.entreprise (Sirene status, live), controles.tva {fournie, attendue_pour_ce_siren, correspond_au_siren, vies} and controles.iban (form check + bank) as requested, plus verdict coherent/incoherent/inverifiable with closed-list raisons[] traced to their source. Flags a VAT number that belongs to ANOTHER company, a ceased supplier, or a key-invalid IBAN. A VIES outage yields inverifiable, never a false invalid; non_verifie names what the bank leg never checks (a valid-but-swapped IBAN is not detectable).
          content:
            application/json:
              example:
                siren: '552032534'
                etat_administratif: actif
                controles:
                  tva:
                    fournie: FR27552032534
                    attendue_pour_ce_siren: FR27552032534
                    correspond_au_siren: true
                    vies:
                      statut: valide
                  iban:
                    valide: true
                    exemple_de_documentation: true
                    banque:
                      identifiee: true
                verdict: coherent
                raisons:
                - code: iban_exemple_documentation
                  niveau: information
                  source: IBAN publié comme EXEMPLE de documentation — bien formé ; existence du compte non contrôlée.
                non_verifie:
                - existence_du_compte
                - nom_du_titulaire
                source: 'Composition Sirenic : INSEE Sirene (état, live), croisement TVA calculée (clé FR déterministe), VIES (Commission européenne, live), contrôle de forme IBAN + registres bancaires officiels'
                disclaimer: 'Croisement déterministe des identifiants affichés par une facture (raisons en liste fermée, tracées à leur source) — ni un avis de conformité fiscale, ni une Verification of Payee : le volet bancaire contrôle la FORME et identifie la banque, sans vérifier l''existence du compte ni le nom du titulaire — un IBAN valide mais substitué n''est pas détectable ici. / Deterministic cross-check of the identifiers printed on an invoice — neither tax advice nor a Verification of Payee: the bank leg checks FORM and identifies the bank; a valid-but-swapped IBAN cannot be detected here.'
        '400':
          $ref: '#/components/responses/Reponse400InvalidInput'
        '402':
          $ref: '#/components/responses/Reponse402PaymentRequired'
        '404':
          description: No diffusible company for this SIREN.
      tags:
      - Facture
      operationId: getV1FactureVerifier
      x-operation-id-source: derived
components:
  responses:
    Reponse402PaymentRequired:
      description: Payment required — x402 payment requirements in body (JSON) and headers.
    Reponse400InvalidInput:
      description: 'Invalid input. Body: {error, champ, message}. Never charged. / Jamais facturé.'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: 'Sirenic API key (srn_live_…) paying with prepaid credits (1 credit = 1 EUR, same prices as x402). Credits expire 12 months after purchase; calls are charged first to the credits closest to expiry. Optional: without it, the same routes answer 402 with a signable x402 quote. Insufficient balance → 402 {error: credits_insuffisants} WITHOUT a PAYMENT-REQUIRED header. Get a key at /compte.'
    BearerAuth:
      type: http
      scheme: bearer
      description: 'The same srn_live_… API key sent as Authorization: Bearer. A bearer value that is not an srn_ key is ignored (x402 flow unchanged).'