ייזום תשלום (Payment Initiation) מאפשר ליזום העברה בנקאית ישירות מחשבון המשתמש, באישורו בבנק. יש שתי שיטות לעשות זאת — לפי מי מציג את מסך התשלום למשתמש.
לפני הכל – טוקן
כל קריאה דורשת access token עבור ה-userId הרלוונטי. ראה: קבלת Access Token.
שיטה א' – ה-UI של Open Finance (מתארח)
אתה לא בונה ממשק — מפנים את המשתמש למסך מתארח שלנו שמנהל את כל תהליך האישור מול הבנק (כולל מסך בחירת בנק ומסך הצלחה).
POST /v2/payments
{
"psuId": "123456789",
"providerIds": ["leumi"], // אופציונלי – השמטה = מסך בחירת בנק
"paymentInformation": {
"amount": 100,
"currency": "ILS",
"description": "...",
"creditorAccountType": "iban", // "iban" או "bban"
"creditorAccountNumber": "IL...",
"creditorName": "שם הנמען"
}
}
התשובה (201) מחזירה id ו-payUrl. הפנה את המשתמש ל-payUrl. שיטה זו תומכת גם בהטמעה ב-iframe.
שיטה ב' – הפניה ישירה לבנק
אתה מנהל את ה-UI שלך, ומפנה את המשתמש ישירות למסך של הבנק. כאן providerId (יחיד) חובה.
POST /v2/pay/open-banking-init
{
"providerId": "leumi", // חובה
"psuId": "123456789",
"redirectUrl": "https://your-app.com/return",
"paymentInformation": { ... } // כמו בשיטה א'
}
התשובה מחזירה paymentId ו-scaOAuth — הקישור הישיר לבנק שאליו מפנים את המשתמש.
בדיקת סטטוס
בסיום, אל תסתמך רק על החזרה מה-redirect — ודא את הסטטוס הסופי. ראה: סטטוסים של תשלום.
סוגי תשלום נוספים
שתי השיטות תומכות גם ב:
תשלום מרובה (Bulk) – הרבה נמענים בבקשה אחת.
תשלום תקופתי (Standing Order) – הוראת קבע.
שאלות נפוצות
המשתמש סגר את הדפדפן באמצע – מה קורה?
התשלום נשאר בסטטוס ממתין ועלול להידחות (RJCT) תוך כשבוע. צריך להתחיל מחדש. סגירה לפני אישור בבנק תקינה — אך יש ללחוץ "אישור תשלום" באפליקציית הבנק כדי להשלים.
מה גורם לשגיאה עוד לפני מסך הבנק?
אי-התאמה בת"ז או סכום לא תקין (למשל 0).
מה גורם לדחייה אחרי האישור?
אי-התאמה בפרטי התחברות בחשבון משותף, יתרה לא מספקת, או חריגה ממגבלות העברה.
אילו בנקים נתמכים?
רוב הבנקים בישראל. בנק שלא מופיע — טרם השלים את ההטמעה.
תיעוד מלא
למבנה המלא של paymentInformation וכל הפרמטרים: docs.open-finance.ai.
