Pay-by-bank (one-time)
Initiate a single payment and fetch the receipt. nrich uses SEPA Instant where supported, falling back to standard SEPA Credit Transfer.
Two steps to initiate a one-time payment. nrich uses SEPA Instant where the bank supports it, with automatic fallback to standard SEPA Credit Transfer.
Create a Widget link for the payment
Fetch the payment receipt
Step 1: Create the Widget link
POST https://api.finx-s.qwist.cloud/onetime/payment
{
"redirect_uri": "https://my-app.example.com/callback",
"payment": {
"creditor": {
"iban": "DE89370400440532013000",
"name": "Acme GmbH"
},
"amount": {
"value": 149.99,
"currency": "EUR"
},
"purpose": "Invoice INV-2025-0042"
}
}Required parameters:
| Parameter | Description |
|---|---|
redirect_uri | Where the user is returned after the flow. |
payment.creditor.iban | IBAN of the recipient account. |
payment.creditor.name | Name of the recipient (individual or business). |
payment.amount.value | Amount to transfer. |
payment.amount.currency | Currency code (e.g. "EUR"). |
payment.purpose | Purpose text shown in the recipient's bank statement. Max 140 characters. |
Optional parameters:
payment.debtor.iban - IBAN of the user's account. Pre-selects their bank, skipping bank selection:
{
"payment": {
"debtor": {
"iban": "DE12500105170648489890"
}
}
}
Improve conversion with debtor IBANIf you know the user's IBAN - for example, because they entered it during onboarding - pass it here. The Widget skips bank selection and takes the user directly to authentication. This is the most effective conversion optimisation for payment flows.
Response:
{
"location": "https://widget.qwist.cloud/?token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"id": "5e8c3f2a-9d4b-4f7e-a1c6-3b8d2e9f5a1c"
}Store the id - this is your receipt ID for step 2. It is also returned as flow_id in the callback after the user completes the payment.
Forward the user to location via a redirect or iframe overlay.
After the user selects their bank, logs in, and confirms the payment with SCA, they are redirected to your redirect_uri with success=true, flow_id, and optionally abort=true if they cancelled.
Step 2: Fetch the payment receipt
See Fetching your Payment Receipt for the endpoint and response reference.
