HomeGuidesAPI Reference
Log In
Guides

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.

Step 1

Create a Widget link for the payment

Step 2

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:

ParameterDescription
redirect_uriWhere the user is returned after the flow.
payment.creditor.ibanIBAN of the recipient account.
payment.creditor.nameName of the recipient (individual or business).
payment.amount.valueAmount to transfer.
payment.amount.currencyCurrency code (e.g. "EUR").
payment.purposePurpose 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 IBAN

If 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.