Documentation API DoDocs Matchpoint
Guide complet pour intégrer l'API de traitement de documents DoDocs Matchpoint dans vos applications. Extrayez des données des factures, reçus et documents avec de simples appels API REST.
Aperçu de l'API
L'API DoDocs Matchpoint offre un accès programmatique à nos capacités de traitement de documents, vous permettant d'extraire des données structurées de divers types de documents.
Types de documents
Traitez les factures, reçus, relevés bancaires, contrats et plus.
Traitement en temps réel
Obtenez des résultats via webhooks ou réponses synchrones.
Sécurisé et fiable
Sécurité entreprise avec SLA de disponibilité à 99,9 %.
URL de base
| Environnement | URL de base | Objectif |
|---|---|---|
| URL API | https://api.dodocs.ai | Environnement de production |
| Tableau de bord | https://dodocs.ai | Tableau de bord web pour la gestion des clés API |
Démarrage
Étape 1 : Créez votre compte
Inscrivez-vous sur DoDocs Matchpoint à workspace pour commencer.
Étape 2 : Accédez à votre tableau de bord
Après la connexion, vous verrez votre tableau de bord principal où vous pouvez gérer les documents et les clés API.

Le tableau de bord DoDocs Matchpoint affichant vos documents traités
Étape 3 : Générez une clé API
Accédez à la section Clés API dans la barre latérale pour créer et gérer vos clés API.

La page de gestion des clés API
Cliquez sur « Créer une clé API » pour générer une nouvelle clé :
Étape 4 : Testez votre clé API
Vérifiez que votre clé API fonctionne avec ce test simple :
curl -X GET https://api.dodocs.ai/api/v1/health \ -H "DoDocs-Matchpoint-API-Key: your_api_key_here"
Réponse attendue :
{
"status": "healthy",
"timestamp": "2024-01-27T10:30:00Z"
}Authentification
Toutes les requêtes API doivent inclure votre clé API dans l'en-tête DoDocs-Matchpoint-API-Key :
DoDocs-Matchpoint-API-Key: your_api_key_here
Format de la clé API
- Longueur : Généralement 40–50 caractères
- Sensible à la casse : Les clés doivent être utilisées exactement telles que fournies
Bonnes pratiques de sécurité
Faire :
- Stocker les clés API dans des variables d'environnement
- Utiliser des clés différentes pour le développement et la production
- Faire tourner les clés régulièrement (tous les 90 jours recommandé)
- Utiliser HTTPS pour tous les appels API
Ne pas :
- Valider les clés API dans le contrôle de version
- Inclure les clés dans le code côté client
- Partager les clés entre applications
- Utiliser les clés dans les paramètres d'URL
Appels API
Point de terminaison de téléchargement de documents
/api/v1/uploadTéléchargez des documents pour traitement en utilisant multipart/form-data.
Paramètres de la requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
metadata | Chaîne JSON | Oui | MUST be first field in request. DOIT être le premier champ de la requête. Instructions de traitement et configuration (peut être vide : {}) |
file | Fichier | Oui | Le fichier document à traiter |
Options de métadonnées
{
"clientReference": "ORDER-123", // Optional: Your reference ID
"urgent": true, // Optional: Priority processing
"language": "en" // Optional: Document language
}
// Or can be empty:
{}Exigences des fichiers
| Format | Extensions | Taille max |
|---|---|---|
| 50 MB | ||
| Images | .jpg, .jpeg, .png, .tiff | 25 MB |
| Word | .doc, .docx | 25 MB |
| Excel | .xls, .xlsx | 25 MB |
| Text | .txt, .csv | 10 MB |
Configuration des webhooks
Les webhooks vous permettent de recevoir des notifications en temps réel lorsque vos documents sont traités.
Configuration des webhooks
Configurez les webhooks via les paramètres des clés API dans votre tableau de bord.

Interface de configuration des webhooks
Événements webhook
document.processed
Envoyé lorsque le traitement de documents se termine avec succès.
{
"requestId": "75193012-0885-4db7-b5ce-7506e169c80c",
"documentData": "[{\"fileName\":\"Transaction_Summary.xls\",\"documentType\":\"Bank Statement\"}]",
"errors": []
}document.failed
Envoyé lorsque le traitement de documents échoue.
{
"requestId": "8b6683c7-e583-4fbc-aa23-5bf1d22d32eb",
"documentData": "[]",
"errors": [
{
"code": "EXTRACTION_FAILED",
"message": "Unable to extract data from document",
"details": "Poor image quality or unsupported format"
}
]
}En-têtes webhook
Chaque requête webhook inclut ces en-têtes :
X-Webhook-Signature: sha256=abc123... X-Webhook-Event: document.processed X-Webhook-ID: unique-webhook-id X-Webhook-Timestamp: 1706354400 Content-Type: application/json
Vérification de signature
Vérifiez toujours les signatures webhook pour vous assurer qu'elles proviennent de DoDocs Matchpoint.
Python
import hmac
import hashlib
def verify_webhook(payload, signature, secret):
expected_signature = hmac.new(
secret.encode('utf-8'),
payload.encode('utf-8'),
hashlib.sha256
).hexdigest()
expected = f"sha256={expected_signature}"
return hmac.compare_digest(signature, expected)Node.js
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
const expected = `sha256=${expectedSignature}`;
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}Exemples de code
Python — Télécharger un document
import requests
import json
url = "https://api.dodocs.ai/api/v1/upload"
api_key = "your_api_key_here"
# Prepare metadata (must come first in the request)
metadata = {'clientReference': 'INV-2024-001'}
data = {'metadata': json.dumps(metadata)}
# Prepare the file
files = {
'file': ('invoice.pdf', open('invoice.pdf', 'rb'), 'application/pdf')
}
# Make the request
response = requests.post(
url,
headers={'DoDocs-Matchpoint-API-Key': api_key},
data=data,
files=files
)
print(response.json())Python — Gérer un webhook
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def handle_webhook():
event = request.json
if event['event'] == 'document.processed':
handle_processed(event['data'])
elif event['event'] == 'document.failed':
handle_failed(event['data'])
return '', 200
def handle_processed(data):
print(f"Document processed: {data['extractedData']}")
def handle_failed(data):
print(f"Processing failed: {data['errorMessage']}")
if __name__ == '__main__':
app.run(port=3000)Node.js — Télécharger un document
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
const form = new FormData();
// Metadata must come first
form.append('metadata', JSON.stringify({ clientReference: 'INV-2024-001' }));
form.append('file', fs.createReadStream('invoice.pdf'));
axios.post('https://api.dodocs.ai/api/v1/upload', form, {
headers: {
'DoDocs-Matchpoint-API-Key': 'your_api_key_here',
...form.getHeaders()
}
})
.then(response => console.log(response.data))
.catch(error => console.error(error));cURL — Télécharger un document
curl -X POST https://api.dodocs.ai/api/v1/upload \
-H "DoDocs-Matchpoint-API-Key: your_api_key_here" \
-F 'metadata={"clientReference":"INV-2024-001"}' \
-F "[email protected]"cURL — Tester un webhook
# Use webhook.site for testing # 1. Go to https://webhook.site # 2. Copy your unique URL # 3. Configure it in your DoDocs Matchpoint dashboard # Or use ngrok for local testing: npm install -g ngrok ngrok http 3000
Support et ressources
Besoin d'un support entreprise ?
Pour un support entreprise avec garanties SLA, gestion de compte dédiée et support prioritaire :
Contacter le service commercial