דלג לתוכן הראשי
TAKBULL DEVELOPERS

API של תקבול.
החיבור בין המערכת שלכם לתשלום.

מדריך למפתחים: דפי תשלום, סליקה, טוקנים, מנויים והפקת מסמכים — ועד פתיחת חשבונות ספקים וניהול מרקטפלייס ב־API.

נבדק מול התיעוד הציבורי • 13.10.2026

ממשק אחד. תהליכים מחוברים.
תשלום והזמנותCheckout / Orders
חשבוניות וקבלותDocuments
טוקנים ומנוייםTokens / Recurring
חשבונות ספקיםAccounts

לפתיחת התיעוד הרשמי

מהחיבור הראשון ועד לתשלום מאומת

ה־API של תקבול מחבר בין המערכת שלכם לבין דפי תשלום, עסקאות, טוקנים, מנויים ומסמכים. לבתי תוכנה ולמרקטפלייסים קיימות גם פעולות לפתיחת חשבונות ספקים ולניהול הגדרות המסמכים שלהם.

  1. יוצרים הזמנה בשרתשולחים סכום ופרטי הזמנה ומקבלים uniqId.
  2. מציגים דף תשלוםמפנים את הלקוח או מטמיעים iframe.
  3. מאמתים את התוצאהמקבלים IPN ובודקים את התשלום באמצעות API.
  4. מעדכנים את המערכתמתאימים את העסקה להזמנה ובודקים גם את המסמך.

אימות וחיבור לסביבת הבדיקות

כתובת הבסיס לכל הקריאות: 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

יצירת הזמנה ודף תשלום

POST/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.
DisplayTypeiframe או redirect — כך באיות ובאותיות קטנות.
PostProcessMethodבתיעוד השדה מוגדר String: הערך "0" להפניה, "1" להודעת חלון.
DealType1 רגיל, 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 אחוזים.
Languagehe, 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

GET/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 מפנים אליה כדי לאפשר את המשך התשלום באפליקציה.

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

POST/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 ב־CreateAccountPOST JSON עם תוצאת הפעלת חשבון הספק.שיוך לפי AffiliationId ושמירה מאובטחת של נתוני החשבון.

אירועי Webhook כוללים שינוי הזמנה כללי (0), מסמך חדש (10), תשלום מוצלח (20), תשלום שנכשל (30), הזמנה ממתינה (40) והזמנה שננטשה (50). ב־GET של הזמנה מוחזר מזהה לשליפה; באירוע מסמך מוחזר invoiceUniqId.

בתיעוד ה־Webhook מצוינים עד שלושה ניסיונות מסירה בסך הכול, במרווח של 15 דקות לאחר כשל. למדריך ה־Webhook המלא.

שליפת עסקה והזמנה מלאה

GET/api/ExtranalAPI/GetTransaction?transactionInternalNumber={number}

GetTransaction מאפשרת לבדוק עסקה בודדת: סכום, מטבע, סטטוס, אמצעי תשלום, מספר תשלומים, פרטי טוקן ומצב הפקת המסמך. שדות המסמך כוללים isDocumentCreated, invoiceId, invoiceUniqId ו־documentNumber.

קודי תשובת GetTransaction
שדה ב־GetTransactionערכים מתועדים
status1 אושרה, 2 נדחתה, 3 זיכוי חלקי, 4 ממתינה, 5 זוכתה, 6 נכשלה.
transactionType10 חיוב, 20 זיכוי, 30 ביטול / Charge Back, 60 טוקן / J2, 70 עסקה מושהית.
paymentMethod1 מזומן, 3 אשראי, 11 PayPal, 21 Bit, 32 Apple Pay, 33 Google Pay.
statusCode0 מציין הצלחה; ערך אחר מציין שגיאה. יש לקרוא גם את מצב וסוג העסקה.
GET/api/ExtranalAPI/GetOrder?orderUniqId={orderUniqId}

GetOrder מחזירה את התמונה המלאה של ההזמנה: פרטי לקוח, סכומים, מוצרים, עסקאות, מסמכים ומשלוח. בין המערכים המוחזרים: products, transactions ו־invoices.

מצבי הזמנה בתשובת GetOrder
orderStatus ב־GetOrderמשמעות
0Pending — ממתינה להתחלת התהליך
1Failed — נכשלה
2Processing — בעיבוד
3Completed — הושלמה
4OnHold — בהמתנה
5Cancelled — בוטלה
6Refunded — זוכתה
7Removed — הוסרה
8ReSubmit — חיוב חוזר
9Abandoned — ננטשה

חיוב כרטיס שמור באמצעות טוקן

POST/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מועד התשלום של המנוי.
RecuringInterval1 יומי, 2 שבועי, 3 חודשי, 4 שנתי, 5 EachMonth — יש לאמת את משמעות מסלול 5 מול התמיכה לפני שימוש.
Intervalמרווח בין חיובים ביחידות שנבחרו.
InitialAmountסכום חיוב בעת יצירת המנוי.
InitialChargeDescroptionתיאור החיוב הראשוני במסמך; האיות נשמר כפי שהוא בתיעוד.
GET/api/ExtranalAPI/CancelSubscription?uniqId={uniqId}

לביטול מנוי שולחים את uniqId של ההזמנה המקורית שהוחזר ביצירת דף התשלום. הפעולה מתועדת כ־GET, אך משנה מצב: יש להפעיל אותה מהשרת בלבד, לאחר הרשאת משתמש ובקרה, ולא כקישור לחיץ במאמר או בדפדפן.

הפקת חשבוניות, קבלות ומסמכים

ניתן להפיק מסמך כחלק מהתשלום באמצעות CreateDocument ו־Products, או להפיק מסמך בפעולה נפרדת. לשתי האפשרויות מבנה בקשה שונה.

POST/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זיכוי קבלה תרומה

ביטול עסקה וזיכוי מלא או חלקי

POST/api/ExtranalAPI/Refund

הזיכוי מתבצע לפי TransactionInternalNumber — מספר העסקה הפנימי, ולא לפי uniqId של ההזמנה. שומרים את המספר כמחרוזת כדי לא לאבד אפסים מובילים.

אפשרויות RefundType
RefundTypeפעולה
1ביטול עסקה בלבד
2ביטול עסקה והפקת מסמך
3זיכוי חלקי
4זיכוי חלקי והפקת מסמך

RefundAmount נדרש בזיכוי חלקי. את הסיבה ניתן להעביר ב־Comments. בתשובה בודקים internalCode, internalDescription, providerCode ו־documentId.

דוגמה — זיכוי חלקי והפקת מסמך
{
  "RefundType": 4,
  "RefundAmount": 50,
  "TransactionInternalNumber": "00012547",
  "Comments": "זיכוי חלקי לפי בקשת הלקוח"
}

פתיחת חשבונות ספקים למרקטפלייס ולבתי תוכנה

POST/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 מומלץ לקבלת התוצאה בשרת.

סוגי עסקים ב־MerchantDetails
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 הקיים. הם נבדקים לפני גבייה; לפי התיעוד, החבילה מחויבת במלואה, כולל דמי הקמה.

הספק משלם: התהליך האסינכרוני

  1. שולחים בקשת CreateAccount עם חבילה בתשלום, SubscriptionPayer="Child", RedirectUrl ו־IpnUrl.
  2. שומרים את AffiliationId ואת OrderUniqId ומפנים את הספק ל־PaymentRedirectUrl. קוד 600113 מציין שדרוש תשלום, ולא שהחשבון כבר פעיל.
  3. לאחר הזנת הכרטיס והשלמת התהליך נוצרים החשבון והחבילה, נפתחת הרשאת החיוב ומונפקים מפתחות לפי המודולים הכלולים.
  4. מקבלים 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

GET/api/Account/GetDocumentSettings?childMid={childMid}&lang=he
POST/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 הוא המספר האחרון / הנוכחי ואינו יכול להיות נמוך ממספר מסמך שכבר הופק.

ריכוז הפעולות המעודכן

פעולות API מרכזיות
שיטהנתיבשימוש
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 נדרשת גם בדיקת מקור הודעות והתאמת גובה ונגישות.

האם חזרה לעמוד ההצלחה מספיקה לאישור הזמנה?

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

האם המדריך הוא קוד אינטגרציה מוכן לייצור?

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

תיעוד, דוגמאות ועזרה בחיבור