אינטגרציה עם שערי תשלום ישראליים היא משימה מורכבת שדורשת הבנה של פורמטים ייחודיים (FormData במקום JSON), הגבלות צד שרת, ושלבים חובה כמו אישור עסקה שמפתחים רבים מפספסים. Grow (משולם) הוא אחד משערי התשלום המובילים בישראל, אך התיעוד שלו מפוזר ויש הרבה מלכודות נפוצות שעולות זמן פיתוח יקר.
יוצר: @skills-il
אינטגרציה עם Grow (משולם) לסליקת אשראי, דפי תשלום, טוקניזציה, חיובים חוזרים, דרישות תשלום, החזרים וחשבוניות -- מכסה את כל ה-API של Grow כולל Bit, Apple Pay, Google Pay ו-NFC
npx skills-il add skills-il/tax-and-finance --skill grow-payment-gatewayGrow (לשעבר משולם) היא אחת מחברות הסליקה המובילות בישראל, המפעילה אלפי עסקים עם סליקת כרטיסי אשראי, תשלומי Bit, Apple Pay, Google Pay ועוד. בניגוד לשערי תשלום ישראליים אחרים, Grow מציעה API אחיד ("Light API") שמכסה דפי תשלום, טוקניזציה, חיובים חוזרים, דרישות תשלום, חשבוניות ו-webhooks באינטגרציה אחת.
מדריך זה מנחה אינטגרציה עם Light API של Grow לכל מחזור חיי התשלום: קבלת תשלומים, שמירת טוקנים לחיובים חוזרים, יצירת דרישות תשלום, עיבוד החזרים וטיפול בהתראות webhook בזמן אמת.
תיעוד רשמי: https://grow-il.readme.io/
תמיכה למפתחים: apisupport@grow.business
Grow משתמשת בשלושה פרטי גישה שמסופקים בעת הצטרפות:
| פרט גישה | תפקיד | הערות |
|---|---|---|
userId |
מזהה בית עסק | ייחודי לכל חשבון עסקי |
pageCode |
הגדרת דף תשלום | page codes שונים לסוגי תשלום שונים (אשראי, Bit, חיוב חוזר וכו') |
apiKey |
אימות API | נדרש בניהול מספר עסקים או הגדרות ספציפיות |
סביבות:
| סביבה | כתובת בסיס |
|---|---|
| Sandbox (בדיקות) | https://sandbox.meshulam.co.il |
| Production | https://api.meshulam.co.il |
חשוב: צד שרת בלבד. כל בקשות ה-API חייבות להגיע מהשרת שלכם. בקשות מצד הלקוח (דפדפן) נחסמות על ידי Grow.
חשוב: פורמט FormData. כל גוף הבקשות משתמש ב-multipart/form-data, לא JSON. זו טעות נפוצה -- אם תשלחו application/json, ה-API ידחה את הבקשה.
| דפוס | איך זה עובד | מתאים ל- |
|---|---|---|
| דף תשלום (iframe/redirect) | Grow מארחת את טופס התשלום; הטמיעו באמצעות iframe או הפניה | צ'קאאוט באיקומרס, תשלומים חד-פעמיים |
| SDK Wallet | ווידג'ט JS מודולרי מוטמע בדף שלכם | חוויה מותאמת ללא iframe/redirect |
| דרישת תשלום | יצירת URL תשלום לשליחה ללקוחות | חשבונות, חיוב פרילנסרים, תשלומים מרחוק |
| חיוב טוקן (שרת-לשרת) | חיוב טוקן שמור ישירות | חיובים חוזרים, מנויים, לקוחות חוזרים |
רוב בתי העסק הישראליים משתמשים בדף תשלום לתשלום הראשון (שגם שומר טוקן), ואז חיוב טוקן לחיובים חוזרים.
זו האינטגרציה הנפוצה ביותר -- יצירת דף תשלום מתארח והפניית הלקוח אליו.
Endpoint: POST /api/light/server/1.0/createPaymentProcess
פרמטרים נדרשים:
| פרמטר | סוג | תיאור |
|---|---|---|
pageCode |
string | מזהה דף תשלום (מסופק על ידי Grow) |
userId |
string | מזהה בית העסק |
sum |
number | סכום התשלום (למשל 10.99) |
successUrl |
string | כתובת הפניה לאחר תשלום מוצלח (HTTPS חובה) |
cancelUrl |
string | כתובת הפניה אם התשלום בוטל |
description |
string | תיאור המוצר/שירות |
pageField[fullName] |
string | שם הלקוח (חייב להכיל לפחות שני שמות) |
pageField[phone] |
string | מספר טלפון נייד ישראלי תקין |
פרמטרים אופציונליים:
| פרמטר | סוג | תיאור |
|---|---|---|
pageField[email] |
string | אימייל הלקוח |
paymentNum |
integer | מספר תשלומים קבוע (1-12) |
maxPaymentNum |
integer | מקסימום תשלומים שהלקוח יכול לבחור (2-N) |
chargeType |
integer | 1 = חיוב רגיל |
notifyUrl |
string | כתובת callback שרת-לשרת |
invoiceNotifyUrl |
string | כתובת webhook לחשבונית |
cField1 - cField9 |
string | שדות מותאמים (מוחזרים ב-callbacks) |
transactionTypes[0] |
integer | סינון אמצעי תשלום (ראו טבלה למטה) |
קודי אמצעי תשלום (transactionTypes):
| קוד | אמצעי תשלום |
|---|---|
| 1 | כרטיס אשראי |
| 5 | Pay Box |
| 6 | Bit |
| 13 | Apple Pay |
| 14 | Google Pay |
| 15 | העברה בנקאית |
פריטי חשבונית (אופציונלי):
| פרמטר | סוג | תיאור |
|---|---|---|
productData[0][catalogNumber] |
integer | מספר קטלוגי |
productData[0][quantity] |
integer | כמות |
productData[0][price] |
number | מחיר |
productData[0][itemDescription] |
string | תיאור הפריט |
בקשה לדוגמה:
curl -X POST https://sandbox.meshulam.co.il/api/light/server/1.0/createPaymentProcess \
-F "pageCode=YOUR_PAGE_CODE" \
-F "userId=YOUR_USER_ID" \
-F "sum=149.90" \
-F "successUrl=https://yoursite.com/payment/success" \
-F "cancelUrl=https://yoursite.com/payment/cancel" \
-F "description=מנוי חודשי" \
-F "pageField[fullName]=ישראל ישראלי" \
-F "pageField[phone]=0501234567" \
-F "pageField[email]=customer@example.com" \
-F "paymentNum=1" \
-F "notifyUrl=https://yoursite.com/api/grow/webhook" \
-F "cField1=order-12345"התגובה כוללת שדה url -- הפנו את הלקוח לשם או הטמיעו כ-iframe.
חשוב: כתובת דף התשלום תקפה ל-10 דקות. צרו כתובת חדשה לכל סשן צ'קאאוט.
לאחר שהלקוח משלים את התשלום, קורים שני דברים:
successUrl עם response=successnotifyUrl עם פרטי העסקה המלאיםתמיד אמתו דרך callback השרת, לא דרך ההפניה בצד הלקוח (שניתנת לזיוף).
לאחר קבלת callback השרת, חובה לקרוא ל-approveTransaction כדי לאשר קבלה. זה לא משנה את התשלום -- זה סוגר את מחזור העסקה מול Grow.
Endpoint: POST /api/light/server/1.0/approveTransaction
curl -X POST https://sandbox.meshulam.co.il/api/light/server/1.0/approveTransaction \
-F "pageCode=YOUR_PAGE_CODE" \
-F "transactionId=TRANSACTION_ID_FROM_CALLBACK"אל תקראו ל-approveTransaction עבור: שמירת טוקן בלבד, עסקאות נדחות (J4J5), או חיובי createTransactionWithToken.
קבלת פרטי עסקה:
POST /api/light/server/1.0/getTransactionInfo
| פרמטר | סוג | תיאור |
|---|---|---|
pageCode |
string | מזהה דף |
transactionId |
string | מזהה העסקה לשליפה |
קבלת פרטי תהליך תשלום:
POST /api/light/server/1.0/getPaymentProcessInfo
| פרמטר | סוג | תיאור |
|---|---|---|
pageCode |
string | מזהה דף |
processId |
string | מזהה התהליך מ-createPaymentProcess |
החזר עסקת כרטיס אשראי:
POST /api/light/server/1.0/refundTransaction
| פרמטר | סוג | תיאור |
|---|---|---|
pageCode |
string | מזהה דף |
transactionId |
string | עסקה להחזר |
refundSum |
number | סכום ההחזר (חלקי או מלא) |
ביטול עסקת Bit:
POST /api/light/server/1.0/cancelBitTransaction
| פרמטר | סוג | תיאור |
|---|---|---|
pageCode |
string | מזהה דף |
transactionId |
string | עסקת Bit לביטול |
דרישות תשלום מאפשרות לשלוח כתובת תשלום ללקוחות באימייל, SMS או WhatsApp. שימושי לחיובים ותשלומים מרחוק.
Endpoint: POST /api/light/server/1.0/createPaymentLink
| פרמטר | סוג | תיאור |
|---|---|---|
pageCode |
string | מזהה דף |
userId |
string | מזהה בית עסק |
sum |
number | סכום התשלום |
description |
string | תיאור התשלום |
pageField[fullName] |
string | שם הלקוח |
pageField[phone] |
string | טלפון הלקוח |
pageField[email] |
string | אימייל הלקוח |
התגובה כוללת כתובת תשלום לשיתוף. ניתן גם לעדכן (updatePaymentLink) או לשלוף (getPaymentLinkInfo) דרישות קיימות.
Grow תומכת בשלושה מודלים לחיובים חוזרים:
השתמשו ב-page code ייעודי לחיובים חוזרים שמוגדר בלוח הבקרה של Grow:
createPaymentProcess עם page code לחיובים חוזריםsum לסכום החיוב החודשי ו-paymentNum למספר החיובים הכוללהשתמשו ב-createTransactionWithToken עם תזמון אוטומטי:
curl -X POST https://sandbox.meshulam.co.il/api/light/server/1.0/createTransactionWithToken \
-F "pageCode=YOUR_PAGE_CODE" \
-F "userId=YOUR_USER_ID" \
-F "sum=99.00" \
-F "token=SAVED_TOKEN" \
-F "paymentType=1" \
-F "paymentNum=12"הגדרת paymentType=1 עם paymentNum אומרת ל-Grow לנהל 12 חיובים חודשיים.
אתם שולטים מתי כל חיוב מתבצע:
תשלום ראשון (שמירת טוקן):
curl -X POST https://sandbox.meshulam.co.il/api/light/server/1.0/createTransactionWithToken \
-F "pageCode=YOUR_PAGE_CODE" \
-F "userId=YOUR_USER_ID" \
-F "sum=99.00" \
-F "token=SAVED_TOKEN" \
-F "isRecurringDebitId=1"התגובה כוללת recurringDebitId -- שמרו אותו לקישור חיובים עתידיים.
חיובים הבאים:
curl -X POST https://sandbox.meshulam.co.il/api/light/server/1.0/createTransactionWithToken \
-F "pageCode=YOUR_PAGE_CODE" \
-F "userId=YOUR_USER_ID" \
-F "sum=99.00" \
-F "token=SAVED_TOKEN" \
-F "recurringDebitId=RECURRING_DEBIT_ID"עדכון חיוב חוזר:
POST /api/light/server/1.0/updateRecurringPayment -- שינוי סכום, השהייה או ביטול.
חיפוש עסקאות טוקן:
POST /api/light/server/1.0/getTokenTransactionsByExternalIdentifiers -- מציאת כל העסקאות לטוקן נתון לפי מזהים חיצוניים.
יתרונות חיוב חוזר פרימיום:
J4J5 מאפשר 4 תשלומים ללא ריבית, אפשרות תשלום פופולרית בישראל:
יצירת תשלום נדחה:
POST /api/light/server/1.0/createPaymentProcess עם page code של J4J5
סילוק כשמוכנים:
POST /api/light/server/1.0/settleSuspendedTransaction
| פרמטר | סוג | תיאור |
|---|---|---|
pageCode |
string | מזהה דף |
transactionId |
string | עסקה מושהית לסילוק |
Grow שולחת התראות בזמן אמת לשרת שלכם לאירועים שונים. פנו ל-apisupport@grow.business להפעלת webhooks לחשבון שלכם.
אפשרויות טריגר ל-webhook:
| טריגר | תיאור |
|---|---|
| כל העסקאות החד-פעמיות | כל תשלום בכל הדפים |
| דפי תשלום ספציפיים | סינון לפי page code |
| דרישות תשלום ספציפיות | סינון לפי דרישת תשלום |
| חיובים חוזרים | מהחיוב השני והלאה |
| חיובים חוזרים שנכשלו | כשחיוב חוזר נכשל |
| עסקאות POS | תשלומים פיזיים |
| יצירת חשבונית | כשחשבוניות מופקות |
| עסקאות אפליקציה | תשלומים דרך אפליקציית Grow |
שדות נפוצים ב-webhook:
| שדה | תיאור |
|---|---|
webhookKey |
מזהה webhook ייחודי |
transactionCode |
מזהה עסקה |
paymentSum |
סכום שחויב |
paymentDate |
חותמת זמן |
fullName |
שם המשלם |
payerPhone |
טלפון המשלם |
payerEmail |
אימייל המשלם |
cardSuffix |
4 ספרות אחרונות של הכרטיס |
cardBrand |
מותג כרטיס (Visa, Mastercard וכו') |
asmachta |
מספר אסמכתא |
paymentSource |
מקור (דף, דרישה, POS וכו') |
שדות נוספים ב-webhook חיוב חוזר:
| שדה | תיאור |
|---|---|
directDebitId |
מזהה סדרת החיובים |
paymentsNum |
מספר תשלום בסדרה |
periodicalPaymentSum |
סכום חיוב חוזר |
שדות נוספים ב-webhook חיוב חוזר שנכשל:
| שדה | תיאור |
|---|---|
error_message |
סיבת הכישלון |
charges_attempts |
מספר ניסיונות חוזרים |
regular_payment_id |
מזהה החיוב שנכשל |
webhook חשבונית (מוגדר דרך invoiceNotifyUrl):
| שדה | תיאור |
|---|---|
transactionCode |
עסקה קשורה |
invoiceNumber |
מספר חשבונית שהופק |
invoiceUrl |
כתובת להורדת PDF החשבונית |
Grow מציעה סוגי דפי תשלום מוכנים מראש, כל אחד עם pageCode שונה:
| סוג דף | תיאור | הערות |
|---|---|---|
| SDK Wallet | ווידג'ט JS מודולרי | ללא צורך ב-iframe/redirect |
| גנרי | כרטיס אשראי + Bit | ניתן להתאמה, עד 2 שדות נוספים |
| כרטיס אשראי | תשלומי כרטיס בלבד | תומך ברגיל וחוזר |
| Google Pay | Google Pay בלבד | Chrome באנדרואיד; דורש allow="payment" ב-iframe |
| Apple Pay | Apple Pay בלבד | דורש אימות דומיין ל-iframe |
| Bit | תשלום נייד Bit | מומלץ למסך מלא במובייל |
| Bit QR | קוד QR ל-Bit | לתצוגת דסקטופ/בחנות |
אינטגרציית iframe:
<iframe src="PAYMENT_URL_FROM_API"
width="100%" height="600"
allow="payment"
style="border: none;">
</iframe>HTTPS חובה לאינטגרציות iframe. HTTP לא יעבוד.
מגבלת אורך כתובת: 2000 תווים. השתמשו בערכי cField במקום query strings ארוכים.
| בעיה | סיבה | פתרון |
|---|---|---|
| API מחזיר 403 או תגובה ריקה | בקשה מצד הלקוח | העבירו קריאות API לשרת; Grow חוסמת בקשות מדפדפן |
| שגיאת פענוח בבקשה | שימוש ב-JSON content type | עברו ל-multipart/form-data (FormData), לא application/json |
| כתובת דף תשלום פגה | כתובת ישנה מ-10 דקות | קראו ל-createPaymentProcess שוב לכתובת חדשה |
| Webhook לא התקבל | webhooks לא מופעלים | פנו ל-apisupport@grow.business להפעלה |
| עסקה לא נמצאה | סביבה לא נכונה | ודאו שעסקאות sandbox נשאלות מול כתובת sandbox |
| חיוב חוזר נכשל | כרטיס שפג תוקפו | הפעילו חיוב חוזר פרימיום לעדכון תפוגת כרטיס אוטומטי |
| localhost ב-successUrl | לא מורשה | השתמשו בטונל (ngrok) או כתובת מפורסת לבדיקות |
| iframe ריק ב-HTTP | HTTPS נדרש | הגישו את הדף שלכם דרך HTTPS |
| iframe של Apple Pay נכשל | דומיין לא מאומת | השלימו אימות דומיין Apple דרך לוח הבקרה של Grow |
סוכנים נתמכים
עזור לי לממש דף תשלום של Grow באפליקציית Next.js שלי. אני צריך ליצור תהליך תשלום עם createPaymentProcess, להטמיע את דף התשלום ב-iframe, לטפל ב-callback השרת, ולקרוא ל-approveTransaction. הסכום הוא 149.90 שקלים.
אני צריך לממש מערכת מנויים חודשיים עם Grow. בתשלום הראשון צריך לשמור טוקן, ואחר כך לחייב את הטוקן כל חודש באמצעות createTransactionWithToken עם recurringDebitId. תראה לי את כל הזרימה.
עזור לי ליצור דרישות תשלום עם Grow API ולהגדיר webhook endpoint שמקבל התראות על תשלומים. אני צריך לשלוח את הלינק ללקוח ולקבל עדכון כשהוא משלם.
אני צריך לממש זרימת החזרים באפליקציה שלי -- החזר חלקי או מלא לעסקאות כרטיס אשראי עם refundTransaction, וביטול עסקאות Bit עם cancelBitTransaction.
ציון אמון
הסקיל יכול לגשת למשתני סביבה שעלולים להכיל סודות.
נמצאו 3 התאמות בקוד
הסקיל יכול לבצע בקשות רשת לשירותים חיצוניים.
נמצאו 5 התאמות בקוד
ניהול תפעול יומיומי לפרילנסרים ועוסקים מורשים בישראל — מעקב חשבוניות, גביית חשבונות שירות, תזכורות מועדי דיווח, וחבילה לרואה חשבון
ניווט בין קרנות פנסיה, קופות גמל וחיסכון לפרישה
אינטגרציה עם קארדקום לסליקת אשראי, הפקת חשבוניות מס וקבלות אוטומטית
רוצים לבנות סקיל משלכם? נסו את יוצר הסקילס · הגשת סקיל