API של תקבול.
החיבור בין המערכת שלכם לתשלום.
מדריך למפתחים: דפי תשלום, סליקה, טוקנים, מנויים והפקת מסמכים — ועד פתיחת חשבונות ספקים וניהול מרקטפלייס ב־API.
נבדק מול התיעוד הציבורי • 13.10.2026
מהחיבור הראשון ועד לתשלום מאומת
ה־API של תקבול מחבר בין המערכת שלכם לבין דפי תשלום, עסקאות, טוקנים, מנויים ומסמכים. לבתי תוכנה ולמרקטפלייסים קיימות גם פעולות לפתיחת חשבונות ספקים ולניהול הגדרות המסמכים שלהם.
- יוצרים הזמנה בשרתשולחים סכום ופרטי הזמנה ומקבלים uniqId.
- מציגים דף תשלוםמפנים את הלקוח או מטמיעים iframe.
- מאמתים את התוצאהמקבלים IPN ובודקים את התשלום באמצעות API.
- מעדכנים את המערכתמתאימים את העסקה להזמנה ובודקים גם את המסמך.
אימות וחיבור לסביבת הבדיקות
כתובת הבסיס לכל הקריאות: https://api.takbull.co.il. לכל בקשה מצרפים בכותרות HTTP את API_Key ואת API_Secret. אלו פרטי חיבור רגישים, ויש לשמור אותם בשרת בלבד.
לקבלת פרטי סביבת בדיקות פונים לתמיכת תקבול. אין להניח שקיימת כתובת Sandbox נפרדת או להשתמש בפרטי ייצור לצורך ניסוי בחיובים.
בבקשות עם גוף JSON שולחים גם Content-Type: application/json.
API_Key: <YOUR_API_KEY>
API_Secret: <YOUR_API_SECRET>
Content-Type: application/jsonיצירת הזמנה ודף תשלום
/api/ExtranalAPI/GetTakbullPaymentPageRedirectUrlהבקשה יוצרת הזמנה ומחזירה מזהה שבעזרתו מציגים את דף התשלום. מזהה פנימי שלכם נשמר בשדה order_reference. את סכום ההזמנה מחשבים בשרת, ולא מסתמכים על סכום שנשלח מהדפדפן.
בדוגמה משמאל נוצר דף תשלום לחיוב רגיל בסך 150 ₪, ללא הפקת מסמך אוטומטית. הדומיין example.com מיועד להמחשה ויש להחליפו בכתובות שלכם.
{
"responseCode": 0,
"uniqId": "89fd6612-2c4b-4a7b-91a3-dd9bdf0ee26a"
}responseCode=0 מציין שיצירת דף התשלום הצליחה. הוא אינו אישור לכך שהלקוח כבר שילם. במקרה שגיאה בודקים גם את description.
{
"order_reference": "ORDER-1001",
"OrderTotalSum": 150,
"Currency": "ILS",
"Language": "he",
"DealType": 1,
"PaymentMethodType": 3,
"DisplayType": "redirect",
"PostProcessMethod": "0",
"RedirectAddress": "https://example.com/payment/return",
"CancelReturnAddress": "https://example.com/cart",
"IPNAddress": "https://example.com/payment/ipn",
"CreateDocument": false,
"Customer": {
"CustomerFullName": "לקוח לדוגמה",
"Email": "customer@example.com"
}
}| שדה | משמעות |
|---|---|
order_reference | מזהה ההזמנה אצלכם; שמרו התאמה ל־uniqId המוחזר. |
OrderTotalSum / Currency | סכום סופי ומטבע: ILS, USD או EUR. |
DisplayType | iframe או redirect — כך באיות ובאותיות קטנות. |
PostProcessMethod | בתיעוד השדה מוגדר String: הערך "0" להפניה, "1" להודעת חלון. |
DealType | 1 רגיל, 2 תשלומים, 4 הוראת קבע, 6 טוקן / J2, 7 עסקה מושהית. |
PaymentMethodType | בבקשת יצירת דף התשלום מתועדים 3 לאשראי ו־21 ל־Bit. |
CreateDocument / DocumentType | האם להפיק מסמך ומה סוגו המספרי. בהפקה אוטומטית יש להעביר גם Products. |
NumberOfPayments / MinNumberOfPayments / MaxNumberOfPayments | מספר התשלומים או טווח הבחירה. FirstPaymentamount מאפשר להגדיר תשלום ראשון ב־DealType=2. |
OrderTaxAmount / Taxtable | נתוני המס של ההזמנה. יש להתאים אותם לחישוב, לסוג העסק ולהגדרותיו. |
Discount / DiscountType | הנחה: 0 ללא הנחה, 1 סכום קבוע, 2 אחוזים. |
Language | he, en או fr. |
ShippingAmount / ShippingAddress1 / ShippingAddress2 / ShippingZipCode / ShippingCity / ShippingCountry | עלות המשלוח וכתובת היעד. |
פרטי לקוח ומוצרים
באובייקט Customer ניתן להעביר IdentityNumber, CustomerFullName, Email, PhoneNumber ו־Address. הכתובת כוללת Address1, Address2, City, Country ו־Zip.
מערך Products כולל בין היתר SKU, ProductName, Description, Price, Quantity, TaxAmount, CurrencyCode ושדות הנחה. קיימים גם OpenSum ומגבלות כמות: MinQuantity, MaxQuantity, QuantityInterval.
הצגת דף התשלום: Redirect, iframe ו־Bit
/PaymentGateway?orderUniqId={uniqId}הפניה באותה לשונית
לאחר קבלת uniqId מציגים את כתובת ה־PaymentGateway. להפניה באותה לשונית משתמשים בניווט רגיל, ללא target="_blank" או window.open.
בהחזרה מהתשלום עשויים להגיע order_reference, ordernumber, uniqId, invoiceUniqId, statusCode ונתוני טוקן. גם כאשר statusCode הוא 0, בודקים את התוצאה בשרת לפני סימון ההזמנה כשולמה.
הטמעת iframe
מגדירים DisplayType="iframe" ו־PostProcessMethod="1". הודעת התוצאה היא paymentreplay וב־value מופיעים InternalCode, InternalDescription, transactionInternalId ו־uniqId. בתחילת ההטמעה יכולה להישלח גם הודעת גובה.
בקוד המאזין בודקים גם את event.origin וגם את event.source מול ה־iframe הצפוי, ומאמתים את מבנה ההודעה. הודעת הדפדפן אינה תחליף לאימות בשרת. יש לתת ל־iframe כותרת נגישה, למשל “תשלום מאובטח בתקבול”.
Bit ואמצעי תשלום נוספים
לתשלום ב־Bit שולחים PaymentMethodType=21. בגלישה בנייד משתמשים ב־IsMobile=true בהתאם להקשר; כאשר מוחזרת כתובת url מפנים אליה כדי לאפשר את המשך התשלום באפליקציה.
אימות תשלום לפני עדכון ההזמנה
/api/ExtranalAPI/ValidateNotificationלאחר קבלת IPN שולחים את מזהה ההזמנה לאימות. בודקים את תוצאת הפעולה ואת נתוני ההזמנה והעסקה, ומשווים להזמנה שנשמרה אצלכם: המזהה, הסכום, המטבע והחשבון שבו בוצע החיוב.
התשובה כוללת בין היתר internalCode, internalDescription, providerCode, doNotRetry, amount, documentId, isSubscriptionPayment, saveToken, dealType, orderStatus ו־tranSactionStatus. לנתונים שאינם מוחזרים בה יש להשתמש בפעולות השליפה המתאימות.
{
"uniqId": "89fd6612-2c4b-4a7b-91a3-dd9bdf0ee26a"
}IPN ו־Webhook: לקבל עדכונים גם בלי חזרה מהדפדפן
יש להבחין בין שלושה מנגנונים: עדכון תשלום לכתובת IPNAddress של ההזמנה, Webhooks המוגדרים לחשבון, ועדכון הפעלת חשבון ספק ל־IpnUrl. מבנה ההודעה והשמות אינם זהים.
| מנגנון | תצורה ומידע | המשך טיפול |
|---|---|---|
IPNAddress | בתיעוד התשלום מופיעה קריאת GET עם uniqId, order_reference, statusCode, statusDescription, takbullAction ו־transactionInternalNumber. | קריאה ל־ValidateNotification ושליפת נתוני העסקה לפי הצורך. |
| Webhook לחשבון | GET או POST, בפורמט Query, JSON או XML בהתאם להגדרה. | פירוש לפי סוג האירוע והתאמה להזמנה בשרת. |
IpnUrl ב־CreateAccount | POST JSON עם תוצאת הפעלת חשבון הספק. | שיוך לפי AffiliationId ושמירה מאובטחת של נתוני החשבון. |
אירועי Webhook כוללים שינוי הזמנה כללי (0), מסמך חדש (10), תשלום מוצלח (20), תשלום שנכשל (30), הזמנה ממתינה (40) והזמנה שננטשה (50). ב־GET של הזמנה מוחזר מזהה לשליפה; באירוע מסמך מוחזר invoiceUniqId.
בתיעוד ה־Webhook מצוינים עד שלושה ניסיונות מסירה בסך הכול, במרווח של 15 דקות לאחר כשל. למדריך ה־Webhook המלא.
שליפת עסקה והזמנה מלאה
/api/ExtranalAPI/GetTransaction?transactionInternalNumber={number}GetTransaction מאפשרת לבדוק עסקה בודדת: סכום, מטבע, סטטוס, אמצעי תשלום, מספר תשלומים, פרטי טוקן ומצב הפקת המסמך. שדות המסמך כוללים isDocumentCreated, invoiceId, invoiceUniqId ו־documentNumber.
| שדה ב־GetTransaction | ערכים מתועדים |
|---|---|
status | 1 אושרה, 2 נדחתה, 3 זיכוי חלקי, 4 ממתינה, 5 זוכתה, 6 נכשלה. |
transactionType | 10 חיוב, 20 זיכוי, 30 ביטול / Charge Back, 60 טוקן / J2, 70 עסקה מושהית. |
paymentMethod | 1 מזומן, 3 אשראי, 11 PayPal, 21 Bit, 32 Apple Pay, 33 Google Pay. |
statusCode | 0 מציין הצלחה; ערך אחר מציין שגיאה. יש לקרוא גם את מצב וסוג העסקה. |
/api/ExtranalAPI/GetOrder?orderUniqId={orderUniqId}GetOrder מחזירה את התמונה המלאה של ההזמנה: פרטי לקוח, סכומים, מוצרים, עסקאות, מסמכים ומשלוח. בין המערכים המוחזרים: products, transactions ו־invoices.
| orderStatus ב־GetOrder | משמעות |
|---|---|
0 | Pending — ממתינה להתחלת התהליך |
1 | Failed — נכשלה |
2 | Processing — בעיבוד |
3 | Completed — הושלמה |
4 | OnHold — בהמתנה |
5 | Cancelled — בוטלה |
6 | Refunded — זוכתה |
7 | Removed — הוסרה |
8 | ReSubmit — חיוב חוזר |
9 | Abandoned — ננטשה |
חיוב כרטיס שמור באמצעות טוקן
/api/ExtranalAPI/ChargeTokenטוקן מייצג כרטיס שנשמר לצורך חיובים נוספים בהתאם להרשאת הלקוח ולהגדרות המסוף. הוא אינו מפתח API ואינו Access Token מסוג OAuth.
הטוקן נשלח בתוך CreditCard.CardExternalToken. מזהה הזמנה קודם, uniqId, אינו תחליף לטוקן הכרטיס.
בתשובה בודקים internalCode, internalDescription, providerCode ו־doNotRetry. במקרה של Timeout אין לשלוח חיוב נוסף באופן עיוור — קודם יש לברר אם החיוב כבר בוצע.
{
"order_reference": "ORDER-1002",
"OrderTotalSum": 150,
"Currency": "ILS",
"Language": "he",
"CustomerFullName": "לקוח לדוגמה",
"CreateDocument": false,
"IPNAddress": "https://example.com/payment/ipn",
"CreditCard": {
"CardExternalToken": "REPLACE_WITH_SAVED_CARD_TOKEN"
}
}תשלומים, הוראות קבע וביטול מנוי
תשלומים והוראת קבע הם מסלולים שונים. עסקת תשלומים משתמשת ב־DealType=2 ובשדות מספר התשלומים. יצירת הוראת קבע משתמשת ב־DealType=4 ובשדות החיוב החוזר.
| שדה | משמעות |
|---|---|
RecuringDueDate | מועד התשלום של המנוי. |
RecuringInterval | 1 יומי, 2 שבועי, 3 חודשי, 4 שנתי, 5 EachMonth — יש לאמת את משמעות מסלול 5 מול התמיכה לפני שימוש. |
Interval | מרווח בין חיובים ביחידות שנבחרו. |
InitialAmount | סכום חיוב בעת יצירת המנוי. |
InitialChargeDescroption | תיאור החיוב הראשוני במסמך; האיות נשמר כפי שהוא בתיעוד. |
/api/ExtranalAPI/CancelSubscription?uniqId={uniqId}לביטול מנוי שולחים את uniqId של ההזמנה המקורית שהוחזר ביצירת דף התשלום. הפעולה מתועדת כ־GET, אך משנה מצב: יש להפעיל אותה מהשרת בלבד, לאחר הרשאת משתמש ובקרה, ולא כקישור לחיץ במאמר או בדפדפן.
הפקת חשבוניות, קבלות ומסמכים
ניתן להפיק מסמך כחלק מהתשלום באמצעות CreateDocument ו־Products, או להפיק מסמך בפעולה נפרדת. לשתי האפשרויות מבנה בקשה שונה.
/api/DocumentApi/Createבהפקה נפרדת משתמשים ב־invoiceItems לשורות המסמך וב־customerVM לפרטי הלקוח. השדה documentType הוא מספר, ולא מחרוזת כגון InvoiceReceipt.
הדוגמה מציגה חשבונית עסקה בסכום 150 ₪ ללא מס, לצורך המחשת המבנה בלבד. יש להתאים את סוג המסמך, המיסוי והסכומים לעסק ולפעולה בפועל. הפקת מסמך אינה מבצעת סליקה בפני עצמה.
התשובה כוללת responseCode, isOk, errorList, documentNumber ו־documentVM. מזהה המסמך מופיע ב־documentVM.uniqId.
{
"invoiceItems": [
{
"description": "שירות לדוגמה",
"isTaxteble": false,
"unitPrice": 150,
"totalPrice": 150,
"quantity": 1
}
],
"customerVM": {
"customerFullName": "לקוח לדוגמה"
},
"sendToCustomer": false,
"totalTaxAmount": 0,
"taxtable": false,
"totalTaxFree": 150,
"totalPriceWithTax": 150,
"isItemIncludeTax": false,
"currency": "ILS",
"language": "he",
"documentType": 300
}פירוט תקבולים ואמצעי תשלום
ניתן להעביר סכומי תקבולים במזומן, בהמחאות, באשראי ובהעברה בנקאית, לצד מערכי cashes, checks, wireTransfers ו־customPayments. יש לוודא התאמה בין פירוט התקבולים לבין הסכומים וסוג המסמך.
ב־customPayments מופיעים methodName, amount, creationDate, currancy, payerAccountNumber ו־referanceId. לפי טבלת התיעוד amount ו־creationDate נדרשים. האיות currancy ו־referanceId הוא האיות המתועד.
| קוד | סוג מסמך | קוד | סוג מסמך |
|---|---|---|---|
| 80 | הצעת מחיר | 81 | חשבון עסקה |
| 82 | הודעת חיוב | 100 | הזמנה |
| 200 | תעודת משלוח | 300 | חשבונית עסקה |
| 305 | חשבונית מס | 320 | חשבונית מס קבלה |
| 330 | חשבונית מס זיכוי | 355 | חשבונית מס זיכוי והחזר כספים |
| 400 | קבלה | 401 | זיכוי קבלה |
| 405 | קבלה תרומה | 406 | זיכוי קבלה תרומה |
ביטול עסקה וזיכוי מלא או חלקי
/api/ExtranalAPI/Refundהזיכוי מתבצע לפי TransactionInternalNumber — מספר העסקה הפנימי, ולא לפי uniqId של ההזמנה. שומרים את המספר כמחרוזת כדי לא לאבד אפסים מובילים.
| RefundType | פעולה |
|---|---|
| 1 | ביטול עסקה בלבד |
| 2 | ביטול עסקה והפקת מסמך |
| 3 | זיכוי חלקי |
| 4 | זיכוי חלקי והפקת מסמך |
RefundAmount נדרש בזיכוי חלקי. את הסיבה ניתן להעביר ב־Comments. בתשובה בודקים internalCode, internalDescription, providerCode ו־documentId.
{
"RefundType": 4,
"RefundAmount": 50,
"TransactionInternalNumber": "00012547",
"Comments": "זיכוי חלקי לפי בקשת הלקוח"
}פתיחת חשבונות ספקים למרקטפלייס ולבתי תוכנה
/api/Account/CreateAccountהפעולה יוצרת חשבון ספק המקושר לחשבון ההורה בתוכנית הדילרים. חשבון ההורה מזוהה לפי מפתחות ה־API של הבקשה, ולא לפי שדה בגוף הבקשה.
| מסלול | התנהגות |
|---|---|
| חבילה חינמית / ללא PackageUniqId | פתיחת חשבון בחבילה החינמית ללא גבייה; התיעוד מציין ErrorCode של 0 או 1. |
SubscriptionPayer="Parent" | בחבילה בתשלום מחויב הכרטיס השמור של ההורה. לאחר הצלחה נפתח חשבון הספק ומשויכת החבילה. |
SubscriptionPayer="Child" | הספק משלם: מוחזרים ErrorCode=600113 ו־PaymentRedirectUrl. ההפעלה מתבצעת לאחר השלמת מסלול התשלום. ברירת המחדל היא Child. |
נתוני הבקשה
נדרשים Email ייחודי ו־Password. לפי התיעוד, הסיסמה חייבת לכלול לפחות שמונה תווים, אות גדולה, אות קטנה, ספרה ותו מיוחד. מעבירים גם MerchantDetails ו־BusinessType בהתאם לדרישות פרטי העסק; את הסיסמה אין לרשום בלוגים.
שדות נוספים כוללים FirstName, LastName, Phone, PackageUniqId, SubscriptionPayer, RedirectUrl ו־IpnUrl. כאשר הספק משלם, RedirectUrl נדרש, ו־IpnUrl מומלץ לקבלת התוצאה בשרת.
| BusinessType | סוג העסק |
|---|---|
| 1 | עוסק מורשה |
| 2 | חברה בע״מ |
| 3 | עוסק פטור |
| 4 | עמותה |
| 5 | שותפות |
| 6 | חברה ציבורית |
בפתיחת חשבון סליקה Upay חדש נדרשים בפרטי העסק בין היתר Name, BusinessNumber, BusinessType, BizRegiEmail, PhoneNumber1, Address1, City, FirstName, LastName, IdentityNumber, bankcode, branchcode ו־accountnumber. קיימים גם פרטים משלימים, תאריכים ו־Mcc לפי תחום הפעילות. יש להשתמש בערכי BusinessType של תקבול, ולא בערכי סוג חברה של הספק החיצוני.
חיבור חשבון Upay קיים
כאשר כבר קיים חשבון Upay, התיעוד מאפשר להעביר בתוך MerchantDetails את IsExistingAccount=true, ProviderKey ו־ProviderSecret. כאן מדובר בפרטי הכניסה לחשבון Upay הקיים. הם נבדקים לפני גבייה; לפי התיעוד, החבילה מחויבת במלואה, כולל דמי הקמה.
הספק משלם: התהליך האסינכרוני
- שולחים בקשת CreateAccount עם חבילה בתשלום, SubscriptionPayer="Child", RedirectUrl ו־IpnUrl.
- שומרים את AffiliationId ואת OrderUniqId ומפנים את הספק ל־PaymentRedirectUrl. קוד 600113 מציין שדרוש תשלום, ולא שהחשבון כבר פעיל.
- לאחר הזנת הכרטיס והשלמת התהליך נוצרים החשבון והחבילה, נפתחת הרשאת החיוב ומונפקים מפתחות לפי המודולים הכלולים.
- מקבלים POST JSON ל־IpnUrl עם Status, StatusCode, AffiliationId, MerchantId ופרטי החיבור כאשר הונפקו. יש לקשר לבקשה המקורית ולשמור את הסודות בשרת בלבד.
יש להחזיר 2xx ל־IPN ולטפל בכפילויות לפי AffiliationId. לפי התיעוד מתבצעים עד שלושה ניסיונות מסירה במרווחי 15 דקות. בנטישת התשלום לא נשלח IPN: ניתן לקרוא שוב ל־CreateAccount עם אותו Email כדי לבטל את הבקשה הממתינה ולקבל קישור חדש. אחרי Failed בעקבות תשלום יש לפנות לתמיכה, ולא למחזר אוטומטית את הכתובת.
| קוד / מצב | הטיפול הנדרש |
|---|---|
| 600111 | כשל בהקמת ספק הסליקה. במסלול Parent ייתכן שהחשבון נוצר ו־Success=true; התמיכה משלימה את הקמת הסליקה. אין להסיק שהמסוף כבר מוכן. |
| 600119 / 600127 | פרטי חשבון Upay קיים חסרים או שגויים; לפי התיעוד לא בוצע חיוב. |
| 600128 | פרטי העסק אינם תקינים בחבילה בתשלום; לבדוק ErrorMessage. הבדיקה מתבצעת לפני חיוב. |
| 600125 | במסלול Parent התשלום התקבל וההקמה לא הושלמה: שולחים אותה בקשה עם אותו Email ו־PackageUniqId להשלמת ההקמה ללא חיוב חדש. |
| 600126 | במסלול Parent התשלום לא אושר באופן שניתן לאמת: אין לשלוח שוב. התמיכה מטפלת בהשלמה או בשחרור התשלום. |
למרקטפלייס על WordPress ו־WooCommerce קיימת גם אפשרות חיבור באמצעות WCFM. למאמר על חיבור מרקטפלייס בוורדפרס ו־WooCommerce.
ניהול הגדרות מסמכים באמצעות API
/api/Account/GetDocumentSettings?childMid={childMid}&lang=he/api/Account/UpdateDocumentSettingsאפשר לקרוא ולעדכן את הגדרות החשבון המזוהה, או חשבון ספק בעל שיוך פעיל באמצעות ChildMid. ללא מזהה ספק הפעולה חלה על החשבון שלכם.
מומלץ לקרוא תחילה את ההגדרות הקיימות, ואז לשלוח רק את השדות שרוצים לשנות בתוך Settings. התשובה מחזירה את ההגדרות המלאות לאחר העדכון.
ההגדרות נשמרות בנפרד לכל שפה: he ו־en. אם משתמשים בשתי שפות, מעדכנים כל אחת בנפרד.
{
"ChildMid": "MID_EXAMPLE",
"Language": "he",
"Settings": {
"EmailFromDisplayName": "העסק לדוגמה",
"EmaiSubjectMsg": "המסמך שלך מהעסק",
"EmailDocumentToMerchantAsCopy": true,
"MerchantEmailToSendCopy": "merchant@example.com",
"AddPaymentLink": true
}
}- סוג מסמך, מטבע ומע״מ:
DefaultDocumentType,CurrencyCode,IsTaxtable,IsItemIncludeTax. - דואר:
EmailFromDisplayName,EmaiSubjectMsg,EmailBodyMsg,EmailDocumentToMerchantAsCopyו־MerchantEmailToSendCopy. בגוף המייל קיימים מצייני מקום כגון [[customerName]] ו־[[documentType]]. - הודעות וקישורים:
SmsMsg,SmsFromו־AddPaymentLink. - עיצוב ותצוגה:
ThemeId,HideSQU,HideUnits,KabalaWithoutItems,RoundSum,ShowCustomerBalanceושדות נוספים בתיעוד. - מספור:
DocumentNumberingמכיל רשומות עםDocumentTypeו־Count. Count הוא המספר האחרון / הנוכחי ואינו יכול להיות נמוך ממספר מסמך שכבר הופק.
ריכוז הפעולות המעודכן
| שיטה | נתיב | שימוש |
|---|---|---|
POST | /api/ExtranalAPI/GetTakbullPaymentPageRedirectUrl | יצירת דף תשלום |
POST | /api/ExtranalAPI/ValidateNotification | אימות הודעת תשלום |
GET | /api/ExtranalAPI/GetTransaction | שליפת עסקה לפי transactionInternalNumber |
GET | /api/ExtranalAPI/GetOrder | שליפת הזמנה לפי orderUniqId |
POST | /api/ExtranalAPI/ChargeToken | חיוב טוקן |
POST | /api/DocumentApi/Create | יצירת מסמך |
GET | /api/ExtranalAPI/CancelSubscription | ביטול מנוי לפי uniqId |
POST | /api/ExtranalAPI/Refund | זיכוי / ביטול עסקה |
POST | /api/Account/CreateAccount | פתיחת חשבון ספק |
GET | /api/Account/GetDocumentSettings | קריאת הגדרות מסמכים |
POST | /api/Account/UpdateDocumentSettings | עדכון הגדרות מסמכים |
כל הנתיבים בטבלה יחסיים ל־https://api.takbull.co.il. פרטי הבקשה והתגובה המלאים מופיעים ב־תיעוד ה־API הרשמי.
קודי הצלחה ושגיאה: לפי הפעולה
| פעולה | שדות מרכזיים לפענוח |
|---|---|
| יצירת דף תשלום | responseCode ו־description. הצלחת יצירה אינה הצלחת סליקה. |
| אימות, חיוב טוקן וזיכוי | internalCode, internalDescription, providerCode והשדות הנוספים של הפעולה. |
| שליפת עסקה | statusCode, status ו־transactionType. |
| יצירת מסמך | responseCode, isOk ו־errorList. |
| פתיחת חשבון / הגדרות מסמכים | Success, ErrorCode ו־ErrorMessage. |
| שליפת הזמנה | orderStatus לפי טבלת GetOrder, לצד העסקאות והמסמכים המוחזרים. |
בדיקות מומלצות לפני מעבר לייצור
- בדקו בסביבת הבדיקות הצלחה, דחייה, ביטול, נטישה, כשל בהפקת מסמך ותקלה בתקשורת.
- שמרו בנפרד את מזהה ההזמנה אצלכם, uniqId, מספר העסקה ומזהה המסמך. בפרויקט מרקטפלייס שייכו אותם גם לחשבון הספק הנכון.
- מנעו אספקה כפולה בעקבות IPN כפול.
- בדקו חיוב והפקת מסמך בנפרד. כשל במסמך אינו סיבה לחייב את הלקוח שוב.
- אל תשמרו בלוגים מפתחות, סיסמאות או טוקנים מלאים. הגבילו הרשאות, השתמשו ב־HTTPS והפרידו בין נתוני בדיקה לייצור.
- בדקו התאמה לנייד, תפעול מקלדת וכותרת ל־iframe. הציגו הודעות שגיאה ברורות בלי לחשוף פרטים רגישים.
- בדקו במיוחד את קודי המצב, האיות והאותיות הגדולות / הקטנות בכל endpoint; חלק מהדוגמאות בתיעוד אינן אחידות.
אלו המלצות יישום למערכת שלכם, ולא הבטחה שהתנהגות מסוימת — כגון מניעת כפילויות או חתימת הודעות — מסופקת אוטומטית על ידי כל פעולת API.
שאלות נפוצות למפתחים
מהו API ואיפה מפעילים אותו?
API הוא ממשק המאפשר למערכת שלכם לשלוח בקשות לתקבול ולקבל תשובות מובנות. פעולות שמצריכות API_Key ו־API_Secret מבצעים בשרת. הדפדפן מציג את מסך התשלום ואת התוצאה למשתמש.
מה ההבדל בין טוקן כרטיס לבין מפתח API?
טוקן מייצג כרטיס שמור לחיובים מורשים. מפתחות ה־API מזהים את החשבון שמבצע את הבקשה. טוקן הכרטיס מועבר ב־CreditCard.CardExternalToken ואינו מחליף את כותרות האימות.
מתי לבחור Redirect ומתי iframe?
Redirect מפנה את הלקוח לדף התשלום, ו־iframe מטמיע אותו בתוך העמוד. בשני המקרים יש לאמת את התוצאה בשרת. ב־iframe נדרשת גם בדיקת מקור הודעות והתאמת גובה ונגישות.
האם חזרה לעמוד ההצלחה מספיקה לאישור הזמנה?
לא. פרמטרים בדפדפן ניתנים לשינוי, והלקוח יכול לסגור את החלון. מאמתים דרך השרת ומצליבים עם פרטי ההזמנה המקורית.
האם המדריך הוא קוד אינטגרציה מוכן לייצור?
זהו מדריך עם דוגמאות מבנה. יש להחליף ערכי דוגמה, להתאים את ההרשאות והמסוף, ליישם אימות וטיפול בשגיאות ולבדוק את התרחישים מול תקבול לפני הפעלה.
