About
Payconiq is a popular app-based payment method owned by the Bancontact Payconiq Group. This guide concerns the Payconiq pay-in flow. See the Bancontact guide for more details about other Bancontact payment flows.| Region | Belgium, Luxembourg |
|---|---|
| Currencies | EUR |
| Refunds | Yes, within 365 days |
| Disputes | Yes |
| Preauthorization | No |
| Recurring payments | No |
Deprecation
Refunds from Jan 1, 2026
To process a refund for a Payconiq pay-in from Jan 1, 2026, your platform must use a payout. This is the same process as for direct bank wire pay-ins and pay-ins to vIBANs. You will need the user’s bank details to register a bank account for them to receive the funds. The user does not need to be anOWNER (for UserCategory) or be KYC/KYB verified (KYCLevel can be LIGHT).
1
Fetch the initial pay-in
Call GET View a PayIn to retrieve the initial pay-in.
2
Create a Recipient for the user
The next step is to register the user’s bank account.You can call the GET View the schema for a Recipient to obtain the format of the bank details and address that you need to get from the user.Before calling the Recipient creation endpoint, you are also recommended to validate the data by calling the POST Validate data for a Recipient endpoint with the same request body.To register the user’s bank account, call POST Create a Recipient:
- Use the user’s bank details
- Use the user’s
Id(which is theAuthorIdof the pay-in) as the path parameter - Set the
RecipientScopetoPAYIN, which indicates that the Recipient will only be used for pay-in refunds and therefore doesn’t require SCA
3
Initiate the payout
Call the POST Create a Payout endpoint to initiate the refund, setting:
- The user’s
Idas theAuthorId - The Recipient’s
Idas theBankAccountId - The
Idof the initial pay-in as thePaymentRef.ReferenceIdand settingPaymentRef.ReasonTypetoPAYIN_REFUND
How it works
The Payconiq pay-in flow provides the following checkout experience:1
User chooses payment method
On your app or website, the user selects Payconiq as the payment method
2
Redirection
On a website, you redirect the user to one of two pages to complete the payment:
- Via the
RedirectURL, to a hosted page showing the QR code and Payconiq by Bancontact branding and instructions. - To your payment page displaying the QR code available at the
QRCodeURLvalue. You can lightly customize the color and format of this QR code (see below).
DeepLinkURL, where they confirm and authenticate the payment.3
Return
After payment, the user is returned to the
ReturnURL that you specify in the payment request4
Outcome
The transaction is complete when the pay-in status changes from
CREATED to SUCCEEDED or FAILED, indicating the outcome.Hooks
You should also set up hook notifications for the relevant event types:- PAYIN_NORMAL_SUCCEEDED
- PAYIN_NORMAL_FAILED
QR code customization
You can customize the QR code’s format, size, and color by adding query parameters to theQRCodeURL before redirecting the user.
For example:
r2/girogate.de/payconiq/qrcode?f=PNG?s=XL?cl=BlackThe available options are:
| Parameter | Description |
|---|---|
f | The image format.Allowed values: SVG, PNG |
s | If the format is PNG, the image size in pixels of the QR code to generate:
S, M, L, XL |
cl | The color of the QR code.Default value: magentaAllowed values: magenta, black |
Legacy integrations
Payconiq was previously available from Mangopay at the following endpoint URL:/payins/payconiq/webThe legacy flow remains available for platforms with no changes required on their side. The new flow is identical to the old one with the exception of the
QRCodeURL, which was not previously available.