Qwist Payments API
The Payments API from Qwist — 7 operation(s) for payments.
The Payments API from Qwist — 7 operation(s) for payments.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/qwist:qwist-payments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: nrich Payments API
version: '2.10'
contact:
name: Qwist GmbH
email: partnersupport@qwist.com
url: https://qwist.com
description: This is the reference for Qwist's nrich API
servers:
- url: https://api.nrich.qwist.cloud
description: Staging environment
tags:
- name: Payments
paths:
/rest/accounts/{account-id}/payments:
post:
summary: Create payment from account
operationId: createPaymentFromAccount
description: Create a new payment from a previously connected account as the source. In order to initiate the payment it has to be submitted to the payment service provider.
tags:
- Payments
security:
- user_auth: []
parameters:
- $ref: '#/paths/~1rest~1accounts~1{account-id}/get/parameters/0'
- $ref: '#/paths/~1auth~1user/post/parameters/0'
requestBody:
content:
application/json:
schema:
allOf:
- type: object
properties:
type:
$ref: '#/paths/~1rest~1payments/post/requestBody/content/application~1json/schema/allOf/0/properties/type'
required:
- amount
- creditor
- purpose
- allOf:
- $ref: '#/paths/~1verify-and-pay/post/requestBody/content/application~1json/schema/allOf/1/properties/payment/allOf/0'
- type: object
properties:
iban:
deprecated: true
$ref: '#/paths/~1uploads/post/requestBody/content/application~1json/schema/properties/accounts/items/properties/iban'
description: Replaced by `creditor.iban`
name:
deprecated: true
type: string
example: John Doe
description: Replaced by `creditor.name`
responses:
'201':
description: Payment details.
content:
application/json:
schema:
allOf:
- $ref: '#/paths/~1rest~1payments/post/responses/201/content/application~1json/schema'
- type: object
properties:
currency:
deprecated: true
$ref: '#/paths/~1rest~1loans~1{loan-id}/get/responses/200/content/application~1json/schema/properties/currency'
description: Replaced by `amount.currency`.
iban:
deprecated: true
$ref: '#/paths/~1uploads/post/requestBody/content/application~1json/schema/properties/accounts/items/properties/iban'
description: Replaced by `creditor.iban`.
name:
deprecated: true
type: string
example: John Doe
description: Replaced by `creditor.name`.
'400':
$ref: '#/paths/~1rest~1user/put/responses/400'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
get:
summary: List payments of account
operationId: listPaymentsOfAccount
description: List all payments associated to a specific account.
tags:
- Payments
security:
- user_auth: []
parameters:
- $ref: '#/paths/~1rest~1accounts~1{account-id}/get/parameters/0'
- $ref: '#/paths/~1rest~1accesses/get/parameters/0'
- $ref: '#/paths/~1catalog/get/parameters/0'
- $ref: '#/paths/~1auth~1users/get/parameters/0'
- $ref: '#/paths/~1auth~1users/get/parameters/1'
- $ref: '#/paths/~1rest~1payments/get/parameters/5'
responses:
'200':
description: List of payments.
content:
application/json:
schema:
type: object
properties:
payments:
type: array
items:
$ref: '#/paths/~1rest~1payments/post/responses/201/content/application~1json/schema'
'400':
$ref: '#/paths/~1rest~1user/put/responses/400'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
/rest/accounts/{account-id}/payments/{payment-id}:
get:
summary: Get payment of account
operationId: getPaymentOfAccount
description: Retrieve the details of a payment from the given account. The `status`, `challenge` and `error` fields are used in the same way as for synchronization operations when the payment is issued to the service provider.
tags:
- Payments
security:
- user_auth: []
parameters:
- $ref: '#/paths/~1rest~1accounts~1{account-id}/get/parameters/0'
- $ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/parameters/0'
- $ref: '#/paths/~1rest~1accesses/get/parameters/0'
- $ref: '#/paths/~1catalog/get/parameters/0'
- $ref: '#/paths/~1rest~1payments/get/parameters/5'
responses:
'200':
$ref: '#/paths/~1rest~1accounts~1{account-id}~1payments/post/responses/201'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
delete:
summary: Delete a payment
operationId: deletePayment
description: Delete a payment from the finX API backend.
tags:
- Payments
security:
- user_auth: []
parameters:
- $ref: '#/paths/~1rest~1accounts~1{account-id}/get/parameters/0'
- $ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/parameters/0'
responses:
'204':
$ref: '#/paths/~1rest~1user/delete/responses/204'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
/rest/accounts/{account-id}/payments/{payment-id}/init:
post:
summary: Initiate a payment of account
deprecated: true
operationId: initPaymentOfAccount
description: 'Initiate a payment by sending it to the payment service provider. The payment is executed as an asynchronous background operation. The status of this operation can be monitored by polling the payment and and tracking the `status` field.
**Deprecated** in favour of init payment endpoint.'
tags:
- Payments
security:
- user_auth: []
parameters:
- $ref: '#/paths/~1rest~1accounts~1{account-id}/get/parameters/0'
- $ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/parameters/0'
- $ref: '#/paths/~1auth~1user/post/parameters/0'
requestBody:
$ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/requestBody'
responses:
'201':
$ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/responses/201'
'400':
$ref: '#/paths/~1rest~1user/put/responses/400'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
/rest/accounts/{account-id}/payments/{payment-id}/init/{init-id}:
get:
summary: Get payment initiation status of account
deprecated: true
operationId: getPaymentInitStatusOfAccount
description: '**Deprecated** in favour of payment status endpoint.'
tags:
- Payments
security:
- user_auth: []
parameters:
- $ref: '#/paths/~1rest~1accounts~1{account-id}/get/parameters/0'
- $ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/parameters/0'
- $ref: '#/paths/~1rest~1payments~1{payment-id}~1init~1{init-id}/get/parameters/1'
responses:
'200':
$ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/responses/201'
'400':
$ref: '#/paths/~1rest~1user/put/responses/400'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
/rest/payments:
post:
summary: Create payment
operationId: createPayment
description: The creation of a standalone payment is useful in situations where the account and transaction data is not of interest. This endpoint can be used with either `user_auth` or `client_auth`, but only in the case of `user_auth` the login information can be securely saved on the finX platform and can be used for subsequent payment operations.
tags:
- Payments
security:
- user_auth: []
- client_auth: []
requestBody:
content:
application/json:
schema:
allOf:
- type: object
properties:
type:
type: string
enum:
- SEPA transfer
- SEPA_TRANSFER
- SEPA_INSTANT_TRANSFER
example: SEPA transfer
description: Type of a payment.
required:
- amount
- creditor
- debtor
- purpose
- allOf:
- type: object
properties:
debtor:
$ref: '#/paths/~1payment-receipts~1{receipt-id}/get/responses/200/content/application~1json/schema/allOf/2/properties/debtor'
- $ref: '#/paths/~1verify-and-pay/post/requestBody/content/application~1json/schema/allOf/1/properties/payment/allOf/0'
responses:
'201':
description: Payment details.
content:
application/json:
schema:
allOf:
- type: object
properties:
account_id:
$ref: '#/paths/~1rest~1accounts~1{account-id}/get/parameters/0/schema'
payment_id:
$ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/parameters/0/schema'
type:
$ref: '#/paths/~1rest~1payments/post/requestBody/content/application~1json/schema/allOf/0/properties/type'
- $ref: '#/paths/~1rest~1payments/post/requestBody/content/application~1json/schema/allOf/1'
- type: object
properties:
provider:
$ref: '#/paths/~1rest~1catalog~1banks/get/responses/200/content/application~1json/schema/items/allOf/0/allOf/1'
description: The details of the provider associated to the debtor account.
access_method:
$ref: '#/paths/~1rest~1catalog~1banks/get/responses/200/content/application~1json/schema/items/allOf/0/allOf/0/properties/access_methods/items'
description: The details of the access method associated to the debtor account. The `access_method.credentials`-field shows the required input-fields that have to be provided when initiating the payment.
- type: object
properties:
created_at:
$ref: '#/paths/~1rest~1accesses/get/responses/200/content/application~1json/schema/items/properties/created_at'
modified_at:
$ref: '#/paths/~1rest~1loans~1{loan-id}/get/responses/200/content/application~1json/schema/properties/modified_at'
submitted_at:
description: Timestamp of submission to the bank server. `null` if payment has not been submitted yet.
example: '2026-04-01T08:10:00.000+00:00'
type: string
format: date-time
required:
- account_id
- payment_id
- type
- amount
- creditor
- debtor
- purpose
- provider
- access_method
- created_at
- modified_at
- submitted_at
- currency
- name
- iban
'401':
$ref: '#/paths/~1catalog/get/responses/401'
get:
summary: List payments
operationId: listPayments
description: View not payments as stored in the finX API backend.
tags:
- Payments
security:
- user_auth: []
parameters:
- $ref: '#/paths/~1rest~1timeline/get/parameters/5'
- $ref: '#/paths/~1rest~1accesses/get/parameters/0'
- $ref: '#/paths/~1catalog/get/parameters/0'
- $ref: '#/paths/~1auth~1users/get/parameters/0'
- $ref: '#/paths/~1auth~1users/get/parameters/1'
- in: query
name: cents
schema:
type: boolean
default: false
example: true
description: If `true` amounts will be shown in cents.
responses:
'200':
description: List of payments.
content:
application/json:
schema:
type: object
properties:
payments:
type: array
items:
$ref: '#/paths/~1rest~1accounts~1{account-id}~1payments/post/responses/201/content/application~1json/schema'
'400':
$ref: '#/paths/~1rest~1user/put/responses/400'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
/rest/payments/{payment-id}/init:
post:
summary: Initiate a payment
operationId: initPayment
description: Initiate a payment by submitting it to the payment service provider. The payment initiation is executed as an asynchronous background operation. The state of this operation can be monitored polling the initiation status.
tags:
- Payments
security:
- user_auth: []
- client_auth: []
parameters:
- name: payment-id
in: path
required: true
schema:
type: string
example: P12345.6
description: nrich ID of the payment.
- $ref: '#/paths/~1auth~1user/post/parameters/0'
requestBody:
content:
application/json:
schema:
type: object
properties:
credentials:
$ref: '#/paths/~1rest~1accesses/post/requestBody/content/application~1json/schema/properties/credentials'
save_secrets:
type: boolean
description: Indicates whether the confidential parts of the credentials should be saved for future payment operations. If set to `false` previously saved secrets are discarded at the end of the payment operation. This can only be used if the payment is initiated with `user_auth`.
redirect_uri:
$ref: '#/paths/~1rest~1accesses~1{access-id}~1syncs/post/requestBody/content/application~1json/schema/properties/redirect_uri'
state:
$ref: '#/paths/~1rest~1notifications~1{notification-id}/put/requestBody/content/application~1json/schema/properties/state'
reuse_auth_method:
type: boolean
example: false
default: true
description: 'Indicates whether the last selected authentication **method** should be re-used for this payment initiation. This minimizes the amount of challenges that have to be solved in the course of the payment initiation.
'
reuse_auth_medium:
type: boolean
example: false
default: true
description: 'Indicates whether the last selected authentication **medium** should be re-used for this payment initiation. This minimizes the amount of challenges that have to be solved in the course of the payment initiation.
'
psu_ip:
type: string
format: IP
description: 'The IP address of the end-user for whom the payment is initiated. This might be required by the provider. It is advised to provide this value whenever possible.
'
required:
- state
responses:
'201':
description: Payment initiation status.
content:
application/json:
schema:
type: object
description: A handle to refer to the processing of an initiated payment.
properties:
id:
$ref: '#/paths/~1rest~1payments~1{payment-id}~1init~1{init-id}/get/parameters/1/schema'
status:
$ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/status'
state:
type: string
description: The `state` that was being provided in the request when initiating the payment.
challenge:
$ref: '#/paths/~1rest~1accesses~1{access-id}~1syncs~1{sync-id}~1challenges~1{challenge-id}/get/responses/200/content/application~1json/schema'
error:
$ref: '#/paths/~1rest~1accesses~1{access-id}~1syncs/post/responses/201/content/application~1json/schema/properties/error'
created_at:
$ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
description: Time at which the payment initiation was created.
started_at:
$ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
description: Time at which the payment initiation was started. Will be omitted as long as the payment initiation job is still in the `QUEUED` state.
example: '2019-08-31T12:13:11.000Z'
ended_at:
$ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
description: Time at which the payment initiation was ended. Will be omitted as log as the payment initiation is not in the `COMPLETED` state.
example: '2019-08-31T12:13:45.000Z'
required:
- id
- created_at
- status
'400':
$ref: '#/paths/~1rest~1user/put/responses/400'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
/rest/payments/{payment-id}/init/{init-id}:
get:
summary: Get payment initiation status
operationId: getPaymentInitStatus
tags:
- Payments
security:
- user_auth: []
- client_auth: []
parameters:
- $ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/parameters/0'
- name: init-id
in: path
required: true
schema:
type: string
format: UUID
example: 9054f9b1-0d19-4788-a990-b493d5723419
description: nrich ID of the payment initiation.
responses:
'200':
$ref: '#/paths/~1rest~1payments~1{payment-id}~1init/post/responses/201'
'400':
$ref: '#/paths/~1rest~1user/put/responses/400'
'401':
$ref: '#/paths/~1catalog/get/responses/401'
'404':
$ref: '#/paths/~1auth~1token/post/responses/404'
components:
securitySchemes:
user_auth:
type: http
description: 'In order to access any information belonging to a user, a client has to authenticate with a token linking itself to the user. This token is called an `access token` and contains information on the client, the user and the level of access the client has to the users data. In order to authenticate using such an access token the HTTP header `Authorization` is set to `Bearer <access token>`. The `access token` is formatted
as a JSON Web Token according to [RFC7519](https://tools.ietf.org/html/rfc7519)
Such an `access token` is either returned when
* exchanging an authorization code after a successful OAuth login flow
* logging in with the user''s credentials
* exchanging a refresh token, which is returned at either of the aforementioned points
**Authentication errors**
In case of an authentication error a HTTP code 401 response is returned containing further
details on the kind of error in the `WWW-Authenticate` header.
In addition to the below listed scope the flags are used for simple boolean permissions.
| Flag | Description |
| -- | -- |
| submit_payments | Allow submission of payments to bank server |
| offline | Access finX API when the user is not present |
| create_user | Allow creation of finX accounts |
**Example**
The string `"accounts=rw submit_payments"` is URL-encoded and passed as the URL
parameter `scope`.'
scheme: bearer
bearerFormat: JWT
x-bearerInfoFunc: app.decode_token
x-scopes:
accounts=rw: Modify accounts
accounts=ro: Read accounts
balance=ro: Read account balance
securities=ro: Read securities
transactions=ro: Read transactions
transactions=rw: Modify transactions
payments=ro: Read payments
payments=rw: Create/modify payments
submit_payments: Submit payment to service provider
user=ro: Read user information
user=rw: Modify user information
client_auth:
x-basicInfoFunc: app.basic_auth
type: http
scheme: basic
description: Client authentication is performed via [HTTP Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication) with client ID as username and client secret as password.
x-provenance:
method: searched
source: https://docs.qwist.com/reference
harvested: '2026-10-21'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://docs.qwist.com/reference/addprovideraccess.md
- https://docs.qwist.com/reference/categorizetransactions.md
- https://docs.qwist.com/reference/createaccesstoken.md
- https://docs.qwist.com/reference/createaccountverification.md
- https://docs.qwist.com/reference/createcontract.md
- https://docs.qwist.com/reference/createincomereport.md
- https://docs.qwist.com/reference/createmanualsync.md
- https://docs.qwist.com/reference/createnotification.md
- https://docs.qwist.com/reference/createonetimeaccess.md
- https://docs.qwist.com/reference/createonetimeincomereport.md
- https://docs.qwist.com/reference/createonetimepayment.md
- https://docs.qwist.com/reference/createonetimeriskreport.md
- https://docs.qwist.com/reference/createongoingaccess.md
- https://docs.qwist.com/reference/createongoingpayment.md
- https://docs.qwist.com/reference/createongoingriskreport.md
- https://docs.qwist.com/reference/createpayment.md
- https://docs.qwist.com/reference/createpaymentfromaccount.md
- https://docs.qwist.com/reference/createqwistlink.md
- https://docs.qwist.com/reference/createriskreport.md
- https://docs.qwist.com/reference/createsync.md
- https://docs.qwist.com/reference/createupload.md
- https://docs.qwist.com/reference/createuser.md
- https://docs.qwist.com/reference/createverifyandpay.md
- https://docs.qwist.com/reference/deleteaccount.md
- https://docs.qwist.com/reference/deleteclientuser.md
- https://docs.qwist.com/reference/deletecontract.md
- https://docs.qwist.com/reference/deletenotification.md
- https://docs.qwist.com/reference/deletepayment.md
- https://docs.qwist.com/reference/deleteprovideraccess.md
- https://docs.qwist.com/reference/deleteuser.md
- https://docs.qwist.com/reference/getaccount.md
- https://docs.qwist.com/reference/getaccountbalance.md
- https://docs.qwist.com/reference/getaccountverificationreceipt.md
- https://docs.qwist.com/reference/getandgenerateincomereport.md
- https://docs.qwist.com/reference/getartifact.md
- https://docs.qwist.com/reference/getcategories.md
- https://docs.qwist.com/reference/getcategoriesforaccess.md
- https://docs.qwist.com/reference/getcategoriesforaccount.md
- https://docs.qwist.com/reference/getcategorytree.md
- https://docs.qwist.com/reference/getcontract.md
- https://docs.qwist.com/reference/getcredential.md
- https://docs.qwist.com/reference/getincomereport.md
- https://docs.qwist.com/reference/getinsurance.md
- https://docs.qwist.com/reference/getloan.md
- https://docs.qwist.com/reference/getnotification.md
- https://docs.qwist.com/reference/getpaymentchallenge.md
- https://docs.qwist.com/reference/getpaymentchallengeofaccount.md
- https://docs.qwist.com/reference/getpaymentinitstatus.md
- https://docs.qwist.com/reference/getpaymentinitstatusofaccount.md
- https://docs.qwist.com/reference/getpaymentofaccount.md
- https://docs.qwist.com/reference/getpaymentpartners.md
- https://docs.qwist.com/reference/getpaymentpartnersforaccess.md
- https://docs.qwist.com/reference/getpaymentpartnersforaccount.md
- https://docs.qwist.com/reference/getpaymentreceipt.md
- https://docs.qwist.com/reference/getprovideraccess.md
- https://docs.qwist.com/reference/getriskreport.md
- https://docs.qwist.com/reference/getsecurityofaccount.md
- https://docs.qwist.com/reference/getsyncchallenge.md
- https://docs.qwist.com/reference/getsyncstatus.md
- https://docs.qwist.com/reference/gettimeline.md
- https://docs.qwist.com/reference/gettimelineforaccess.md
- https://docs.qwist.com/reference/gettimelineforaccount.md
- https://docs.qwist.com/reference/gettransaction.md
- https://docs.qwist.com/reference/gettransactionofaccount.md
- https://docs.qwist.com/reference/getuploadstatus.md
- https://docs.qwist.com/reference/getuser.md
- https://docs.qwist.com/reference/getversion.md
- https://docs.qwist.com/reference/initpayment.md
- https://docs.qwist.com/reference/initpaymentofaccount.md
- https://docs.qwist.com/reference/listaccounts.md
- https://docs.qwist.com/reference/listaccountsofaccess.md
- https://docs.qwist.com/reference/listbanks.md
- https://docs.qwist.com/reference/listcatalog.md
- https://docs.qwist.com/reference/listcatalogclientauth.md
- https://docs.qwist.com/reference/listclientusers.md
- https://docs.qwist.com/reference/listcontracts.md
- https://docs.qwist.com/reference/listcontractsofaccess.md
- https://docs.qwist.com/reference/listcontractsofaccount.md
- https://docs.qwist.com/reference/listcredentials.md
- https://docs.qwist.com/reference/listinsurances.md
- https://docs.qwist.com/reference/listinsurancesofaccess.md
- https://docs.qwist.com/reference/listloans.md
- https://docs.qwist.com/reference/listloansofaccess.md
- https://docs.qwist.com/reference/listnotifications.md
- https://docs.qwist.com/reference/listpaymentchallenges.md
- https://docs.qwist.com/reference/listpaymentchallengesofaccount.md
- https://docs.qwist.com/reference/listpayments.md
- https://docs.qwist.com/reference/listpaymentsofaccount.md
- https://docs.qwist.com/reference/listprovideraccesses.md
- https://docs.qwist.com/reference/listsecurities.md
- https://docs.qwist.com/reference/listsecuritiesofaccount.md
- https://docs.qwist.com/reference/listservices.md
- https://docs.qwist.com/reference/listsyncchallenges.md
- https://docs.qwist.com/reference/listtransactions.md
- https://docs.qwist.com/reference/listtransactionsofaccount.md
- https://docs.qwist.com/reference/patchcredential.md
- https://docs.qwist.com/reference/removepinfromprovideraccess.md
- https://docs.qwist.com/reference/replacenotifications.md
- https://docs.qwist.com/reference/revokeoauthtoken.md
- https://docs.qwist.com/reference/solvepaymentchallenge.md
- https://docs.qwist.com/reference/solvepaymentchallengeofaccount.md
- https://docs.qwist.com/reference/solvesyncchallenge.md
- https://docs.qwist.com/reference/updatecontract.md
- https://docs.qwist.com/reference/updatenotification.md
- https://docs.qwist.com/reference/updateuser.md
merge:
pages: 105
deduped: 1107
conflicts_kept_first: 0