Prerequisites

Step 1 - Initiate a payment

To initiate a Direct Debit, use the following service (API reference):

POST /api/webForms/directDebitWithAccountId
CODE

To initiate a SEPA Credit Transfer or SEPA Instant Credit Transfer, use the following service (API reference):

POST /api/webForms/paymentWithAccountId
CODE

There are some payment data validations that we recommend being implemented to avoid bank payment rejections. Please refer to Payment Data Validation

Step 2 - User to log in at the bank and authorise the payment

As a result of Step 1, the web form is generated. You can find the URL of the web form in the response:

url: "https://webform.finapi.io/wf/946db09e-5bfc-11eb-ae93-0242ac130002"
CODE

The webform has to be presented to the user to authorise the payment (login at the bank and enter a TAN/authorise the payment via the authorisation app or device).

You have two options how to present the webform to the user:

  • Embed the web form into your application. How to: Embedded Web Form 2.0

  • Redirect the user to the Web Form URL in the browser.

There are several branding and customization possibilities available for the web form. Please check out the web form documentation: White labeling

Step 3 - Check the status of the Web Form

To retrieve the status of the web form, you can either call the Get a web form service or register to receive a callback once the web form is completed (callback URL must have been registered during Step 1).

Note that the paymentId is returned in the response (in the payload object) to get the status of the payment initiation in the next step.

More details are available here: https://finapi.jira.com/wiki/spaces/FWFPD/pages/2039971847/Web+Form+2.0+Basics#Want-to-know-web-form-status%3F

Step 4 - Check the status of the payment initiation

To retrieve the status of the payment initiation, get the paymentId from Step 3 and execute Get payments:

GET /api/v1/payments?ids=$paymentId
CODE

For more details, please refer to How to get the payment initiation status.