# payconiq
source: https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/alt-pay-methods/a2a/payconiq/index.md

payconiq is an online payment method in Belgium and Luxembourg. Customers use a payconiq mobile app to make online payments that are secure, and confirmed immediately.

To pay with payconiq:

* Customers who use your website are redirected to the payconiq website where a QR code is generated. The customer uses their payconiq mobile application on their mobile device to scan the QR code and make the payment. After payment is complete, the customer's browser is redirected to your website where they receive notification about the success or failure of the payment.
* Customers who use your mobile application are redirected to the payconiq mobile application. They review order details and authorize the payment, and then return to your mobile application where they receive immediate notification about the success or failure of the payment.

payconiq browser payments are supported for transactions originating from Belgium or Luxembourg and the supported currency is EUR.

This page describes integration details specific to payconiq. It is recommended that you read the [integration guidelines for browser payments](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/imp-brow-pay-int/index.md), before building the payconiq integration.

## Prerequisites {#prerequisites}

To offer the payconiq payment method through Mastercard Gateway, you must:

* Be registered with your browser payments service provider.
* Have your profile configured on the gateway using the details of your account with the browser payments service provider.
* Have a bank account in one of the supported currencies registered against your account at your browser payments service provider.

## payconiq transactions {#payconiq-transactions}

|  Country   | Currency |
|------------|----------|
| Belgium    | EUR      |
| Luxembourg | EUR      |

Warning: payconiq supports Hosted Checkout. Payers can select the country and complete the payment.

## payconiq integration {#payconiq-integration}

### payconiq through Hosted Checkout {#payconiq-through-hosted-checkout}

Hosted Checkout integration allows you to collect payment details from your payer through an interaction that the Mastercard Gateway hosts and displays.

From the API version 71 onward, payconiq is automatically available as a payment method once your payment service provider enables and configures you for this payment method.

For more information, see [Browser Payments through Hosted Checkout](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/imp-brow-pay-int/index.md#browser-payments-through-hosted-checkout-integration).

### payconiq through Direct Payment {#payconiq-through-direct-payment}

Direct Payment integration allows you to offer a payconiq payment method on your own checkout page. payconiq is supported from Mastercard Gateway API version 71 and later.

#### Common fields {#common-fields}

In addition to the standard fields required in a browser payment request, provide the following fields in the Initiate Browser Payment request:

* `sourceOfFunds.type` is set to PAYCONIQ
* `browserPayment.operation`: PAY
* `appPayment.returnUrl`: Payer returns to your mobile application using this field.
* `sourceOfFunds.provided.payconiq.bankAccountHolder`: Name of the bank account holder for the bank account of a payer. This is an optional field.
* `sourceOfFunds.provided.payconiq.bankAccountCountryCode`: The country where payers have their bank account. Provide the ISO 3166 alpha-3 country code for this country.

#### Initiate Browser Payment response fields {#initiate-browser-payment-response-fields}

* `browserPayment.redirectUrl` is used in case of QR code flow, where payer is redirected to payconiq website to scan the QR code to complete the payment using the payconiq application.
* `appPayment.redirectUrl` is used in case of app-to-app flow where payer is redirected from your application to the payconiq mobile application to complete the payment.

#### Preferred language {#preferred-language}

You can set the language that you prefer payconiq to use for pages that are displayed to the payer. You can do so by providing the `browserPayment.preferredLanguage` field in the Initiate Browser Payment request. However, the language will be used only if payconiq supports it.

### Sample code to initiate payconiq payment {#sample-code-to-initiate-payconiq-payment}

```json
{
  "apiOperation": "INITIATE_BROWSER_PAYMENT",
  "browserPayment": {
    "operation": "PAY"
  },
  "appPayment": {
    "returnUrl": "https://www.abc.com"
  },
  "customer": {
    "email": "john.wick@abc.com"
  },
  "order": {
    "amount": "10",
    "currency": "EUR",
    "item": [
      {
        "name": "Diesel Jeans",
        "quantity": "1",
        "unitPrice": "5"
      },
      {
        "name": "as Trainers",
        "quantity": "1",
        "unitPrice": "5"
      }
    ]
  },
  "sourceOfFunds": {
    "type": "PAYCONIQ",
    "provided": {
      "payconiq": {
        "countryCode": "BEL"
      }
    }
  }
} 
```

```json
{
  "appPayment": {
    "redirectUrl": "https://test.gateway.mastercard.com/bpui/po/out/APP-BP-809cca25390100cc3b5de62b935f2aba",
    "returnUrl": "https://www.abc.com"
  },
  "browserPayment": {
    "interaction": {
      "status": "INITIATED",
      "timeInitiated": "2024-07-26T10:49:38.944Z"
    },
    "operation": "PAY",
    "redirectUrl": "https://test.gateway.mastercard.com/bpui/po/out/BP-809cca25390100cc3b5de62b935f2aba"
  },
  "customer": {
    "email": "john.wick@abc.com"
  },
  "gatewayEntryPoint": "WEB_SERVICES_API",
  "merchant": "PAYCONIQ_PPRO",
  "order": {
    "amount": 10.00,
    "chargeback": {
      "amount": 0,
      "currency": "EUR"
    },
    "creationTime": "2024-07-26T10:49:38.911Z",
    "currency": "EUR",
    "fundingStatus": "IN_PROGRESS",
    "id": "118364541",
    "item": [
      {
        "name": "Diesel Jeans",
        "quantity": 1,
        "unitPrice": 5
      },
      {
        "name": "as Trainers",
        "quantity": 1,
        "unitPrice": 5
      }
    ],
    "itemAmount": 10.00,
    "lastUpdatedTime": "2024-07-26T10:49:40.432Z",
    "merchantAmount": 10.00,
    "merchantCurrency": "EUR",
    "status": "INITIATED",
    "totalAuthorizedAmount": 0,
    "totalCapturedAmount": 0,
    "totalDisbursedAmount": 0,
    "totalRefundedAmount": 0
  },
  "response": {
    "acquirerCode": "PENDING",
    "gatewayCode": "SUBMITTED",
    "gatewayRecommendation": "NO_ACTION"
  },
  "result": "SUCCESS",
  "sourceOfFunds": {
    "provided": {
      "payconiq": {
        "countryCode": "BEL"
      }
    },
    "type": "PAYCONIQ"
  },
  "timeOfLastUpdate": "2024-07-26T10:49:40.432Z",
  "timeOfRecord": "2024-07-26T10:49:38.940Z",
  "transaction": {
    "acquirer": {
      "id": "PAYCONIQ_PPRO",
      "merchantId": "MPGTESTCONTRACT",
      "timeZone": "-0500",
      "transactionId": "1210875327"
    },
    "amount": 10.00,
    "currency": "EUR",
    "funding": {
      "status": "IN_PROGRESS"
    },
    "id": "290433485",
    "source": "INTERNET",
    "stan": "0",
    "type": "PAYMENT"
  },
  "version": "100"
} 
```

## payconiq payment workflow {#payconiq-payment-workflow}

Payers can make a payment with payconiq, in either of the following ways:

* Hosted QR code
* Application to Application

## Make a payment through hosted QR code {#make-a-payment-through-hosted-qr-code}

To make a payment through the hosted QR code, payers must do the following:

1. On the merchant screen, the payer selects payconiq as the payment method.  

   Payer is redirected to the payconiq hosted checkout page with a QR code which has steps listed on how to complete the payment.

2. Payer scans the QR code through their mobile device.  

   After the payer scans the QR code, the payconiq mobile application displays.

3. Payer makes the payment in application.

4. Payer reviews the merchant details, order reference, and payment amount.

5. Payer verifies their identity to confirm the transaction.

### Make a payment through application-to-application flow {#make-a-payment-through-application-to-application-flow}

To make a payment through application-to-application flow, payers must do the following:

1. Through the payconiq website, payer installs the payconiq application on their mobile.
2. Payer is redirected to the payconiq application from the merchant application to complete the transaction.

Warning: If a payer does not have the payconiq application installed on their mobile then they are redirected either to the Play Store or App Store as applicable.

## How to Interpret the Transaction Result {#how-to-interpret-the-transaction-result}

The table shows the transaction Response Codes for the possible scenarios that you may encounter after initiating the payconiq payment.

|                                                               **Initiate Browser Payment Response**                                                               |                                                                                                                **What This Means...**                                                                                                                |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `response.gatewayCode=SUBMITTED` `result=SUCCESS`                                                                                                                 | Redirect the payer using the URL provided in the response.                                                                                                                                                                                           |
| **Retrieve Transaction/Retrieve Order Response**                                                                                                                  | **What This Means...**                                                                                                                                                                                                                               |
| `response.gatewayCode=APPROVED` `result=SUCCESS` `sourceOfFunds.provided.ideal.bankAccountHolder` `sourceOfFunds.provided.ideal.bic` (if provided on the request) | The payment is successful.                                                                                                                                                                                                                           |
| `response.gatewayCode=PENDING` `result=PENDING`                                                                                                                   | The Mastercard Gateway is waiting for a notification from the acquirer about the payment result. Try `RETRIEVE_TRANSACTION` again later or listen to notifications from the Mastercard Gateway.                                                      |
| `response.gatewayCode=CANCELLED` `result=FAILURE`                                                                                                                 | The payer has canceled the interaction for this payment. Offer the payer the option to try another payment method.                                                                                                                                   |
| `response.gatewayCode=DECLINED or ACQUIRER_SYSTEM_ERROR` `result=FAILURE`                                                                                         | The payment was declined. Offer the payer the option to try another payment method. In the case of an `ACQUIRER_SYSTEM_ERROR` you may want to inquire with the acquirer the reason for payment failure, or you can try `RETRIEVE_TRANSACTION` again. |
| `response.gatewayCode=TIMED_OUT` `result=FAILURE`                                                                                                                 | Treat this as a declined payment. The Mastercard Gateway will attempt to ensure that the transaction is not successful or will revert the transaction.                                                                                               |

## Refunds {#refunds}

You can either do a partial or full refund for payconiq payments. Ensure that you are configured for refunds on the gateway and on your account at your browser payments service provider.

## Testing your integration {#testing-your-integration}

The gateway provides a browser payments emulator that allows you to \[test your payconiq integration\].
