Intégration data warehouse

Vos documents en lignes BigQuery, prêtes à joindre

Holofin lit PDF et scans et écrit chaque champ dans une table BigQuery de votre projet, dans la région européenne de votre choix.

Lumen Logistique SAS
BULLETIN DE PAIE
Période du 01/09/2026 au 30/09/2026
SalariéCamille Martin
EmploiResponsable d'entrepôt, CDI
Heures151,67
Salaire brut3 450,00
Net à payer avant impôt2 689,12
Net payé2 451,37

✓7 champs chargés

!1 à vérifier

Document lu par Holofin et chargé dans BigQuery : bulletin de paie. Exemple fictif, tous les noms et les chiffres sont inventés.

Comment ça marche

  1. 1

    Connectez BigQuery une seule fois

    Créez un rôle avec des droits d'insertion sur un seul schéma et collez ses identifiants dans Holofin. Holofin crée la table au premier chargement ; il ne voit rien d'autre dans BigQuery.

  2. 2

    Envoyez vos documents comme d'habitude

    Dépôt dans l'application, transfert par e-mail ou appel à l'API. Holofin classe chaque fichier, découpe les liasses en documents et lit les champs propres à chaque type.

  3. 3

    Interrogez les lignes

    Chaque champ arrive sous forme d'une ligne, avec sa confiance, la page dont il provient et un indicateur needs_review. Joignez-le à vos propres tables dans BigQuery comme n'importe quelle autre source.

Comment le connecteur BigQuery écrit les données

Holofin écrit via la BigQuery Storage Write API en mode committed : chaque ligne est interrogeable dès son écriture et n'est jamais chargée deux fois. Il utilise un compte de service doté du rôle BigQuery Data Editor sur un seul dataset, dans l'emplacement de votre choix (EU par défaut).

Le seul droit dont Holofin a besoin :

-- Service account: [email protected]
GRANT `roles/bigquery.dataEditor`
ON SCHEMA `holofin-analytics.extracted`
TO "serviceAccount:[email protected]";

La table écrite par Holofin

Une ligne par champ : un nouveau type de document ne modifie jamais la table. Les colonnes sont identiques d'une plateforme à l'autre ; les types suivent la nomenclature de BigQuery.

`holofin-analytics.extracted.document_fields`
document_idSTRINGIdentifiant Holofin du document, stable d'un chargement à l'autre.
document_typeSTRINGLa classe attribuée au document par Holofin : supplier_invoice, payslip, bank_statement, etc.
fieldSTRINGLe nom du champ, en snake_case, tel que défini dans votre schéma d'extraction.
valueSTRINGLa valeur en texte normalisé : dates ISO, point décimal, IBAN sans espaces.
confidenceFLOATEntre 0 et 1. Le degré de certitude de Holofin sur la valeur.
pageINTEGERLa page du fichier source sur laquelle la valeur a été lue.
bboxARRAY<FLOAT>L'emplacement sur cette page : x, y, largeur, hauteur, en fractions de la page.
needs_reviewBOOLEANVrai quand la confiance est faible ou qu'une règle échoue, par exemple un solde qui ne tombe pas juste.
reviewed_bySTRINGLa personne qui a confirmé ou corrigé la valeur dans Holofin, le cas échéant.
loaded_atTIMESTAMPL'heure d'écriture de la ligne. Une correction écrit une nouvelle ligne ; la plus récente fait foi.

Interroger les données dans BigQuery

Salaire net moyen par employeur sur les bulletins de la semaine, hors valeurs encore en attente de revue :

-- Net pay declared on payslips this week, per employer,
-- keeping only fields nobody needs to look at again
SELECT
  employer.value AS employer,
  COUNT(*) AS payslips,
  ROUND(AVG(SAFE_CAST(net.value AS NUMERIC)), 2) AS avg_net_paid
FROM `holofin-analytics.extracted.document_fields` AS net
JOIN `holofin-analytics.extracted.document_fields` AS employer
  USING (document_id)
WHERE net.field = 'net_paid'
  AND employer.field = 'employer_name'
  AND NOT net.needs_review
  AND net.loaded_at >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
GROUP BY employer
ORDER BY payslips DESC

Sécurité

  • Les documents sont traités en Europe, sur des serveurs OVHcloud situés en France et certifiés ISO 27001.
  • Holofin écrit uniquement dans le schéma que vous lui ouvrez. Il ne peut pas lire vos autres tables.
  • La durée de conservation des fichiers sources dans Holofin se règle par organisation, de zéro rétention des données à une conservation illimitée. Les lignes de votre entrepôt suivent vos propres règles.
  • RGPD : Holofin agit en tant que sous-traitant. Aucun document ne quitte l'Union européenne.

Questions fréquentes

La table est-elle partitionnée ?

Oui. Holofin la crée partitionnée par jour sur loaded_at et clusterisée sur document_type et field : les requêtes filtrées sur les documents récents scannent peu de données.

Les données peuvent-elles rester dans l'UE ?

Oui. Le dataset se trouve dans votre projet et dans l'emplacement choisi à sa création, par exemple EU ou europe-west9 (Paris). Holofin traite lui-même les documents en France.

En combien de temps les champs apparaissent-ils dans BigQuery ?

Quelques secondes après la lecture du document. La plupart des documents sont lus en moins d'une minute : un fichier envoyé par e-mail est en général interrogeable dans BigQuery une minute plus tard.

Que se passe-t-il quand un relecteur corrige une valeur ?

Holofin écrit une nouvelle ligne pour ce champ avec la valeur corrigée, needs_review à false et reviewed_by renseigné. Gardez la dernière ligne par document et par champ pour obtenir l'état courant, ou conservez toutes les lignes pour une piste d'audit complète.

Puis-je choisir les champs chargés ?

Oui. Chaque type de document a son schéma d'extraction dans Holofin. Ajoutez, renommez ou supprimez des champs : les documents suivants arrivent avec les nouveaux noms. La structure de la table ne change pas.

Quels documents Holofin sait-il lire ?

Tout document d'entreprise envoyé en PDF, en scan ou en photo : factures, bulletins de paie, relevés bancaires, avis d'imposition, extraits Kbis, pièces d'identité, attestations. Holofin vérifie aussi que chaque fichier n'a pas été falsifié et peut signaler un document suspect avant qu'on se fie à ses champs.

Testez Holofin sur vos propres documents.

Chaque valeur reliée à sa position sur la page, chaque PDF analysé pour détecter les falsifications, des règles appliquées à l'ensemble du dossier.

Holofin