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 to payUrl).

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

FieldRequiredDescription
providerIdThe bank/provider to pay from. List options via GET /v2/providers.
paymentIdThe id returned by POST /v2/payments.
redirectUrlWhere the user returns after authenticating at the bank.
psuIdThe payer's national ID or passport number, when the provider requires it.
psuCorporateIdThe payer's business ID, for corporate payments.
📘

If you did not pre-create a payment, you can pass paymentInformation

directly 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?..."
}
FieldDescription
paymentIdThe payment being authorized.
statusCurrent payment status (see Payment Status).
scaOAuthThe 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 your redirectUrl as query parameters —

paymentId, userId, and paymentStatus — so the return page can read the
outcome directly. For mobile deep links, add isDeepLinkQueryParams=true to
have the parameters appended as query params rather than merged into the path.


Did this page help you?