{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml","oas-apis/merchant-payment.openapi.yaml":"oas-apis/merchant-payment.openapi.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","json-schema","openapi-code-sample"]},"type":"markdown"},"seo":{"title":"Invoice","description":"Discover the API documentation to start developing your Bancontact Pro application","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Important update"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please note that this payment solution is no longer offered directly by Bancontact Company."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you would you still like to use a similar solution in your business please contact one of the partners"," ","listed ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.bancontact.com/en/partners","target":"_blank","rel":"noopener noreferrer"},"children":["here"]},"."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"danger","name":"New payment URLs"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Following the decommissioning of the Payconiq brand in Belgium, these URL changes are essential to ensure compliance and"," ","mark the final phase in aligning our branding with the new Bancontact Pro identity."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please implement adaptations ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/general/payloadurlupdate"},"children":["described here"]}," promptly to avoid service interruptions and guarantee the continued acceptance of mobile payments via Bancontact Pay and Wero."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Changes are already available in our pre-production environement and will be rolled out in production starting ",{"$$mdtype":"Tag","name":"b","attributes":{},"children":["11/05/2026"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"invoice","__idx":0},"children":["Invoice"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"introduction","__idx":1},"children":["Introduction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Our invoice solution allows your to print a single use payment QR code on your invoices. Your consumers simply scan the QR code with their preferred payment application and confirm the transaction."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For digital invoices, a deeplink alternative is available to allow your consumers to settle their invoices directly from their mobile devices."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important Note"]}," Invoices can be used with or without structured communication (GMO). The parameter must be activated upon product creation by our support team."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"process-flow","__idx":2},"children":["Process Flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following section outlines the key steps involved in a On a Display Instore payment with Bancontact. The process involves several key parties, each playing a specific role in completing the transaction."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"prerequisites","__idx":3},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API Key"]}," – This is used to secure the request between the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant’s backend"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bancontact Pro’s backend"]},". Do not share your API keys in public areas such as online sites or client-side code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Product Profile ID or PPID"]}," – The unique product identifier."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant CallbackUrl"]}," (",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Optional"]},") – This URL will be called by Bancontact’s backend servers in order to send the status of the payment to the merchant."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"involved-parties","__idx":4},"children":["Involved Parties"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following parties participate in a display-based in-store payment with Bancontact :"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payer Application"]},": The consumer's preferred payment app used to complete the transaction."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant Frontend"]},": The physical or digital invoice where the QR code is displayed"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant Backend"]},": The merchant’s server-side system that integrates with Bancontact ."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bancontact  Backend"]},": The backend system responsible for handling payment processing and integration services."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-by-step-payment-flow","__idx":5},"children":["Step-by-Step Payment Flow"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant Backend"]}," creates a one-time usage QR code using the Bancontact  service URL. The QR code will contain parameters such as the amount to be paid, a discription and a payment reference."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The QR Code is printed on the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant Fronted"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The consumer confirms the payment n the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payer app"]}," using PIN, fingerprint, or face ID. The Payer app then submits the payment request to the Bancontact backend for authorization."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The consumer confirms the payment n the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payer app"]}," using PIN, fingerprint, or face ID. The Payer app then submits the payment request to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bancontact  backend"]}," for authorization."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bancontact  backend"]}," sends a payment notification with the payment status to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["merchant backend"]}," via the configured callback URL."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["merchant backend"]}," acknowledges the callback notification."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["merchant frontend"]}," displays the payment  status (digital invoices)"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important Note:"]}," The order in which the merchant and consumer receive payment status notifications is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not guaranteed"]},". Network and connectivity differences may cause one party to receive the update before the other."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"payment-flow-diagram","__idx":6},"children":["Payment Flow Diagram"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the following diagrams you will find a visual overview of the process flows presented above:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Embed diagram INVOICE"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"implementation-guide","__idx":7},"children":["Implementation Guide"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In order to create a QR code you need to use the Bancontact  service URL as ilustrated below. Once created, you will be able to print the Static QR on the medium of your choice."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the full endpoint documentation, please refer to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/merchant-payment.openapi"},"children":["Merchant Payment API"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-creating-qr-code","__idx":8},"children":["1. Creating QR Code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In order to create a QR code you need to use the Bancontact  service URL as ilustrated below. Once created, you will be able to print the Static QR on the medium of your choice."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"qr-code-parameters","__idx":9},"children":["QR Code Parameters"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The QR code contains the following parameters:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Attribute"},"children":["Attribute"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["f"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"[String :: Enum] ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," Allowed Values: SVG, PNG"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Image format. If not provided, the default format is PNG."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["s"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"[String :: Enum] ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," Allowed Values: S, M, L, XL",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Image size of the QR code to generate. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Small (S) = 180x180 ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Medium (M) = 250x250",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Large (L) = 400x400 ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Extra Large (XL) = 800x800 ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," The sizes only applies to PNG format. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," *If not provided, the default size is Small."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["c"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," [String, required]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The UTF-8 URL encoded content. This is comprised of the template URL scheme."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["c.D"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"[String, optional] ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Maximum Length: 35 chars"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UTF-8 URL encoded description of the payment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["c.A"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"[String, optional]",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Minimum: 1",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Maximum: 999999"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UTF-8 URL encoded amount of the QR code in Euro cents."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["c.R"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"[String, optional]",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Maximum Length: 35 chars"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UTF-8 URL encoded reference of the QR code."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["IMPORTANT NOTE:"]}," The combination of amount, reference, and description should always be unique. If not, the QR code could be considered as already paid."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"qr-code-creation-process","__idx":10},"children":["QR code creation process"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Activity"},"children":["Activity"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Comment"},"children":["Comment"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1."]}," Obtain the pre-requisite information needed to generate the QR Code."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["• Format of the q QR code. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"• Size of the  QR code. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"• Template URL scheme. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"• Payment profile id of the merchant. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"• Amount of the  QR code. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"• Description of the  QR code. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"• Reference of the  QR code."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["2."]}," Build the  service URL using the optional parameters which include: ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •  Image format (PNG or SVG) ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •    Image size (S, M, L, XL). This only applies to PNG."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sample format: ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://qrcodegenerator.api.bancontact.net/qrcode?f={imageFormat}&s={ImageSize}&c= "]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Example Output URL (PNG):",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://qrcodegenerator.api.bancontact.net/qrcode?f=PNG&s=L&c="]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Sample URL (SVG)",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://qrcodegenerator.api.bancontact.net/qrcode?f=SVG&c="]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["3."]}," UTF-8 encode the  URL payload parameter values using UTF-8 as the destination character set. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"This means encoding the following:",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •   Description",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •   Amount",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •    Reference."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["unencoded URL payload parameters",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"D=Invoice Payment",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"A=1000",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"R= unique reference OR structured communication",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Example: for structured communication  +++123/4567/89101+++ ,value of R should be ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["123456789101"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["4."]}," Build the  URL payload using the following details. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •  Template URL scheme",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •   Payment profile id of the merchant.",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •   Amount of the  QR code.",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •   Description of the  QR code.",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," •  Reference of the  QR code."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sample format:",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://payconiq.com/t/1/{PaymentProfileId?D={Enc_description}&A={Enc_amount}&R={Enc_reference} "]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Sample URL payload:",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://payconiq.com/t/1/5c18cbd1296e9a26d3278518?D=Invoice%20Payment&A=1000&R=123456789101"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["5."]}," UTF-8 encode the  URL Payload from step 4."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["URL Payload before Encoding:",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://payconiq.com/t/1/5c18cbd1296e9a26d3278518?D=Invoice%20Payment&A=1000&R=123456789101"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," URL Payload after Encoding:",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https%3A%2F%2Fpayconiq.com%2Ft%2F1%2F5c18cbd1296e9a26d3278518%3FD%3DInvoice%2520Payment%26A%3D1000%26R%3D123456789101"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["6."]}," Build full URL by combining results from step 2 and step 5.",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sample full URL:",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://qrcodegenerator.api.bancontact.net/qrcode?f=PNG&s=L&c=https%3A%2F%2Fpayconiq.com%2Ft%2F1%2F5c18cbd1296e9a26d3278518%3FD%3DInvoice%2520Payment%26A%3D1000%26R%3D123456789101"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can now execute the URL in a web view to obtain your Static QR Code and print it on the medium of your choice."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"invoice-deeplink","__idx":11},"children":["Invoice Deeplink"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For digital invoices, you can use the Payload URL as a deeplink to allow your consumers to pay withdirectly from their mobile device."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To do so, simply send the Bancontact  Payload URL generated in the Step 4 of the QR Code creation process and send it to your consumers."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Invoice DeepLink Example"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Description:"]}," Invoice Payment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Amount:"]}," 2.50€"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Reference:"]}," 4198798465"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["https://payconiq.com/t/1/5c18cbd1296e9a26d3278518?D=Invoice%20Payment&A=250&R=4198798465"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-the-bancontact--callback","__idx":12},"children":["2. The Bancontact  Callback"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can specify a callback URL where the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bancontact  backend"]}," will send notifications about the status of a payment. This will allow you to take appropriate action and process the payment data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["merchant backend"]}," must verify that the notification message originated from ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bancontact backend"]}," was not altered or corrupted during the tranmission. To do so, please ensure signature validation."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the full Callback documentation, please refer to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/general/callback052025"},"children":["Callback Guide"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-request-body","__idx":13},"children":["📦 Request Body"]},{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../apis/merchant-payment.openapi.yaml#/components/schemas/merchant-callback"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/merchant-callback"},"merchant-payment-status":{"type":"string","title":"MerchantPaymentStatus","description":"| Status | Description |\n|--------|-------------|\n| PENDING | The merchant has created the payment and and is pending to proceed with identify step. |\n| IDENTIFIED | The user has scanned the payment's QR code with the Bancontact Pay. |\n| AUTHORIZED | The user has confirmed the payment and the bank authorized it. |\n| AUTHORIZATION_FAILED | The authorization with the bank failed. |\n| FAILED | Something went wrong during the payment process(e.g authorization failed). |\n| SUCCEEDED | The payment has succeeded. |\n| CANCELLED | When the payment has been canceled after the user has scanned it, or the merchant has cancelled the payment.|\n| EXPIRED | The payment has expired. |\n| PENDING_MERCHANT_ACKNOWLEDGEMENT | The payment is waiting for the merchant to acknowledge. |\n| VOIDED | The payment has been voided |\n","enum":["PENDING","IDENTIFIED","AUTHORIZED","AUTHORIZATION_FAILED","SUCCEEDED","FAILED","CANCELLED","EXPIRED","PENDING_MERCHANT_ACKNOWLEDGEMENT","VOIDED"]},"merchant-callback":{"type":"object","title":"MerchantCallback","properties":{"paymentId":{"type":"string","description":"Bancontact Company Payment ID","minLength":24,"maxLength":24,"examples":["5f91483d-78a7-4914-bc6f="]},"currency":{"type":"string","default":"EUR","description":"Only EUR is supported currently"},"amount":{"type":"integer","description":"Requested amount in cents","format":"int64"},"description":{"type":"string","description":"Description of the payment that will be shown to the debtor, also used in the bank statement for reconciliation purposes. The characters used must comply with the [SEPA Requirements for an Extended Character Set (UNICODE Subset) - Best Practices | European Payments Council](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best).\n"},"reference":{"type":"string","description":"Merchant payment reference, used to reference the Bancontact Company payment in the merchant’s system. The characters used must comply with the [SEPA Requirements for an Extended Character Set (UNICODE Subset) - Best Practices | European Payments Council](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best).\n","examples":["19848995"]},"createdAt":{"type":"string","format":"date-time","description":"When the payment was created"},"expireAt":{"type":"string","format":"date-time","description":"When the payment is going to expire. After that date the payment can't be confirmed anymore"},"succeededAt":{"type":"string","format":"date-time","description":"if the payment is SUCCEEDED, then this field represents the date-time on which the payment was SUCCEEDED"},"status":{"$ref":"#/components/schemas/merchant-payment-status"},"debtor":{"type":"object","description":"Customer that paid","required":["iban"],"properties":{"iban":{"type":"string","description":"Debtor's IBAN masked","examples":["*************12636"]},"name":{"type":"string","description":"Debtor's first name","examples":["John"]}}}},"required":["paymentId","totalAmount","currency","amount","createdAt","status","debtor"]}}}},"schemaResolvedErrors":[]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-response","__idx":14},"children":["📥 Response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["(No defined response schema)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-sample-request--callback","__idx":15},"children":["🔍 Sample Request – ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["callback"]}]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-apis/merchant-payment.openapi.yaml","operationId":"callback","parameters":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"callback-failure","__idx":16},"children":["Callback Failure"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the event you do not receive a callback or the callback validation fails, please refer to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Get Payment Details\""]},". This alternative will also allow you to confirm the status of a transaction in order to complete the payment."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-get-payment-details","__idx":17},"children":["3. Get Payment Details"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By calling this endpoint you can obtain the details of an existing payment transaction by passing the unique payment ID."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note:"]}," it is highly recommended to implement this call as a fallback option if callback fails."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-path-parameters","__idx":18},"children":["🧩 Path Parameters"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["(string, required)"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-response-1","__idx":19},"children":["📥 Response"]},{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../apis/merchant-payment.openapi.yaml#/components/schemas/get_payment_response"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/get_payment_response"},"currency":{"type":"string","title":"Currency","description":"Currency code. Only EUR is supported [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)","enum":["EUR"],"default":"EUR"},"merchant-payment-status":{"type":"string","title":"MerchantPaymentStatus","description":"| Status | Description |\n|--------|-------------|\n| PENDING | The merchant has created the payment and and is pending to proceed with identify step. |\n| IDENTIFIED | The user has scanned the payment's QR code with the Bancontact Pay. |\n| AUTHORIZED | The user has confirmed the payment and the bank authorized it. |\n| AUTHORIZATION_FAILED | The authorization with the bank failed. |\n| FAILED | Something went wrong during the payment process(e.g authorization failed). |\n| SUCCEEDED | The payment has succeeded. |\n| CANCELLED | When the payment has been canceled after the user has scanned it, or the merchant has cancelled the payment.|\n| EXPIRED | The payment has expired. |\n| PENDING_MERCHANT_ACKNOWLEDGEMENT | The payment is waiting for the merchant to acknowledge. |\n| VOIDED | The payment has been voided |\n","enum":["PENDING","IDENTIFIED","AUTHORIZED","AUTHORIZATION_FAILED","SUCCEEDED","FAILED","CANCELLED","EXPIRED","PENDING_MERCHANT_ACKNOWLEDGEMENT","VOIDED"]},"payment_creditor_response":{"type":"object","title":"PaymentCreditorResponse","description":"Creditor account set to receive the payment","properties":{"profileId":{"type":"string","description":"The configuration ID of the Merchant","examples":["07e998f9-d932-4848-8b60-d5b5ae94b1b2"]},"merchantId":{"type":"string","description":"the Id of the merchant","examples":["dee718bb-3b6d-4312-9404-3d63d14529cc"]},"name":{"type":"string","description":"Merchant's company name that will be shown to the debtor","examples":["John"]},"iban":{"type":"string","description":"Creditor's Bank Account Iban to where the money will be sent to for this current payment","examples":["BE12 3456 7890 1234"]},"identifyCallbackUrl":{"type":"string","description":"callbackUrl to which the merchant will be notified about the payment identification","examples":["https://api.merchant.bancontact.net/identify"]},"callbackUrl":{"type":"string","description":"callbackUrl to which the merchant will be notified about the payment payout","examples":["https://api.merchant.bancontact.net/payment"]}}},"link":{"type":"object","title":"Link","properties":{"href":{"type":"string"}},"required":["href"]},"links":{"type":"object","title":"Links","description":"Provides information to navigate to our REST interfaces dynamically, by including hypermedia links to them. Note that for some links inclusion depends on the status of the payment (e.g. cancel link will be available on PENDING and refund on SUCCEEDED)","properties":{"self":{"$ref":"#/components/schemas/link","examples":["https://api.merchant.bancontact.net/5f91483d-78a7-4914-bc6f="]},"deeplink":{"$ref":"#/components/schemas/link","examples":["https://payconiq.com/pay/2/5f91483d-78a7-4914-bc6f="]},"qrcode":{"$ref":"#/components/schemas/link","examples":["https://qrcodegenerator.api.bancontact.net/qrcode?c=https%3A%2F%2Fpayconiq.com%2Fpay%2F2%2F5f91483d-78a7-4914-bc6f="]},"cancel":{"$ref":"#/components/schemas/link","examples":["https://api.merchant.bancontact.net/5f91483d-78a7-4914-bc6f="]},"refund":{"$ref":"#/components/schemas/link","examples":["https://merchant.api.bancontact.net/payments/5f91483d-78a7-4914-bc6f=/refunds"]},"checkout":{"$ref":"#/components/schemas/link","examples":["https://checkout.example.com?paymentId=12345&timestamp=1700000000000&token=abcdef1234567890"]}},"required":["self","deeplink","qrcode"]},"get_payment_response":{"type":"object","title":"GetPaymentResponse","description":"Response containing information on the requested payment.","properties":{"paymentId":{"type":"string","description":"id of the payment","minLength":24,"maxLength":24,"examples":["5f91483d-78a7-4914-bc6f="]},"createdAt":{"type":"string","format":"date-time","description":"the creation time of the payment"},"expireAt":{"type":"string","format":"date-time","description":"the time from which the payment will be expired"},"succeededAt":{"type":"string","format":"date-time","description":"if the payment is SUCCEEDED, then this field represents the date-time on which the payment was SUCCEEDED"},"currency":{"$ref":"#/components/schemas/currency"},"status":{"$ref":"#/components/schemas/merchant-payment-status"},"creditor":{"$ref":"#/components/schemas/payment_creditor_response"},"debtor":{"type":"object","properties":{"name":{"type":"string","description":"First name of Debtor","examples":["John"]},"iban":{"type":"string","description":"IBAN of Debtor masked","examples":["*************12636"]}}},"amount":{"type":"integer","format":"int64","description":"Amount in cents originally requested. If no amount was requested by creditor, this will be 0"},"description":{"type":"string","description":"merchant's description of the payment","examples":["5 coke."]},"message":{"type":"string","description":"debtor's message of the payment","examples":["Money send."]},"reference":{"type":"string","description":"Merchant payment reference, used to reference the Bancontact Company payment. The characters used must comply with the [SEPA Requirements for an Extended Character Set (UNICODE Subset) - Best Practices | European Payments Council](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best). in the merchant's system\n","examples":["19848995"]},"bulkId":{"type":"string","description":"Field used to reference a bulk batch, so the merchant can choose how to bulk the payments. Mandatory if  merchant profile does have bulking enabled, otherwise will miss from the response. If it's not set in the create call it will default to the value configured in the profile if it exists, otherwise its value will be defaulted by the application.","examples":["Bulk-1-200"]},"_links":{"$ref":"#/components/schemas/links"}},"required":["paymentId","createdAt","expireAt","currency","status","creditor","amount","totalAmount"]}}}},"schemaResolvedErrors":[]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-error-codes-for-merchant-get-payment","__idx":20},"children":["🔧 Error Codes for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant-get-payment"]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"HTTP Status"},"children":["HTTP Status"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Code"},"children":["Code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["401"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNAUTHORIZED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["caller doesn’t have an api-key access token"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["403"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACCESS_DENIED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["api-key access token is invalid, creditor it's not a participant of the requested payment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["404"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAYMENT_NOT_FOUND"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["no payment could be found"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["500"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TECHNICAL_ERROR"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Technical error in Payment service"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-sample-request--merchant-get-payment","__idx":21},"children":["🔍 Sample Request – ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant-get-payment"]}]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-apis/merchant-payment.openapi.yaml","operationId":"merchant-get-payment","parameters":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4-get-payment-list","__idx":22},"children":["4. Get Payment List"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can also retrieve a list of payments by specifying how many records to return, as well as a filter on the results for the total number of records returned per page."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-request-body-1","__idx":23},"children":["📦 Request Body"]},{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../apis/merchant-payment.openapi.yaml#/components/schemas/payment-search-query"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/payment-search-query"},"merchant-payment-status":{"type":"string","title":"MerchantPaymentStatus","description":"| Status | Description |\n|--------|-------------|\n| PENDING | The merchant has created the payment and and is pending to proceed with identify step. |\n| IDENTIFIED | The user has scanned the payment's QR code with the Bancontact Pay. |\n| AUTHORIZED | The user has confirmed the payment and the bank authorized it. |\n| AUTHORIZATION_FAILED | The authorization with the bank failed. |\n| FAILED | Something went wrong during the payment process(e.g authorization failed). |\n| SUCCEEDED | The payment has succeeded. |\n| CANCELLED | When the payment has been canceled after the user has scanned it, or the merchant has cancelled the payment.|\n| EXPIRED | The payment has expired. |\n| PENDING_MERCHANT_ACKNOWLEDGEMENT | The payment is waiting for the merchant to acknowledge. |\n| VOIDED | The payment has been voided |\n","enum":["PENDING","IDENTIFIED","AUTHORIZED","AUTHORIZATION_FAILED","SUCCEEDED","FAILED","CANCELLED","EXPIRED","PENDING_MERCHANT_ACKNOWLEDGEMENT","VOIDED"]},"payment-search-query":{"type":"object","title":"PaymentSearchQuery","properties":{"from":{"type":"string","format":"date-time","description":"default is today - 1day (yesterday)"},"to":{"type":"string","format":"date-time"},"paymentStatuses":{"type":"array","items":{"$ref":"#/components/schemas/merchant-payment-status"}},"reference":{"type":"string","description":"Merchant payment reference, used to reference Bancontact Company payment in merchant system. The characters used must comply with the [SEPA Requirements for an Extended Character Set (UNICODE Subset) - Best Practices | European Payments Council](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best).\n","examples":["19848995"]}}}}}},"schemaResolvedErrors":[]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-response-2","__idx":24},"children":["📥 Response"]},{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../apis/merchant-payment.openapi.yaml#/components/schemas/PaymentSearchResponse"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/PaymentSearchResponse"},"AbstractListResponsePayment":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"description":"Size of the elements returned in current page"},"totalPages":{"type":"integer","description":"Total number of pages in the backend for the list requested"},"totalElements":{"type":"integer","description":"Total number of elements in the list requested\n"},"number":{"type":"integer","description":"Current page number"}},"required":["size","totalPages","totalElements","number"]},"currency":{"type":"string","title":"Currency","description":"Currency code. Only EUR is supported [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)","enum":["EUR"],"default":"EUR"},"merchant-payment-status":{"type":"string","title":"MerchantPaymentStatus","description":"| Status | Description |\n|--------|-------------|\n| PENDING | The merchant has created the payment and and is pending to proceed with identify step. |\n| IDENTIFIED | The user has scanned the payment's QR code with the Bancontact Pay. |\n| AUTHORIZED | The user has confirmed the payment and the bank authorized it. |\n| AUTHORIZATION_FAILED | The authorization with the bank failed. |\n| FAILED | Something went wrong during the payment process(e.g authorization failed). |\n| SUCCEEDED | The payment has succeeded. |\n| CANCELLED | When the payment has been canceled after the user has scanned it, or the merchant has cancelled the payment.|\n| EXPIRED | The payment has expired. |\n| PENDING_MERCHANT_ACKNOWLEDGEMENT | The payment is waiting for the merchant to acknowledge. |\n| VOIDED | The payment has been voided |\n","enum":["PENDING","IDENTIFIED","AUTHORIZED","AUTHORIZATION_FAILED","SUCCEEDED","FAILED","CANCELLED","EXPIRED","PENDING_MERCHANT_ACKNOWLEDGEMENT","VOIDED"]},"payment_creditor_response":{"type":"object","title":"PaymentCreditorResponse","description":"Creditor account set to receive the payment","properties":{"profileId":{"type":"string","description":"The configuration ID of the Merchant","examples":["07e998f9-d932-4848-8b60-d5b5ae94b1b2"]},"merchantId":{"type":"string","description":"the Id of the merchant","examples":["dee718bb-3b6d-4312-9404-3d63d14529cc"]},"name":{"type":"string","description":"Merchant's company name that will be shown to the debtor","examples":["John"]},"iban":{"type":"string","description":"Creditor's Bank Account Iban to where the money will be sent to for this current payment","examples":["BE12 3456 7890 1234"]},"identifyCallbackUrl":{"type":"string","description":"callbackUrl to which the merchant will be notified about the payment identification","examples":["https://api.merchant.bancontact.net/identify"]},"callbackUrl":{"type":"string","description":"callbackUrl to which the merchant will be notified about the payment payout","examples":["https://api.merchant.bancontact.net/payment"]}}},"link":{"type":"object","title":"Link","properties":{"href":{"type":"string"}},"required":["href"]},"links":{"type":"object","title":"Links","description":"Provides information to navigate to our REST interfaces dynamically, by including hypermedia links to them. Note that for some links inclusion depends on the status of the payment (e.g. cancel link will be available on PENDING and refund on SUCCEEDED)","properties":{"self":{"$ref":"#/components/schemas/link","examples":["https://api.merchant.bancontact.net/5f91483d-78a7-4914-bc6f="]},"deeplink":{"$ref":"#/components/schemas/link","examples":["https://payconiq.com/pay/2/5f91483d-78a7-4914-bc6f="]},"qrcode":{"$ref":"#/components/schemas/link","examples":["https://qrcodegenerator.api.bancontact.net/qrcode?c=https%3A%2F%2Fpayconiq.com%2Fpay%2F2%2F5f91483d-78a7-4914-bc6f="]},"cancel":{"$ref":"#/components/schemas/link","examples":["https://api.merchant.bancontact.net/5f91483d-78a7-4914-bc6f="]},"refund":{"$ref":"#/components/schemas/link","examples":["https://merchant.api.bancontact.net/payments/5f91483d-78a7-4914-bc6f=/refunds"]},"checkout":{"$ref":"#/components/schemas/link","examples":["https://checkout.example.com?paymentId=12345&timestamp=1700000000000&token=abcdef1234567890"]}},"required":["self","deeplink","qrcode"]},"get_payment_response":{"type":"object","title":"GetPaymentResponse","description":"Response containing information on the requested payment.","properties":{"paymentId":{"type":"string","description":"id of the payment","minLength":24,"maxLength":24,"examples":["5f91483d-78a7-4914-bc6f="]},"createdAt":{"type":"string","format":"date-time","description":"the creation time of the payment"},"expireAt":{"type":"string","format":"date-time","description":"the time from which the payment will be expired"},"succeededAt":{"type":"string","format":"date-time","description":"if the payment is SUCCEEDED, then this field represents the date-time on which the payment was SUCCEEDED"},"currency":{"$ref":"#/components/schemas/currency"},"status":{"$ref":"#/components/schemas/merchant-payment-status"},"creditor":{"$ref":"#/components/schemas/payment_creditor_response"},"debtor":{"type":"object","properties":{"name":{"type":"string","description":"First name of Debtor","examples":["John"]},"iban":{"type":"string","description":"IBAN of Debtor masked","examples":["*************12636"]}}},"amount":{"type":"integer","format":"int64","description":"Amount in cents originally requested. If no amount was requested by creditor, this will be 0"},"description":{"type":"string","description":"merchant's description of the payment","examples":["5 coke."]},"message":{"type":"string","description":"debtor's message of the payment","examples":["Money send."]},"reference":{"type":"string","description":"Merchant payment reference, used to reference the Bancontact Company payment. The characters used must comply with the [SEPA Requirements for an Extended Character Set (UNICODE Subset) - Best Practices | European Payments Council](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best). in the merchant's system\n","examples":["19848995"]},"bulkId":{"type":"string","description":"Field used to reference a bulk batch, so the merchant can choose how to bulk the payments. Mandatory if  merchant profile does have bulking enabled, otherwise will miss from the response. If it's not set in the create call it will default to the value configured in the profile if it exists, otherwise its value will be defaulted by the application.","examples":["Bulk-1-200"]},"_links":{"$ref":"#/components/schemas/links"}},"required":["paymentId","createdAt","expireAt","currency","status","creditor","amount","totalAmount"]},"PaymentSearchResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractListResponsePayment"},{"type":"object","properties":{"details":{"type":"array","items":{"$ref":"#/components/schemas/get_payment_response"}}}}]}}}},"schemaResolvedErrors":[]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-error-codes-for-search","__idx":25},"children":["🔧 Error Codes for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"HTTP Status"},"children":["HTTP Status"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Code"},"children":["Code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["401"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNAUTHORIZED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["caller doesn’t have an api-key access token"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["403"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACCESS_DENIED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["api-key access token is invalid, creditor it's not a participant of the requested payment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["500"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TECHNICAL_ERROR"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Technical error in Payment service"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"-sample-request--search","__idx":26},"children":["🔍 Sample Request – ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-apis/merchant-payment.openapi.yaml","operationId":"search","parameters":{},"environments":{}},"children":[]}]},"headings":[{"value":"Invoice","id":"invoice","depth":1},{"value":"Introduction","id":"introduction","depth":2},{"value":"Process Flow","id":"process-flow","depth":2},{"value":"Prerequisites","id":"prerequisites","depth":3},{"value":"Involved Parties","id":"involved-parties","depth":3},{"value":"Step-by-Step Payment Flow","id":"step-by-step-payment-flow","depth":3},{"value":"Payment Flow Diagram","id":"payment-flow-diagram","depth":2},{"value":"Implementation Guide","id":"implementation-guide","depth":2},{"value":"1. Creating QR Code","id":"1-creating-qr-code","depth":3},{"value":"QR Code Parameters","id":"qr-code-parameters","depth":4},{"value":"QR code creation process","id":"qr-code-creation-process","depth":4},{"value":"Invoice Deeplink","id":"invoice-deeplink","depth":3},{"value":"2. The Bancontact  Callback","id":"2-the-bancontact--callback","depth":3},{"value":"📦 Request Body","id":"-request-body","depth":4},{"value":"📥 Response","id":"-response","depth":4},{"value":"🔍 Sample Request – callback","id":"-sample-request--callback","depth":4},{"value":"Callback Failure","id":"callback-failure","depth":4},{"value":"3. Get Payment Details","id":"3-get-payment-details","depth":3},{"value":"🧩 Path Parameters","id":"-path-parameters","depth":4},{"value":"📥 Response","id":"-response-1","depth":4},{"value":"🔧 Error Codes for merchant-get-payment","id":"-error-codes-for-merchant-get-payment","depth":4},{"value":"🔍 Sample Request – merchant-get-payment","id":"-sample-request--merchant-get-payment","depth":4},{"value":"4. Get Payment List","id":"4-get-payment-list","depth":3},{"value":"📦 Request Body","id":"-request-body-1","depth":4},{"value":"📥 Response","id":"-response-2","depth":4},{"value":"🔧 Error Codes for search","id":"-error-codes-for-search","depth":4},{"value":"🔍 Sample Request – search","id":"-sample-request--search","depth":4}],"frontmatter":{"seo":{"title":"Invoice"}},"lastModified":"2026-03-17T08:18:27.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/invoice/invoice052025v4","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}