חשבונית מס, קבלה וחשבונית זיכוי מתוך הקוד שלכם, דרך REST API פשוט. BillOS ממספר, מחשב מע"מ, חותם ומרנדר, ורשות המסים מכירה את התוצאה.
ממשק פשוט ואלגנטי, כדי שהמסמך הראשון ייצא תוך דקות. קריאה אחת פותחת טיוטה, קריאה שנייה מפיקה: המספר החוקי מוקצה, ה-PDF נחתם.
const BASE = 'https://api.billos.co.il/v1' const headers = { 'X-Api-Key': process.env.BILLOS_KEY, 'Content-Type': 'application/json', 'Idempotency-Key': 'order-8812' } const { document } = await fetch(`${BASE}/businesses/${bid}/documents`, { method: 'POST', headers, body: JSON.stringify({ docType: 320, priceMode: 'gross', party: { name: 'דנה לוי', phone: '0521111111' }, lines: [{ description: 'איפור ערב', quantity: 1, unitPriceExVat: 35000 }], payments: [{ method: 3, amount: 35000 }], }), }).then((r) => r.json()) const issued = await fetch(`${BASE}/businesses/${bid}/documents/${document.id}/issue`, { method: 'POST', headers }).then((r) => r.json()) console.log(issued.document.docNumber) // 1042
curl -X POST $BASE/businesses/$BID/documents \ -H "X-Api-Key: $KEY" -H "Idempotency-Key: order-8812" \ -d '{ "docType": 320, "priceMode": "gross", "party": { "name": "דנה לוי", "phone": "0521111111" }, "lines": [{ "description": "איפור ערב", "quantity": 1, "unitPriceExVat": 35000 }], "payments": [{ "method": 3, "amount": 35000 }] }' curl -X POST $BASE/businesses/$BID/documents/$DOC/issue -H "X-Api-Key: $KEY"
import os, requests API = "https://api.billos.co.il/v1"; H = {"X-Api-Key": os.environ["BILLOS_KEY"], "Idempotency-Key": "order-8812"} doc = requests.post(f"{API}/businesses/{bid}/documents", headers=H, json={ "docType": 320, "priceMode": "gross", "party": {"name": "דנה לוי", "phone": "0521111111"}, "lines": [{"description": "איפור ערב", "quantity": 1, "unitPriceExVat": 35000}], "payments": [{"method": 3, "amount": 35000}], }).json()["document"] issued = requests.post(f"{API}/businesses/{bid}/documents/{doc['id']}/issue", headers=H).json() print(issued["document"]["docNumber"]) # 1042
חוקרים עם לוגים מפורטים: הבקשה, התשובה, קוד השגיאה והסיבה. כל קריאה נספרת ב-GET /usage, המקום הראשון להסתכל בו כשמשהו נכשל או נחסם.
עושים יותר עם המסמכים: תיקון בזיכוי מקושר, PDF חתום בקישור ציבורי, שליחה במייל, וכל זה בטוח לניסיון חוזר.
שולחים את מזהה ההזמנה שלכם ב-header או ב-externalRef. ניסיון חוזר מחזיר את אותה שורה עם deduped: true, ולעולם לא מסמך כפול.
POST /credit-note מפיק חשבונית זיכוי (330) שמשקפת את המקור, או קבלה שלילית. הדרך היחידה, והחוקית, לבטל מסמך שהופק.
POST /prints מחזיר קישור ציבורי ל-PDF החתום (מקור פעם אחת, אחר כך העתק). POST /email שולח אותו ללקוח, עד חמישה נמענים.
// first call HTTP 201 { "document": { "id": "doc_k3t8…", "status": "draft" } } // the network dropped, the client retried with the same key HTTP 200 { "document": { "id": "doc_k3t8…", "status": "draft" }, "deduped": true } // a 502 from us is transient: retry with the same key, it can never double-create
קריאות רשת נכשלות, משתמשים לוחצים פעמיים. כל POST שיוצר מסמך או הוצאה מקבל מפתח, ייחודי לעסק, ומה שכבר נוצר חוזר במקום להיווצר שוב. תמיד שלחו אחד.
התמיכה שהעסק שלכם צריך, והרגולציה שהוא חייב.
BillOS רשומה במרשם התוכנות (הוראה 36 נספח ה'). המסמך שהקוד שלכם מפיק הוא מסמך חשבונאי לכל דבר.
60 קריאות בדקה לכל מפתח, עם Retry-After כשעוברים. GET /usage מראה את הצריכה שלכם לפי נקודת קצה.
המסמכים והספר נשמרים באחסון נפרד עם נעילה מפני מחיקה, ומגובים לילה לילה. גם אחרי שהחשבון נסגר.