API לשותפים

חבר את מערכת החנות שלך ל-MezuSafe — אמת מזוזות, נהל מלאי ותעד מכירות באופן פרוגרמטי.

כתובת בסיס (Base URL)

https://mezusafe-backend.jourist.cloud

אימות

נקודות קצה ציבוריות אינן דורשות אימות. נקודות קצה לחנויות דורשות את מפתח ה-API שלך בכותרת X-Api-Key — צור אחד דרך הגדרות חשבון ← הגדרות ← מפתח API. מוצג פעם אחת בעת היצירה, לכן שמור אותו במקום בטוח.

כותרת (Header)
X-Api-Key: YOUR_API_KEY
כל נקודת קצה מוגבלת בקצב (ראה כל נקודת קצה למטה) — חריגה מהמגבלה מחזירה HTTP 429 עם: {"error": "rate_limit_exceeded"}

נקודות קצה ציבוריות

אין צורך באימות. מוגבל בקצב לפי כתובת IP.

POST

/api/v1/public/check-mezuzah

בדוק מזוזה

ציבורי — ללא אימות10 בקשות לדקה לכל IP

העלה תמונה של מזוזה כדי לבדוק אם היא כבר רשומה, ולקבל בחזרה את פרטי ההסמכה שלה אם כן. זוהי אותה בדיקה המשמשת את כלי "בדוק את המזוזה שלך" באתר MezuSafe.

שדות טופס

image

file
נדרש

תמונה של קלף המזוזה

שגיאות אפשריות
400

{"msg":"No matches found.","status":"not_found"}

לא נמצאה מזוזה רשומה התואמת לתמונה.
400

{"msg":"You uploaded invalid image!","status":"invalid"}

לא ניתן היה לקרוא את טקסט הקלף מהתמונה.
curl -X POST "https://mezusafe-backend.jourist.cloud/api/v1/public/check-mezuzah" \
  -F "image=@/path/to/mezuzah.jpg"
דוגמת תגובה · 200
{
  "status": "success",
  "uuid": "k7Qz9pXsN3vT2m",
  "preview_url": "static/mezuzah/preview/k7Qz9pXsN3vT2m.jpg",
  "create_time": "2025-01-15 10:30:00",
  "examinated_time": "2025-01-10 00:00:00",
  "font": "Beit Yosef",
  "owner": {
    "username": "Chaim Levi",
    "lat": 40.7128,
    "lng": -74.006,
    "country": "USA",
    "role": "user",
    "uuid": "a1B2c3D4e5"
  },
  "sofer": "Yosef Cohen",
  "megiah": "David Katz"
}
POST

/api/v1/public/compare-mezuzot

השווה בין שתי מזוזות

ציבורי — ללא אימות10 בקשות לדקה לכל IP

העלה שתי תמונות מזוזה כדי לבדוק אם הן תמונות של אותו קלף פיזי.

שדות טופס

image1

file
נדרש

תמונה ראשונה

image2

file
נדרש

תמונה שנייה

שגיאות אפשריות
200

{"msg":"please select correct images","status":"invalid"}

אחת התמונות או שתיהן לא הכילו קלף קריא.
curl -X POST "https://mezusafe-backend.jourist.cloud/api/v1/public/compare-mezuzot" \
  -F "image1=@/path/to/mezuzah-a.jpg" \
  -F "image2=@/path/to/mezuzah-b.jpg"
דוגמת תגובה · 200
{
  "similarity": 92.4,
  "is_matched": true,
  "status": "success"
}
GET

/api/v1/public/scan-qrcode/{code}

פענח קוד QR שנסרק

ציבורי — ללא אימות30 בקשות לדקה לכל IP

פענח את הקוד הקצר המודפס על מדבקת ה-QR של המזוזה לסטטוס הנוכחי שלה. השתמש בזה אם אתה סורק את קוד ה-QR מהאפליקציה שלך במקום מדפדפן.

שגיאות אפשריות
404

{"status":"not_found"}

לא נמצאה מזוזה מאומתת התואמת לקוד זה.
200

{"status":"already_sold","uuid":"k7Qz9pXsN3vT2m"}

מזוזה זו כבר נמכרה ללקוח קצה.
curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/public/scan-qrcode/k7Qz9"
דוגמת תגובה · 200
{
  "status": "found",
  "uuid": "k7Qz9pXsN3vT2m"
}

נקודות קצה לחנויות

דורש את מפתח ה-API שלך בכותרת X-Api-Key. צור מפתח דרך הגדרות חשבון ← הגדרות ← מפתח API. מוגבל בקצב לפי מפתח.

POST

/api/v1/store/register-mezuzah

רשום מזוזה חדשה

נדרש מפתח API30 בקשות לדקה לכל מפתח· חשבונות סוכן בלבד

רשום קלף מזוזה חדש למלאי שלך (שהתקבל מסופר, טרם נמכר). זמין רק לחשבונות סוכן — זה תואם להרשאה הזהה שכבר נאכפת במסך "הוסף מזוזה" בלוח הבקרה.

שדות טופס

mezuzah

file
נדרש

תמונה של הקלף

sofer

string
נדרש

ה-uuid של המשתמש הסופר

megiah

string
נדרש

ה-uuid של המשתמש המגיה

writtendate

string
נדרש

YYYY-MM-DD

examinateddate

string
נדרש

YYYY-MM-DD

font

string
נדרש

גופן הכתב שבו נעשה שימוש

size

string
נדרש

גודל הקלף

note

string

הערה (אופציונלי)

owner_uuid

string

הגדר מיד אם כבר נמכר לקונה ידוע (צורך קרדיט אחד)

שגיאות אפשריות
403

{"msg":"Only an agent account may register a new mezuzah."}

400

{"msg":"Mezuzah already exists.","status":"duplicate"}

400

{"msg":"You have no credits left.","status":"no_credits"}

רק אם owner_uuid הוגדר.
curl -X POST "https://mezusafe-backend.jourist.cloud/api/v1/store/register-mezuzah" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -F "mezuzah=@/path/to/mezuzah.jpg" \
  -F "sofer=<sofer_uuid>" \
  -F "megiah=<megiah_uuid>" \
  -F "writtendate=2025-01-10" \
  -F "examinateddate=2025-01-14" \
  -F "font=Beit Yosef" \
  -F "size=12cm" \
  -F "note=" \
  -F "owner_uuid="
דוגמת תגובה · 200
{
  "msg": "Successfully added."
}
GET

/api/v1/store/inventory

רשימת המלאי שלך

נדרש מפתח API60 בקשות לדקה לכל מפתח

רשימת מזוזות שבבעלות החנות שלך כרגע — כלומר התקבלו אך טרם נמכרו.

פרמטרי שאילתה

page

string

מספר עמוד (מתחיל מ-0)

per_page

string

תוצאות לעמוד

curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/store/inventory?page=0&per_page=10" \
  -H "X-Api-Key: YOUR_API_KEY"
דוגמת תגובה · 200
{
  "total": 1,
  "page": 0,
  "per_page": 10,
  "mezuzot": [
    {
      "uuid": "k7Qz9pXsN3vT2m",
      "is_verified": true,
      "note": "",
      "size": "12cm",
      "font": "Beit Yosef",
      "create_time": "2025-01-14 09:00:00",
      "written_time": "2025-01-10 00:00:00",
      "examinated_time": "2025-01-14 00:00:00",
      "last_repaired_time": "",
      "certificate_pdf_url": "",
      "sofer": {
        "uuid": "a1B2c3D4e5",
        "username": "Yosef Cohen"
      },
      "megiah": {
        "uuid": "f6G7h8I9j0",
        "username": "David Katz"
      }
    }
  ]
}
GET

/api/v1/store/mezuzah/{uuid}

קבל את סטטוס המזוזה

נדרש מפתח API60 בקשות לדקה לכל מפתח

סטטוס/פרטים של מזוזה אחת — פועל רק עבור uuid שבבעלות החנות שלך כרגע.

שגיאות אפשריות
403

{"msg":"This mezuzah does not belong to your store."}

404

{"msg":"mezuzah not found."}

curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/store/mezuzah/k7Qz9pXsN3vT2m" \
  -H "X-Api-Key: YOUR_API_KEY"
דוגמת תגובה · 200
{
  "uuid": "k7Qz9pXsN3vT2m",
  "is_verified": true,
  "note": "",
  "size": "12cm",
  "font": "Beit Yosef",
  "create_time": "2025-01-14 09:00:00",
  "written_time": "2025-01-10 00:00:00",
  "examinated_time": "2025-01-14 00:00:00",
  "last_repaired_time": "",
  "certificate_pdf_url": "",
  "sofer": {
    "uuid": "a1B2c3D4e5",
    "username": "Yosef Cohen"
  },
  "megiah": {
    "uuid": "f6G7h8I9j0",
    "username": "David Katz"
  }
}
GET

/api/v1/store/mezuzah-certificate/{uuid}

קבל את התעודה

נדרש מפתח API30 בקשות לדקה לכל מפתח

שלוף את כתובות ה-PDF/PNG של התעודה עבור מזוזה, למשל להדפסה או לשליחה במייל בנקודת המכירה.

curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/store/mezuzah-certificate/k7Qz9pXsN3vT2m" \
  -H "X-Api-Key: YOUR_API_KEY"
דוגמת תגובה · 200
{
  "pdf_url": "static/print/pdf/9xY8z.pdf",
  "doc_url": "",
  "img_url": "static/print/img/9xY8z.png"
}
POST

/api/v1/store/sell-mezuzah/{uuid}

תעד מכירה

נדרש מפתח API30 בקשות לדקה לכל מפתח

תעד מכירה ללקוח בקופה. שלח את `to_uuid` עבור קונה שכבר יש לו חשבון MezuSafe, או את פרטי הקונה עבור מי שאין לו — בכל מקרה זה צורך קרדיט אחד, בדיוק כמו מכירה מלוח הבקרה.

שגיאות אפשריות
400

{"msg":"Owner have no credits left.","status":"no_credits"}

404

{"msg":"mezuzah not found."}

curl -X POST "https://mezusafe-backend.jourist.cloud/api/v1/store/sell-mezuzah/k7Qz9pXsN3vT2m" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to_uuid": "a1B2c3D4e5",
  "note": "Sold in-store"
}'
דוגמת תגובה · 200
{
  "msg": "mezuzah sold successfully."
}
GET

/api/v1/store/sales-history

היסטוריית המכירות שלך

נדרש מפתח API60 בקשות לדקה לכל מפתח

המכירות הקודמות של החנות שלך, להתאמה מול רשומות ההזמנות שלך.

פרמטרי שאילתה

page

string

מספר עמוד (מתחיל מ-0)

per_page

string

תוצאות לעמוד

curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/store/sales-history?page=0&per_page=20" \
  -H "X-Api-Key: YOUR_API_KEY"
דוגמת תגובה · 200
{
  "total": 1,
  "page": 0,
  "per_page": 20,
  "sales": [
    {
      "mezuzah_uuid": "k7Qz9pXsN3vT2m",
      "create_time": "2025-01-20 14:00:00",
      "note": "Sold in-store",
      "to": {
        "uuid": "a1B2c3D4e5",
        "username": "Chaim Levi"
      }
    }
  ]
}
GET

/api/v1/store/credits

בדוק את יתרת הקרדיטים שלך

נדרש מפתח API60 בקשות לדקה לכל מפתח

יתרת קרדיטים שנותרה — בדוק זאת לפני מכירה כדי להימנע משגיאת no_credits.

curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/store/credits" \
  -H "X-Api-Key: YOUR_API_KEY"
דוגמת תגובה · 200
{
  "credits": 42
}
GET

/api/v1/store/sofers-megiahs

רשימת סופרים ומגיהים

נדרש מפתח API60 בקשות לדקה לכל מפתח

מדריך סופרים ומגיהים מאושרים — שימושי לבחירת ה-uuid של הסופר/מגיה להעברה בעת רישום מזוזה חדשה.

פרמטרי שאילתה

page

string

מספר עמוד (מתחיל מ-0)

per_page

string

תוצאות לעמוד (מקסימום 100)

role

string

אופציונלי — 'sofer' או 'megiah'. השמט כדי לקבל את שניהם.

curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/store/sofers-megiahs?page=0&per_page=20&role=sofer" \
  -H "X-Api-Key: YOUR_API_KEY"
דוגמת תגובה · 200
{
  "total": 1,
  "page": 0,
  "per_page": 20,
  "sofers_megiahs": [
    {
      "uuid": "a1B2c3D4e5",
      "username": "Yosef Cohen",
      "email": "yosef@example.com",
      "role": "sofer",
      "megiah_type": null,
      "company": null,
      "avatar": "static/avatar/f3g4h5.jpg",
      "diploma_url": "static/diploma/j6k7l8.jpg",
      "country": "Israel",
      "state": "",
      "city": "Jerusalem",
      "create_time": "2024-11-02 09:00:00"
    }
  ]
}
GET

/api/v1/store/sofers-megiahs/lookup

חפש סופר או מגיה

נדרש מפתח API60 בקשות לדקה לכל מפתח

שלוף סופר/מגיה בודד לפי אימייל או שם משתמש מדויק (לא תלוי רישיות). ספק אחד מהם, לא את שניהם.

פרמטרי שאילתה

email

string

התאמת אימייל מדויקת (לא תלוי רישיות)

username

string

התאמת שם משתמש מדויקת — משמש רק אם 'email' הושמט

שגיאות אפשריות
400

{"msg":"Provide an email or username query parameter."}

404

{"msg":"No sofer/megiah found."}

curl -X GET "https://mezusafe-backend.jourist.cloud/api/v1/store/sofers-megiahs/lookup?email=yosef%40example.com&username=yosef.cohen" \
  -H "X-Api-Key: YOUR_API_KEY"
דוגמת תגובה · 200
{
  "uuid": "a1B2c3D4e5",
  "username": "Yosef Cohen",
  "email": "yosef@example.com",
  "role": "sofer",
  "megiah_type": null,
  "company": null,
  "avatar": "static/avatar/f3g4h5.jpg",
  "diploma_url": "static/diploma/j6k7l8.jpg",
  "country": "Israel",
  "state": "",
  "city": "Jerusalem",
  "create_time": "2024-11-02 09:00:00"
}

נא צור קשר עם MezuSafe בכתובת האימייל contact@mezusafe.com אם יש לך חשבון תוכל לשוחח בצ'אט עם מנהל MezuSafe בזמן אמת.