Initiate a Payment from an Account - with Web Form (Recommended Option)
Prerequisites
Step 1 - Initiate a payment
To initiate a Direct Debit, use the following service (API reference):
POST /api/webForms/directDebitWithAccountId
To initiate a SEPA Credit Transfer or SEPA Instant Credit Transfer, use the following service (API reference):
POST /api/webForms/paymentWithAccountId
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"
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: Web Form 2.0 Basics | Want-to-know-web-form-status?
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 /payments?ids=$paymentId
For more details, please refer to How to get the payment initiation status.