وثائق DoDocs Matchpoint API
دليل شامل لدمج واجهة برمجة تطبيقات معالجة المستندات من DoDocs Matchpoint في تطبيقاتك. استخرج البيانات من الفواتير والإيصالات والمستندات باستدعاءات REST API بسيطة.
نظرة عامة على API
توفر واجهة برمجة تطبيقات DoDocs Matchpoint وصولاً برمجياً إلى قدرات معالجة المستندات، مما يتيح استخراج بيانات منظمة من أنواع مستندات مختلفة.
أنواع المستندات
معالجة الفواتير والإيصالات وكشوف الحسابات المصرفية والعقود والمزيد.
معالجة في الوقت الفعلي
احصل على النتائج عبر webhooks أو الاستجابات المتزامنة.
آمن وموثوق
أمان بمستوى المؤسسات مع اتفاقية SLA لوقت تشغيل 99.9%.
عناوين URL الأساسية
| البيئة | عنوان URL الأساسي | الغرض |
|---|---|---|
| عنوان API | https://api.dodocs.ai | بيئة الإنتاج المباشرة |
| لوحة التحكم | https://dodocs.ai | لوحة تحكم ويب لإدارة مفاتيح API |
البدء
الخطوة 1: إنشاء حسابك
سجل للحصول على حساب DoDocs Matchpoint على مساحة العمل للبدء.
الخطوة 2: الوصول إلى لوحة التحكم
بعد تسجيل الدخول، سترى لوحة التحكم الرئيسية حيث يمكنك إدارة المستندات ومفاتيح API.

لوحة تحكم DoDocs Matchpoint تعرض مستنداتك المعالجة
الخطوة 3: إنشاء مفتاح API
انتقل إلى قسم مفاتيح API في الشريط الجانبي لإنشاء وإدارة مفاتيح API.

صفحة إدارة مفاتيح API
انقر على "إنشاء مفتاح API" لتوليد مفتاح جديد:
الخطوة 4: اختبار مفتاح API
تحقق من عمل مفتاح API بهذا الاختبار البسيط:
curl -X GET https://api.dodocs.ai/api/v1/health \ -H "DoDocs-Matchpoint-API-Key: your_api_key_here"
الاستجابة المتوقعة:
{
"status": "healthy",
"timestamp": "2024-01-27T10:30:00Z"
}المصادقة
يجب أن تتضمن جميع طلبات API مفتاح API في ترويسة DoDocs-Matchpoint-API-Key :
DoDocs-Matchpoint-API-Key: your_api_key_here
تنسيق مفتاح API
- الطول: عادة 40-50 حرفاً
- حساس لحالة الأحرف: يجب استخدام المفاتيح كما هي بالضبط
أفضل ممارسات الأمان
افعل:
- خزّن مفاتيح API في متغيرات البيئة
- استخدم مفاتيح مختلفة للتطوير والإنتاج
- دوّر المفاتيح بانتظام (كل 90 يوماً موصى به)
- استخدم HTTPS لجميع استدعاءات API
لا تفعل:
- لا تودع مفاتيح API في التحكم بالإصدار
- لا تضمّن المفاتيح في كود العميل
- لا تشارك المفاتيح بين التطبيقات
- لا تستخدم المفاتيح في معلمات URL
إجراء استدعاءات API
نقطة نهاية رفع المستندات
/api/v1/uploadارفع المستندات للمعالجة باستخدام multipart/form-data.
معلمات الطلب
| المعلمة | النوع | مطلوب | الوصف |
|---|---|---|---|
metadata | سلسلة JSON | نعم | يجب أن يكون الحقل الأول في الطلب. تعليمات المعالجة والإعداد (يمكن أن يكون فارغاً: {}) |
file | ملف | نعم | ملف المستند للمعالجة |
خيارات Metadata
{
"clientReference": "ORDER-123", // Optional: Your reference ID
"urgent": true, // Optional: Priority processing
"language": "en" // Optional: Document language
}
// Or can be empty:
{}متطلبات الملف
| التنسيق | الامتدادات | الحجم الأقصى |
|---|---|---|
| 50 MB | ||
| Images | .jpg, .jpeg, .png, .tiff | 25 MB |
| Word | .doc, .docx | 25 MB |
| Excel | .xls, .xlsx | 25 MB |
| Text | .txt, .csv | 10 MB |
إعداد Webhook
تتيح لك Webhooks استقبال إشعارات في الوقت الفعلي عند معالجة مستنداتك.
إعداد Webhooks
اضبط webhooks من خلال إعدادات مفتاح API في لوحة التحكم.

واجهة إعداد Webhook
أحداث Webhook
document.processed
يُرسل عند اكتمال معالجة المستند بنجاح.
{
"requestId": "75193012-0885-4db7-b5ce-7506e169c80c",
"documentData": "[{\"fileName\":\"Transaction_Summary.xls\",\"documentType\":\"Bank Statement\"}]",
"errors": []
}document.failed
يُرسل عند فشل معالجة المستند.
{
"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"
}
]
}ترويسات Webhook
يتضمن كل طلب webhook هذه الترويسات:
X-Webhook-Signature: sha256=abc123... X-Webhook-Event: document.processed X-Webhook-ID: unique-webhook-id X-Webhook-Timestamp: 1706354400 Content-Type: application/json
التحقق من التوقيع
تحقق دائماً من توقيعات webhook للتأكد من أنها من 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)
);
}أمثلة الكود
Python — رفع مستند
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 — معالجة 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 — رفع مستند
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 — رفع مستند
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 — اختبار 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