Create Link
Creates a new payment link for initiating a bank transfer through open-banking. Returns a web URL where the end-user can complete the payment through their bank's Strong Customer Authentication (SCA) flow.
Payment Flow Types
The type option determines how the payment link is created and the user experience:
| Type | Behavior | Use Case |
|---|---|---|
link |
Returns a transportable payment link, end-user opens it in FinqLink WebUI to complete the payment. Offers maximum flexibility in terms of expiration and user optionality. Use this flow when generating payment links expected to be operated after a longer time. Example: an invoice sent over email which you don't expect an immediate action for. | Invoicing, QR codes |
direct_sca |
A non-transportable payment link. The API returns a native authorisation URL received from the payment provider and your application will process the redirect call from the payment provider. Available under certain custom requirements (discuss with a Finqware representative). | Mobile app-to-app experience |
wrapped_sca |
A transportable payment link for immediate usage. The authorisation URL is requested at link creation, hence there is no optionality anymore for the user to choose a different payment provider. Use this flow when (1) you know upfront all the payment details and (2) you expect immediate action from your user, as the authorisation URL may expire in minutes. | E-commerce, invoicing |
redirect_sca |
Similar to direct_sca, but handles redirects through WebUI | App-to-app UX |
Payment Method Selection
Use the payment_method object as a filter to restrict the available payment methods:
- Filter by specific banks (
provider_id) - Filter by account type (
remitter_type: retail and/or corporate) - Filter by payment rails (
payment_scheme: instant, domestic, SEPA) - Filter by environment (
env: sandbox, stage, prod)
The WebUI selector component will only show the payment methods that match the filter.
Example if you want to restrict your user to pay from their personal account from a list of specific banks:
{
"payment_method": {
"provider_id": ["bt_ro", "ing_ro", "bcr_ro"],
"remitter_type": ["retail"],
"env": "prod"
}
}
Body Parameters
API client identifier
API client secret for authentication. Required for internal (non-OAuth2) authentication mode (e.g., test-only). Not required when using OAuth2 (Bearer token) authentication.
Payment intent data for a single transfer
Show child attributes
Filter to restrict available payment methods.
By default, all matching methods are available to the user.
Use user_editable in options to allow users to change these values.
Show child attributes
Configuration options for the payment link
Show child attributes
Response
Response Attributes
Unique identifier for the API request
Timestamp when the link was created
Timestamp when the link will expire
Name of the API client application
Internal UUID identifier for the payment link
Public identifier for the link (used in web URLs)
URL for completing the payment.
- For
link/wrapped_scatypes: WebUI URL - For
direct_sca/redirect_scatypes: Bank SCA URL
Response Attributes
Unique identifier for this error instance
Request identifier for tracking and correlation
Machine-readable error code for 400 errors:
bad_request: Generic validation or request errorvalidation_error: Request payload validation failedinvalid_input: Invalid input data providedunprocessable_entity: Valid request but cannot be processedcooldown_failed: Data refresh cooldown period not yet elapsedconsent_not_active: Consent is not usable...
bad_requestvalidation_errorinvalid_inputunprocessable_entitycooldown_failedconsent_not_activemethod_selection_errormethod_input_validation_errorlink_expiredHuman-readable error message
Response Attributes
Unique identifier for this error instance
Request identifier for tracking and correlation
Machine-readable error code for 401 errors:
unauthorized: Authentication failed or insufficient permissions
unauthorizedHuman-readable error message