תיעוד מלא של כל נקודות הקצה (API Endpoints) של המערכת
ה-API של מערכת סריקת המסמכים מספק גישה מלאה לכל הפונקציונליות של המערכת דרך בקשות HTTP תקניות. כל נקודות הקצה מחזירות תשובות בפורמט JSON.
https://labs.levor.io/api/email-scanning
המערכת משתמשת באימות מבוסס-סשן של Flask. כדי להשתמש ב-API, עליך להיות מחובר למערכת.
// JavaScript - Using fetch with credentials
fetch('https://labs.levor.io/api/email-scanning/documents', {
method: 'GET',
credentials: 'include', // Include cookies
headers: {
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data));
# cURL - Using cookie file curl -X GET \ -b cookies.txt \ https://labs.levor.io/api/email-scanning/documents
כל נקודות הקצה מחזירות תשובות בפורמט JSON סטנדרטי:
{
"success": true,
"message": "Success",
"data": {
// נתונים מבוקשים
}
}
{
"success": false,
"error": "הודעת שגיאה מפורטת"
}
response.data ולא מ-response ישירות.
/api/email-scanning/documents
נדרש אימות
תיאור: קבלת רשימת מסמכים עם תמיכה בעימוד, חיפוש וסינון
| שם | סוג | תיאור | ברירת מחדל |
|---|---|---|---|
page |
Integer | מספר עמוד | 1 |
per_page |
Integer | מספר פריטים בעמוד | 20 |
category_id |
Integer | סינון לפי קטגוריה | - |
search |
String | חיפוש טקסט חופשי | - |
status |
String | סינון לפי סטטוס | - |
GET /api/email-scanning/documents?page=1&per_page=20&category_id=5
{
"success": true,
"message": "Success",
"data": {
"documents": [
{
"id": 123,
"filename": "invoice_001.pdf",
"original_filename": "חשבונית_מס.pdf",
"upload_date": "2025-11-23T10:30:00",
"file_size": 245678,
"category_id": 5,
"category_name": "חשבוניות",
"status": "processed",
"ocr_status": "completed",
"extracted_text": "...",
"supplier_name": "ספק בע\"מ",
"invoice_number": "INV-2025-001",
"total_amount": 1500.00,
"currency": "ILS",
"invoice_date": "2025-11-20"
}
],
"total": 150,
"pages": 8,
"current_page": 1,
"per_page": 20
}
}
200 הצלחה 401 לא מאומת 500 שגיאת שרת
/api/email-scanning/documents/:id
נדרש אימות
תיאור: קבלת פרטי מסמך בודד
GET /api/email-scanning/documents/123
{
"success": true,
"message": "Success",
"data": {
"id": 123,
"filename": "invoice_001.pdf",
"original_filename": "חשבונית_מס.pdf",
"upload_date": "2025-11-23T10:30:00",
"file_size": 245678,
"file_path": "/uploads/documents/invoice_001.pdf",
"category_id": 5,
"category_name": "חשבוניות",
"status": "processed",
"ocr_status": "completed",
"ocr_confidence": 0.95,
"extracted_text": "טקסט מלא שחולץ מהמסמך...",
"supplier_name": "ספק בע\"מ",
"supplier_tax_id": "123456789",
"invoice_number": "INV-2025-001",
"total_amount": 1500.00,
"currency": "ILS",
"invoice_date": "2025-11-20",
"due_date": "2025-12-20",
"line_items": [
{
"description": "מוצר א",
"quantity": 10,
"unit_price": 100.00,
"total": 1000.00
}
],
"tags": ["urgent", "paid"],
"notes": "הערות נוספות",
"created_at": "2025-11-23T10:30:00",
"updated_at": "2025-11-23T10:35:00"
}
}
/api/email-scanning/documents/upload
נדרש אימות
תיאור: העלאת מסמך חדש למערכת
multipart/form-data
| שם | סוג | חובה | תיאור |
|---|---|---|---|
file |
File | כן | קובץ PDF/JPG/PNG (עד 10MB) |
category_id |
Integer | לא | מזהה קטגוריה |
auto_process |
Boolean | לא | האם להפעיל OCR אוטומטית |
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('category_id', '5');
formData.append('auto_process', 'true');
fetch('/api/email-scanning/documents/upload', {
method: 'POST',
credentials: 'include',
body: formData
})
.then(response => response.json())
.then(data => {
const document = data.data;
console.log('Uploaded:', document.id);
});
{
"success": true,
"message": "המסמך הועלה בהצלחה",
"data": {
"id": 456,
"filename": "invoice_new.pdf",
"status": "processing",
"ocr_job_id": 789
}
}
/api/email-scanning/documents/:id
נדרש אימות
תיאור: עדכון פרטי מסמך קיים
{
"category_id": 5,
"supplier_name": "ספק חדש בע\"מ",
"invoice_number": "INV-2025-002",
"total_amount": 2000.00,
"notes": "הערות מעודכנות",
"tags": ["paid", "archived"]
}
{
"success": true,
"message": "המסמך עודכן בהצלחה",
"data": {
"id": 123,
"updated_at": "2025-11-23T11:00:00"
}
}
/api/email-scanning/documents/:id
נדרש אימות
תיאור: מחיקת מסמך (soft delete)
DELETE /api/email-scanning/documents/123
{
"success": true,
"message": "המסמך נמחק בהצלחה"
}
/api/email-scanning/categories
נדרש אימות
תיאור: קבלת רשימת כל הקטגוריות
{
"success": true,
"message": "Success",
"data": {
"categories": [
{
"id": 1,
"name": "חשבוניות",
"description": "חשבוניות מס ותעודות משלוח",
"color": "#ff6b6b",
"icon": "receipt",
"document_count": 45,
"auto_categorize": true,
"keywords": ["חשבונית", "invoice", "חשבונית מס"]
},
{
"id": 2,
"name": "הזמנות רכש",
"description": "הזמנות רכש וציטוטים",
"color": "#4ecdc4",
"icon": "cart",
"document_count": 23,
"auto_categorize": true,
"keywords": ["הזמנה", "purchase order", "PO"]
}
],
"total": 10
}
}
/api/email-scanning/categories
נדרש אימות
תיאור: יצירת קטגוריה חדשה
{
"name": "קבלות",
"description": "קבלות וחשבוניות זעירות",
"color": "#95e1d3",
"icon": "receipt-cutoff",
"auto_categorize": true,
"keywords": ["קבלה", "receipt"]
}
{
"success": true,
"message": "הקטגוריה נוצרה בהצלחה",
"data": {
"id": 11,
"name": "קבלות",
"created_at": "2025-11-23T11:30:00"
}
}
/api/email-scanning/statistics
נדרש אימות
תיאור: קבלת סטטיסטיקות כלליות של המערכת
{
"success": true,
"message": "Success",
"data": {
"total_documents": 1247,
"processed_documents": 1150,
"pending_documents": 97,
"total_size_mb": 5420.5,
"categories_count": 12,
"avg_processing_time": 15.3,
"ocr_accuracy": 0.94,
"documents_today": 45,
"documents_this_week": 234,
"documents_this_month": 892,
"top_categories": [
{"name": "חשבוניות", "count": 450},
{"name": "הזמנות רכש", "count": 234},
{"name": "תעודות משלוח", "count": 198}
],
"recent_activity": [
{
"type": "upload",
"document_id": 1247,
"timestamp": "2025-11-23T11:45:00",
"user": "admin@techlab.co.il"
}
]
}
}
/api/email-scanning/dashboard/realtime
נדרש אימות
תיאור: קבלת נתוני דשבורד בזמן אמת
{
"success": true,
"data": {
"processing_queue": 5,
"active_ocr_jobs": 3,
"pending_approvals": 12,
"unread_notifications": 8,
"system_health": "healthy",
"last_update": "2025-11-23T12:00:00"
}
}
/api/email-integration/accounts
נדרש אימות
תיאור: קבלת רשימת חשבונות אימייל מחוברים
{
"success": true,
"data": [
{
"id": 1,
"email": "invoices@company.com",
"provider": "gmail",
"status": "active",
"last_fetch": "2025-11-23T11:30:00",
"total_messages": 1234,
"unprocessed_messages": 5,
"auto_fetch_enabled": true
}
]
}
/api/email-integration/accounts
נדרש אימות
תיאור: הוספת חשבון אימייל חדש
{
"provider": "gmail",
"email": "invoices@company.com",
"credentials": {
"access_token": "ya29...",
"refresh_token": "1//...",
"token_uri": "https://oauth2.googleapis.com/token",
"client_id": "...",
"client_secret": "..."
},
"auto_fetch": true,
"fetch_interval": 300
}
{
"provider": "imap",
"email": "docs@company.com",
"imap_server": "mail.company.com",
"imap_port": 993,
"imap_username": "docs@company.com",
"imap_password": "encrypted_password",
"use_ssl": true,
"auto_fetch": true,
"fetch_interval": 600
}
/api/email-integration/messages
נדרש אימות
תיאור: קבלת רשימת הודעות אימייל
| שם | תיאור |
|---|---|
account_id |
סינון לפי חשבון |
processed |
true/false - האם עובד |
has_attachments |
true/false - עם קבצים מצורפים |
/api/email-scanning/fraud/alerts
נדרש אימות
תיאור: קבלת התראות הונאה פעילות
{
"success": true,
"data": {
"alerts": [
{
"id": 42,
"document_id": 789,
"type": "duplicate_invoice",
"severity": "high",
"description": "חשבונית זהה נמצאה במערכת",
"duplicate_document_id": 456,
"similarity_score": 0.98,
"created_at": "2025-11-23T09:15:00",
"status": "pending"
},
{
"id": 43,
"document_id": 790,
"type": "suspicious_amount",
"severity": "medium",
"description": "סכום חריג מהממוצע ב-500%",
"amount": 50000.00,
"average_amount": 10000.00,
"created_at": "2025-11-23T10:20:00",
"status": "pending"
}
],
"total_alerts": 15,
"high_severity": 3,
"medium_severity": 7,
"low_severity": 5
}
}
/api/email-scanning/fraud/alerts/:id/resolve
נדרש אימות
תיאור: סגירת התראת הונאה
{
"resolution": "false_positive",
"notes": "אומת כחשבונית לגיטימית"
}
/api/email-scanning/approvals/pending
נדרש אימות
תיאור: קבלת מסמכים הממתינים לאישור
{
"success": true,
"data": {
"pending_approvals": [
{
"id": 15,
"document_id": 567,
"document_name": "invoice_large.pdf",
"approval_level": 2,
"required_level": 3,
"amount": 25000.00,
"supplier": "ספק גדול בע\"מ",
"submitted_by": "user@company.com",
"submitted_at": "2025-11-22T14:00:00",
"pending_approver": "manager@company.com"
}
],
"total": 8
}
}
/api/email-scanning/approvals/:id/approve
נדרש אימות
תיאור: אישור מסמך
{
"notes": "מאושר לתשלום",
"next_approver": "cfo@company.com" // אופציונלי
}
/api/email-scanning/approvals/:id/reject
נדרש אימות
תיאור: דחיית מסמך
{
"reason": "סכום לא תואם להזמנת רכש"
}
/api/email-scanning/export
נדרש אימות
תיאור: ייצוא מסמכים לאקסל או CSV
{
"format": "excel", // או "csv"
"filters": {
"category_id": 5,
"date_from": "2025-11-01",
"date_to": "2025-11-30",
"status": "processed"
},
"fields": [
"filename",
"upload_date",
"category_name",
"supplier_name",
"invoice_number",
"total_amount"
]
}
{
"success": true,
"message": "קובץ נוצר בהצלחה",
"data": {
"download_url": "/downloads/export_20251123_120500.xlsx",
"filename": "documents_export.xlsx",
"records_count": 145,
"file_size": 52480
}
}
| קוד HTTP | משמעות | דוגמה |
|---|---|---|
| 200 | בקשה הצליחה | נתונים הוחזרו בהצלחה |
| 400 | בקשה שגויה | פרמטרים חסרים או לא תקינים |
| 401 | לא מאומת | יש להתחבר למערכת |
| 403 | אין הרשאה | המשתמש אינו מורשה לפעולה זו |
| 404 | לא נמצא | המסמך או הנתיב לא קיים |
| 500 | שגיאת שרת | שגיאה פנימית במערכת |
{
"success": false,
"error": "Authentication required. Please log in."
}
{
"success": false,
"error": "סוג קובץ לא נתמך. רק PDF, JPG, PNG מותרים."
}
{
"success": false,
"error": "המסמך עם מזהה 999 לא נמצא"
}
לשאלות נוספות או בעיות טכניות, פנה לצוות התמיכה או עיין במדריך המשתמש המלא.