Initiate a Payment (Direct)
Drive bank selection yourself and get the bank authentication URL.
Initiate a Payment (Direct flow)
Skip this page if you use the hosted flow (redirecting topayUrl).This step is only for the direct API integration where you select the bank
yourself.
POST https://api.open-finance.ai/v2/pay/open-banking-init
Takes the paymentId from Create a Payment plus a providerId (the bank),
and returns the bank's Strong Customer Authentication (SCA) URL. Requires a
Bearer token (see Authentication); rejected requests return the standard
error shape — see Errors.
Key fields
| Field | Required | Description |
|---|---|---|
providerId | ✅ | The bank/provider to pay from. List options via GET /v2/providers. |
paymentId | – | The id returned by POST /v2/payments. |
redirectUrl | – | Where the user returns after authenticating at the bank. |
psuId | – | The payer's national ID or passport number, when the provider requires it. |
psuCorporateId | – | The payer's business ID, for corporate payments. |
psuCorporateIdType | – | The type of the business ID in psuCorporateId. See below. |
Corporate payments (psuCorporateIdType). When you sendpsuCorporateId,you can also say what kind of business ID it is. The allowed values come from the
provider'spsuCorporateIdTypesinGET /v2/providers. If you omit the field, the
provider'spsuCorporateIdDefaultTypeis used, or the first entry of
psuCorporateIdTypeswhen there is no default. A value that is not in the list is
rejected with400.For Discount and Mercantile the accepted values are:
Value Meaning CompanyCompany (חברה) — the default StatutoryWithoutIDStatutory body without an ID ForeignCompanyForeign company (חברה זרה)
If you did not pre-create a payment, you can passpaymentInformationdirectly on this call instead of
paymentId. See the API Reference.
Request
curl -X POST https://api.open-finance.ai/v2/pay/open-banking-init \
-H "Authorization: Bearer <accessToken>" \
-H "Content-Type: application/json" \
-d '{
"paymentId": "01J8X...",
"providerId": "hapoalim",
"redirectUrl": "https://your-app.com/payment/done"
}'Response
{
"paymentId": "01J8X...",
"status": "RCVD",
"scaOAuth": "https://bank.example/oauth/authorize?..."
}| Field | Description |
|---|---|
paymentId | The payment being authorized. |
status | Current payment status (see Payment Status). |
scaOAuth | The bank authentication URL — redirect the user here. |
Redirect the user to scaOAuth so they can authenticate and approve the payment
at their bank. When they return to your redirectUrl, move on to
Payment Status.
Financy appends the result to yourredirectUrlas query parameters —
paymentId,userId, andpaymentStatus— so the return page can read the
outcome directly. For mobile deep links, addisDeepLinkQueryParams=trueto
have the parameters appended as query params rather than merged into the path.
Updated 27 days ago

