Aller au contenu

Développeurs

Une API d’extraction conçue pour la production.

Importez des fichiers, interrogez leur état, recevez des webhooks signés et lisez des champs normalisés avec identifiants de requête, idempotence, jetons de test et contrat OpenAPI.

Cycle de vie de l’API

Conçue pour les nouvelles tentatives, le traitement asynchrone et un contexte d’assistance clair.

Les imports sont asynchrones et idempotents. Les documents traités renvoient des champs normalisés ; les documents bloqués ou en échec fournissent des informations que votre intégration peut transmettre au bon interlocuteur ou afficher à l’assistance.

Import
curl -X POST "https://www.exdata.app/api/v1/documents" \
  -H "Authorization: Bearer $EXDATA_API_TOKEN" \
  -H "Idempotency-Key: invoice-upload-001" \
  -F "file=@invoice.pdf" \
  -F "locale=en" \
  -F "custom_types[]=invoice"
Résultat
{
  "status": "completed",
  "mode": "live",
  "is_e_invoice": true,
  "extractions": {
    "type": {
      "value": "invoice",
      "candidates": ["invoice"]
    },
    "document_number": {
      "value": "RE-2026-1048",
      "candidates": ["RE-2026-1048"]
    },
    "sender_name": {
      "value": "Meyer Supply GmbH",
      "candidates": ["Meyer Supply"]
    },
    "recipient_name": {
      "value": "Northwind Operations Ltd.",
      "candidates": ["Northwind Operations"]
    },
    "payment_due_date": {
      "value": "2026-06-14",
      "candidates": ["14.06.2026"]
    },
    "net_amount": {
      "value": "1079.50",
      "candidates": ["1,079.50"]
    },
    "tax_breakdowns": {
      "value": [
        {
          "taxable_amount": "1079.50",
          "tax_amount": "205.10",
          "tax_rate": "19.00",
          "tax_collection_mechanism": "seller_collected"
        }
      ],
      "candidates": ["VAT 19% 205.10"]
    },
    "gross_amount": {
      "value": "1284.60",
      "candidates": ["EUR 1,284.60"]
    },
    "currency": {
      "value": "EUR",
      "candidates": ["EUR"]
    },
    "iban": {
      "value": "DE89370400440532013000",
      "candidates": ["DE89 3704 0044 0532 0130 00"]
    }
  },
  "latest_extraction_run": {
    "extraction_schema_version": "2026-08-28.1",
    "normalization_version": "base:2026-10-21.3"
  }
}

Parcours d’intégration

Testez votre intégration en conditions de production avant de consommer des crédits.

1

Créez un jeton de test

Les jetons de test utilisent les mêmes endpoints, validations, règles d’idempotence, webhooks et erreurs que les jetons de production.

2

Importez des fichiers représentatifs

Utilisez des PDF représentatifs, vos propres libellés et la langue correspondant à chaque document. Les clés d’idempotence empêchent les imports répétés de créer des doublons.

3

Passez aux jetons de production

Passez aux jetons de production après avoir testé le polling, les webhooks, la gestion des erreurs et le mappage des données vers vos systèmes.

Après le lancement

Les détails d’intégration restent visibles quand ils comptent.

Lorsqu’un document échoue, est bloqué ou produit un résultat inattendu, votre intégration doit disposer d’informations exploitables par les logiciels et d’un accès clair aux détails dans l’espace de travail.

Identifiants de requête
Chaque réponse API contient un identifiant permettant à l’assistance de relier un signalement à la requête exacte.
En-têtes de webhook signés
Les livraisons incluent les en-têtes d’événement, de livraison, d’horodatage et de signature nécessaires à la vérification.
Erreurs lisibles par machine
Les erreurs incluent un message, un code et l’identifiant de requête pour gérer proprement nouvelles tentatives et assistance.
Contrat OpenAPI
Le contrat de l’API v1 est publié et validé afin d’aligner SDK, intégrations et documentation.
Limites et temporisation
Les limites par jeton et par compte protègent le service tout en donnant un modèle clair de nouvelle tentative.

Documentation

Commencez par le guide de démarrage, puis configurez le polling ou les webhooks.