מדריך למפתחים לחיבור אתר, חנות או CRM ל-Invoice4U: נקודת הכניסה ב-JSON של ApiService.svc, המעטפת {"d": ...}, הפקה ב-CreateDocument וקודי DocumentType, ApiIdentifier למניעת כפילויות, מספרי הקצאה, ולמה כל שגיאה חוזרת עם סטטוס 200.
עיקרי הדברים
- Invoice4U הוא שירות WCF של .NET; קריאות JSON נשלחות ל-POST https://api.invoice4u.co.il/Services/ApiService.svc/{Operation}.
- התשובות עטופות ב-{"d": ...}, וכישלון חוזר כ-HTTP 200 עם מערך Errors שאינו ריק.
- מגדירים ApiIdentifier למספר ההזמנה וקוראים ל-CreateDocumentWithIdentifierValidation, כדי שניסיון חוזר לא יפיק חשבונית שנייה.
- DocumentType מספרי: 1 חשבונית מס, 2 קבלה, 3 חשבונית מס קבלה, 4 חשבונית זיכוי - ואין 11 או 12.
ה-API של Invoice4U מאפשר לאתר, לחנות מקוונת או ל-CRM להפיק ב-Invoice4U חשבוניות, קבלות וחשבוניות זיכוי אוטומטית. זה שירות WCF של .NET עם נקודת כניסה ב-JSON: שולחים POST לכתובת https://api.invoice4u.co.il/Services/ApiService.svc/{Operation}, למשל CreateDocument, עם הפרמטרים ועם token. שני הדברים שמכשילים את רוב החיבורים הם מעטפת התשובה {"d": ...} ושגיאות שמגיעות עם סטטוס HTTP 200.
Invoice4U היא מערכת חשבוניות ישראלית, שמוצעת גם דרך מוצרי התשלום של Verifone. התיעוד הרשמי שלה יושב בעמוד Apiary שמוצג רק בדפדפן, ולכן המדריך נבנה מחוזה ה-WSDL שהשירות עצמו מפרסם, ונבדק מול תשובות חיות ב-30 בספטמבר 2026.
איך עובד ה-API של Invoice4U?
השירות חושף נקודת קצה אחת עם 157 פעולות, שרשומות ב-WSDL שלו בכתובת ApiService.svc?singleWsdl. הוא מדבר SOAP מטבעו, אבל לא צריך לקוח SOAP: נקודת כניסה של ASP.NET מקבלת גוף JSON בנתיב של הפעולה עצמה.
| מה | ערך |
|---|---|
| ייצור | https://api.invoice4u.co.il/Services/ApiService.svc |
| בדיקות (QA) | https://apiqa.invoice4u.co.il/Services/ApiService.svc |
| צורת הקריאה | POST {base}/{Operation}, Content-Type: application/json |
| אימות | פרמטר token בגוף הבקשה. VerifyLoginApiKey מקבלת apiKey |
| תשובה | {"d": {...}}, עם Errors, Info והתוצאה |
שמות הפרמטרים של כל פעולה באים מהחוזה ורגישים לאותיות גדולות וקטנות. CreateDocument, CreateDocumentWithIdentifierValidation ו-SendDocumentByMail מקבלות doc ו-token. CreateCustomer מקבלת cu ו-token. FetchAllocationNumber מקבלת docId ו-token.
למה קריאה שנכשלה ב-Invoice4U מחזירה 200?
Invoice4U מדווחת על שגיאות עסקיות בתוך התוכן, לא בסטטוס ה-HTTP. קריאה בלי טוקן תקין מחזירה סטטוס 200 עם הגוף הזה:
{"d": {"Errors": [{"Error": "UnauthorizedUser", "ID": 80, "Paramters": null}], "TaxRate": -1}}כך שחיבור שבודק רק את response.ok רושם כל כישלון כהצלחה, והזמנה מסומנת "הופקה חשבונית" כשאין שום חשבונית. הכלל: קוראים את d, וכל מערך Errors שאינו ריק הוא כישלון. שימו לב לשם השדה Paramters - הוא מאוית לא נכון בחוזה עצמו, ולכן מפענח קפדני צריך להתאים אותו בדיוק.
הפקת חשבונית מהזמנה, שלב אחר שלב
- מקבלים מפתח API מבעל החשבון ב-Invoice4U, ובודקים קודם מול נקודת הקצה של QA.
- מאתרים או יוצרים את הלקוח.
GetCustomerByEmailמאתרת לקוח;CreateCustomerמקבלת אובייקטcuעםName,Email,PhoneאוCell,Address,Cityו-UniqueID(ת"ז או ח"פ). - בונים את אובייקט
doc:DocumentType,ClientID,Subject,Currency,TaxIncluded, ו-ItemsעםName,Code,Quantityו-Price. - לחשבונית מס קבלה מוסיפים
PaymentsעםPaymentType,Amountו-Date. סכום הפריטים וסכום התשלומים חייבים להתאים. - מגדירים
ApiIdentifierלמספר ההזמנה וקוראים ל-CreateDocumentWithIdentifierValidation. - בודקים את
Errors. בהצלחה, שומרים על ההזמנה אתDocumentNumberואת מזהה המסמך שחזרו. - שולחים ללקוח, או עם
IsSendUserMailעל המסמך או עםSendDocumentByMailאחר כך.
באילו קודי DocumentType משתמשת Invoice4U?
DocumentType הוא מספר, והחוזה מגדיר את הערכים האלה:
| קוד | השם בחוזה | מסמך |
|---|---|---|
| 1 | Invoice | חשבונית מס |
| 2 | Receipt | קבלה |
| 3 | InvoiceReceipt | חשבונית מס קבלה |
| 4 | InvoiceCredit | חשבונית זיכוי |
| 5 | ProformaInvoice | חשבון עסקה |
| 6 / 7 / 8 | InvoiceOrder / InvoiceQuote / InvoiceShip | הזמנה, הצעת מחיר, תעודת משלוח |
| 13 | PurchaseOrder | הזמנת רכש |
קודים 11 ו-12 לא קיימים, כך שחיבור שסופר כלפי מעלה מ-10 שולח סוג לא תקין. גם אמצעי התשלום מספריים, ב-PaymentTypes: 1 כרטיס אשראי, 2 צ'ק, 3 העברה בנקאית, 4 מזומן, 8 ביט, 9 PayBox. איזה מסמך להפיק לאיזו מכירה מוסבר בקבלה, חשבונית מס או חשבונית מס קבלה.
מה משתבש בחיבור ל-Invoice4U
- חשבוניות כפולות. פסק זמן ב-
CreateDocumentלא אומר ששום דבר לא הופק. המסלול עםApiIdentifierקיים כדי שניסיון חוזר יידחה במקום להפיק מסמך ממוספר שני, שאחר כך צריך לבטל בחשבונית זיכוי. - פורמט תאריכים. תאריכי JSON של WCF נראים כך:
/Date(milliseconds)/, ולא מחרוזות ISO. שולחים תאריכים בצורה הזו, ומפענחים אותם כך בחזרה. - שני שדות סכום. כל סכום מופיע פעמיים, למשל
Totalו-TotalDecimal, לצד הדגלUseDecimalValues. מחליטים איזה מהם החיבור קורא, ובודקים מול מסמך אמיתי לפני שסומכים עליו. - מספרי הקצאה. על המסמך יש
AllocationNumber,AllocationMessageו-ForceGenerateAllocationNumber, ו-FetchAllocationNumberמבקשת מספר למסמך קיים. מתי נדרש מספר הקצאה נקבע על ידי רשות המסים, לא על ידי ה-API - ראו ה-API של מספרי הקצאה. - הטוקן בלוגים. הטוקן נוסע בגוף הבקשה, כך שלוג דיבאג של גופי בקשות מלאים חושף אותו.
אותו דפוס מול מערכת חשבוניות אחרת מופיע באוטומציה של מורנינג (חשבונית ירוקה) דרך ה-API, וצד התשלום בהפקת חשבונית אוטומטית אחרי תשלום.
מה להכין לפני שמתחילים
- מפתח API של Invoice4U, וגישה לסביבת QA לבדיקות.
- החלטה איזה מסמך כל מכירה מפיקה - חשבונית מס קבלה בזמן התשלום, או חשבונית קודם וקבלה אחר כך.
- כרטיסי לקוח עם ת"ז או ח"פ, כשהעסק צריך אותם.
- טיפול במע"מ שהוחלט לכל מוצר: מחירים כולל מע"מ או לפני מע"מ (
TaxIncluded). - מקום לשמור את מספר המסמך של Invoice4U מול כל הזמנה.
מקורות
שאלות נפוצות
האם ל-Invoice4U יש API?
כן. Invoice4U מפעילה שירות WCF של .NET בכתובת api.invoice4u.co.il/Services/ApiService.svc עם 157 פעולות ב-WSDL, ביניהן CreateDocument, CreateCustomer, SendDocumentByMail ו-FetchAllocationNumber. הוא מקבל JSON ב-POST {base}/{Operation}, ויש נקודת קצה נפרדת לבדיקות ב-apiqa.invoice4u.co.il.
מה המשמעות של שגיאה 80 UnauthorizedUser ב-Invoice4U?
המשמעות היא שהקריאה לא נשאה טוקן תקין. Invoice4U מחזירה אותה עם HTTP 200, בתוך d.Errors בצורה {"Error": "UnauthorizedUser", "ID": 80}, כך שהיא נראית רק אם הקוד קורא את מערך Errors. בדקו שהטוקן נשלח בגוף הבקשה, שייך לחשבון פעיל ומופנה לסביבה הנכונה.
איך מונעים מ-Invoice4U להפיק את אותה חשבונית פעמיים?
שמים את מספר ההזמנה בשדה ApiIdentifier של המסמך ומפיקים אותו ב-CreateDocumentWithIdentifierValidation במקום ב-CreateDocument. כך ניסיון חוזר אחרי פסק זמן נבדק מול המזהה הזה, במקום להפיק מסמך ממוספר שני שאחר כך צריך לבטל בחשבונית זיכוי.
איזה מספר DocumentType הוא חשבונית מס קבלה ב-Invoice4U?
3, בשם InvoiceReceipt בחוזה. חשבונית מס היא 1, קבלה 2, חשבונית זיכוי 4 וחשבון עסקה 5; 6, 7 ו-8 הם הזמנה, הצעת מחיר ותעודת משלוח, והזמנת רכש היא 13. אין קודים 11 או 12, ולכן אל תניחו שהרשימה רציפה.
האם Invoice4U יכולה לשלוח את החשבונית ללקוח במייל אוטומטית?
כן. לאובייקט המסמך יש דגל IsSendUserMail ושדה ClientEmail לשליחה בזמן ההפקה, והפעולה SendDocumentByMail שולחת מסמך קיים אחר כך. בכל מקרה, תעדו במערכת שלכם שהמסמך נשלח, כי הצלחת הקריאה ל-API אינה הוכחה שהמייל הגיע.
להמשך קריאה
שירות רלוונטי
אינטגרציות
לגרום למערכות שאתם כבר משלמים עליהן לדבר זו עם זו.
על הכותב
יהונתן סעדיה
מפתח פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה רוצה לבנות או איזה תהליך להפוך לאוטומטי. אני חוזר תוך 24 שעות עסקים עם כמה שאלות ממוקדות, ואז עוברים על זה יחד בשיחת היכרות חינמית של 30 דקות, בלי התחייבות. בסוף יש לך היקף עבודה, לוח זמנים ומחיר קבוע - או תשובה כנה שלא שווה לבנות את זה.
