# Vipps MobilePay
source: https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/alt-pay-methods/a2a/vipps-mobilepay/index.md

## Overview {#overview}

Vipps MobilePay is a leading mobile wallet and alternative payment method widely used across Norway, Denmark, and Finland. Customers can make secure payments using their mobile number and a simple app, without entering cards or bank details. When Customers select Vipps MobilePay, they enter their registered mobile number and receive a payment request in the app. They can check the details and approve or decline it using a PIN or biometric, making checkout quick and easy.

Vipps MobilePay uses two main ways for payments:

* Card-based payments: The payment is made using a debit or credit card linked to the wallet of the user. It works like a traditional card payment but is approved on the mobile, making it easy and secure.
* Account-to-Account (A2A) payments: In some places, especially Norway, users can pay directly from their linked bank account. Money gets transferred from the customer's bank account to your account without using cards, making it faster and cheaper.

Both payment options work in one simple app with just one step. Vipps MobilePay gives you a single, easy-to-use payment solution that customers trust.

In short, Vipps MobilePay makes payments quick, secure, and flexible by supporting both cards and direct bank transfers.

## Prerequisites {#prerequisites}

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

* Be registered with your payment service provider. Contact your payment service provider for onboarding steps.
* Be registered as a merchant on Mastercard Gateway through your payment service provider.
* Be registered with Vipps MobilePay and have an active business account with them, Vipps MobilePay API credentials would be required for further configuration.
* Configure your profile on the Mastercard Gateway using the account details that your payment service provider has provided.

## Vipps MobilePay payer journey flow {#vipps-mobilepay-payer-journey-flow}

1. The customer selects Vipps MobilePay at checkout.
2. The customer is redirected to a page to enter their mobile number linked to their Vipps MobilePay account.
3. A payment request is sent to the Vipps MobilePay app linked to that number.
4. The customer reviews the request and approves or declines the payment in the app.
5. If approved, the payment is completed using a saved card or linked bank account within the app.
6. The customer is redirected back to the merchant site with a payment confirmation.

## Vipps MobilePay payments integration {#vipps-mobilepay-payments-integration}

### Vipps MobilePay payments through Direct Payment {#vipps-mobilepay-payments-through-direct-payment}

* Direct Payment integration allows you to offer Vipps MobilePay payments on your own checkout page.
* Vipps MobilePay payments is supported from the WS-API version 81 for Direct API and 85 for HCO onwards, but usage of version 100 onwards is recommended for both Direct API and HCO for optimal user experience.
* Make an Initiate Browser Payment request where 'sourceOfFunds.browserPayment.type = VIPPS_MOBILEPAY'

### VIPPS MobilePay Payments Transactions {#vipps-mobilepay-payments-transactions}

|     Transaction details     |                                             Value                                              |
|-----------------------------|------------------------------------------------------------------------------------------------|
| Payment type                | A2A and Card Payments                                                                          |
| Supported countries         | Norway, Denmark, and Finland                                                                   |
| Supported currencies        | NOK, DKK, and EUR                                                                              |
| Supported operations        | Purchase (PAY), REFUND (PARTIAL and FULL), AUTHORIZE, VOID OF AUTH, CAPTURE (PARTIAL and FULL) |
| Minimum transaction amount  | It depends on merchant configuration                                                           |
| Maximum transaction amount  | It depends on merchant configuration                                                           |
| Refund validity             | Not applicable                                                                                 |
| Chargeback                  | Not applicable                                                                                 |
| Transaction validity period | 10 minutes. The customer has up to 10 minutes to confirm the payment in their banking app      |

### Payment Options Inquiry {#payment-options-inquiry}

You can use a Payment Option Inquiry (POI) request to retrieve the payment options available to them and their associated attributes. The POI response can contain information about mandatory and optional fields, in addition to standard fields, limits, and general payment plan offer information for BNPL payment methods.

```bash
curl --request POST \ 

  --url https://{{host}}.gateway.mastercard.com/api/rest/version/latest/merchant/VIPPS_MTF_2/paymentOption... 

  --header 'Authorization: Basic bWVyY2hhbnQuSVJJU1BBWV9NVEY6OGE4NTc1NDA1ZThiMDI4MjRiNjc5MmJmYTM5MjlkMDA=' \ 

  --header 'Content-Type: application/json' 
```

```json
{
  "merchant": "VIPPS_MTF_2",
  "paymentTypes": {
    "browserPayment": [
      {
        "currencies": [
          {
            "currency": "EUR"
          }
        ],
        "description": "Vipps MobilePay is a Digital Wallet provider. It operates in Norway, Denmark and Finland",
        "displayName": "Vipps MobilePay",
        "logoUrl": "https://{{host}}.gateway.mastercard.com/bpui/bp/logo/79bc4982-3897-492e-a503-020d6f6103ab_VIPPS_MOBILEPA...",
        "maxAmount": 1000000000000,
        "minAmount": 0,
        "standardPayerData": [
          {
            "fieldName": "PHONE",
            "presence": "MANDATORY"
          },
          {
            "fieldName": "EMAIL",
            "presence": "OPTIONAL"
          },
          {
            "fieldName": "BILLING_ADDRESS",
            "presence": "OPTIONAL"
          },
          {
            "fieldName": "SHIPPING_ADDRESS",
            "presence": "OPTIONAL"
          },
          {
            "fieldName": "FIRST_NAME",
            "presence": "OPTIONAL"
          },
          {
            "fieldName": "LAST_NAME",
            "presence": "OPTIONAL"
          }
        ],
        "supportedCountries": [
          {
            "country": "FIN"
          }
        ],
        "type": "VIPPS_MOBILEPAY"
      }
    ]
  },
  "result": "SUCCESS",
  "supportedPaymentOperations": [
    {
      "supportedPaymentOperation": "PURCHASE"
    }
  ]
}
```

### Specific parameter fields {#specific-parameter-fields}

In addition to the [standard fields](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/alt-pay-methods/imp-brow-pay-int/index.md#browser-payments-through-hosted-checkout-integration) required in a browser payment request, include the following specific parameter fields in the [Initiate Browser Payment](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/rest/api-ops/index.md#browser-payment) request for VIPPS MobilePay Payments.

|    Parameter name    | Mandatory or Optional |
|----------------------|-----------------------|
| `customer.email`     | Optional              |
| `customer.firstName` | Optional              |
| `customer.lastName`  | Optional              |
| `customer.phone`     | Mandatory             |
| `billing.address`    | Optional              |
| `shipping.address`   | Optional              |
| `order.amount`       | Mandatory             |
| `order.currency`     | Mandatory             |

### Initiate Vipps MobilePay browser payment {#initiate-vipps-mobilepay-browser-payment}

```json
curl --request PUT \ 

  --url https://{{host}}.gateway.mastercard.com/api/rest/version/latest/merchant/VIPPS_MTF_2/order/6158717... \ 

  --header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzI6ZDlmMGUyNWZkMzU1ZmE4ZmQ0ZGVjNTY2ZDY0YzZkM2I=' \ 

  --header 'Content-Type: application/json' \ 

  --header 'User-Agent: insomnia/11.1.0' \ 

  --data 
  {
  "apiOperation": "INITIATE_BROWSER_PAYMENT",
  "billing": {
    "address": {
      "city": "Edinburgh",
      "company": "MPGS",
      "country": "FIN",
      "stateProvince": "Scotland",
      "street": "OceanPoint",
      "street2": "OceanDrive",
      "postcodeZip": "00061"
    }
  },
  "shipping": {
    "address": {
      "city": "Los Angeles",
      "company": "mastercard",
      "country": "FIN",
      "postcodeZip": "90001",
      "stateProvince": "CA",
      "street": "2nd Main",
      "street2": "lane 2"
    }
  },
  "browserPayment": {
    "operation": "PAY",
    "returnUrl": "https://{{host}}/apmDemoApp/complete.html"
  },
  "customer": {
    "account": {
      "id": "customerAccount"
    },
    "dateOfBirth": "1999-12-31",
    "email": "akash.mali@mastercard.com",
    "phone": "9876543210",
    "firstName": "Akash",
    "lastName": "Mali"
  },
  "order": {
    "amount": "875",
    "currency": "EUR"
  },
  "sourceOfFunds": {
    "browserPayment": {
      "type": "VIPPS_MOBILEPAY"
    },
    "type": "BROWSER_PAYMENT"
  }
}
```

```json
{
  "billing": {
    "address": {
      "city": "Edinburgh",
      "company": "MPGS",
      "country": "FIN",
      "postcodeZip": "00061",
      "stateProvince": "Scotland",
      "street": "OceanPoint",
      "street2": "OceanDrive"
    }
  },
  "browserPayment": {
    "interaction": {
      "status": "INITIATED",
      "timeInitiated": "2026-02-19T10:02:24.796Z"
    },
    "operation": "PAY",
    "redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.fi/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI5ODUxYzU3NS0yZjMzLTQ4M2MtOTY3NS01OGVlOGU2ODc2YmMiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwNyIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJGSSIsImV4cCI6MTc3MTY2ODE0NSwiaWF0IjoxNzcxNDk1MzQ2LCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.IOiBTa8PFqPvqq9ZeTyS0QdMqrhpsgkKxq_QX0XiaQdp7Hzhdi_eDkZQSVL-0x4zgoWaRw3SPj5CS5ykZ26aPsfGjkgQ4VQusTrnh7kJqTAdHFdRvC0RvvDsLjwYLoIKC5FnpNdWV_r9C8-Il7uXRufb1NiKaW-XsPXsKfq-BXO15Lk093d5aI5HCSGrtQiyRz9oL3jxGYTimlBOpHZWRvfAZuruXvduHMcOEM3sq8ahj_Pby2uei7VNGXiecRkef_2Dm16Tbfon1peqtJm18ryfNxdAjw3M9ijkKOGc7HAuucATiE4wVxvO3Cbdh5afzrrvREPSMgQd2M16xT9BoQ'>window.top.location.href='https://pay-mt.mobilepay.fi/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI5ODUxYzU3NS0yZjMzLTQ4M2MtOTY3NS01OGVlOGU2ODc2YmMiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwNyIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJGSSIsImV4cCI6MTc3MTY2ODE0NSwiaWF0IjoxNzcxNDk1MzQ2LCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.IOiBTa8PFqPvqq9ZeTyS0QdMqrhpsgkKxq_QX0XiaQdp7Hzhdi_eDkZQSVL-0x4zgoWaRw3SPj5CS5ykZ26aPsfGjkgQ4VQusTrnh7kJqTAdHFdRvC0RvvDsLjwYLoIKC5FnpNdWV_r9C8-Il7uXRufb1NiKaW-XsPXsKfq-BXO15Lk093d5aI5HCSGrtQiyRz9oL3jxGYTimlBOpHZWRvfAZuruXvduHMcOEM3sq8ahj_Pby2uei7VNGXiecRkef_2Dm16Tbfon1peqtJm18ryfNxdAjw3M9ijkKOGc7HAuucATiE4wVxvO3Cbdh5afzrrvREPSMgQd2M16xT9BoQ';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
    "returnUrl": "https://{{host}}/apmDemoApp/complete.html"
  },
  "customer": {
    "account": {
      "id": "customerAccount"
    },
    "email": "akash.mali@mastercard.com",
    "firstName": "Akash",
    "lastName": "Mali",
    "phone": "9876543210"
  },
  "gatewayEntryPoint": "WEB_SERVICES_API",
  "merchant": "VIPPS_MTF_2",
  "order": {
    "amount": 875,
    "chargeback": {
      "amount": 0,
      "currency": "EUR"
    },
    "creationTime": "2026-02-19T10:02:24.768Z",
    "currency": "EUR",
    "id": "615871768",
    "lastUpdatedTime": "2026-02-19T10:02:26.336Z",
    "merchantAmount": 875,
    "merchantCurrency": "EUR",
    "status": "INITIATED",
    "totalAuthorizedAmount": 0,
    "totalCapturedAmount": 0,
    "totalDisbursedAmount": 0,
    "totalRefundedAmount": 0
  },
  "response": {
    "acquirerCode": "ACCEPTED",
    "gatewayCode": "SUBMITTED",
    "gatewayRecommendation": "NO_ACTION"
  },
  "result": "SUCCESS",
  "shipping": {
    "address": {
      "city": "Los Angeles",
      "company": "mastercard",
      "country": "FIN",
      "postcodeZip": "90001",
      "stateProvince": "CA",
      "street": "2nd Main",
      "street2": "lane 2"
    }
  },
  "sourceOfFunds": {
    "browserPayment": {
      "type": "VIPPS_MOBILEPAY"
    },
    "type": "BROWSER_PAYMENT"
  },
  "timeOfLastUpdate": "2026-02-19T10:02:26.336Z",
  "timeOfRecord": "2026-02-19T10:02:24.794Z",
  "transaction": {
    "acquirer": {
      "id": "OPTTY_MTF_TESTACQ1",
      "merchantId": "6ucZGXNMaLbChely"
    },
    "amount": 875,
    "currency": "EUR",
    "id": "450395139",
    "source": "INTERNET",
    "stan": "0",
    "type": "PAYMENT"
  },
  "version": "100"
}
```

### Retrieve order {#retrieve-order}

```bash
curl --request GET \ 

  --url https://{{host}}.gateway.mastercard.com/api/rest/version/latest/merchant/VIPPS_MTF_1/order/18519464 \ 

  --header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzE6MjAzZWE5MDBlNWY0YTY5NzI1YTZmMGM2ODJlMjdjZmI=' \ 

  --header 'User-Agent: insomnia/11.1.0'
```

```json
{
  "amount": 602,
  "billing": {
    "address": {
      "city": "Edinburgh",
      "company": "MPGS",
      "country": "DNK",
      "postcodeZip": "00061",
      "stateProvince": "Scotland",
      "street": "OceanPoint",
      "street2": "OceanDrive"
    }
  },
  "chargeback": {
    "amount": 0,
    "currency": "DKK"
  },
  "creationTime": "2026-04-23T11:31:58.764Z",
  "currency": "DKK",
  "customer": {
    "account": {
      "id": "customerAccount"
    },
    "phone": "9876543210"
  },
  "id": "18519464",
  "lastUpdatedTime": "2026-04-23T11:32:39.525Z",
  "merchant": "VIPPS_MTF_1",
  "merchantAmount": 602,
  "merchantCurrency": "DKK",
  "result": "SUCCESS",
  "shipping": {
    "address": {
      "city": "Los Angeles",
      "company": "mastercard",
      "country": "DNK",
      "postcodeZip": "90001",
      "stateProvince": "CA",
      "street": "2nd Main",
      "street2": "lane 2"
    }
  },
  "sourceOfFunds": {
    "browserPayment": {
      "type": "VIPPS_MOBILEPAY"
    },
    "type": "BROWSER_PAYMENT"
  },
  "status": "AUTHORIZED",
  "totalAuthorizedAmount": 602,
  "totalCapturedAmount": 0,
  "totalDisbursedAmount": 0,
  "totalRefundedAmount": 0,
  "transaction": [
    {
      "billing": {
        "address": {
          "city": "Edinburgh",
          "company": "MPGS",
          "country": "DNK",
          "postcodeZip": "00061",
          "stateProvince": "Scotland",
          "street": "OceanPoint",
          "street2": "OceanDrive"
        }
      },
      "browserPayment": {
        "interaction": {
          "status": "COMPLETED",
          "timeCompleted": "2026-04-23T11:32:39.515Z",
          "timeInitiated": "2026-04-23T11:31:58.798Z"
        },
        "operation": "AUTHORIZE",
        "redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg'>window.top.location.href='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
        "returnUrl": "https://{{host}}/apmDemoApp/complete.html"
      },
      "customer": {
        "account": {
          "id": "customerAccount"
        },
        "phone": "9876543210"
      },
      "gatewayEntryPoint": "WEB_SERVICES_API",
      "merchant": "VIPPS_MTF_1",
      "order": {
        "amount": 602,
        "chargeback": {
          "amount": 0,
          "currency": "DKK"
        },
        "creationTime": "2026-04-23T11:31:58.764Z",
        "currency": "DKK",
        "id": "18519464",
        "lastUpdatedTime": "2026-04-23T11:32:39.525Z",
        "merchantAmount": 602,
        "merchantCurrency": "DKK",
        "status": "AUTHORIZED",
        "totalAuthorizedAmount": 602,
        "totalCapturedAmount": 0,
        "totalDisbursedAmount": 0,
        "totalRefundedAmount": 0
      },
      "response": {
        "acquirerCode": "PENDING CAPTURE",
        "acquirerMessage": "Authorization Approved, Pending Capture",
        "gatewayCode": "APPROVED",
        "gatewayRecommendation": "NO_ACTION"
      },
      "result": "SUCCESS",
      "shipping": {
        "address": {
          "city": "Los Angeles",
          "company": "mastercard",
          "country": "DNK",
          "postcodeZip": "90001",
          "stateProvince": "CA",
          "street": "2nd Main",
          "street2": "lane 2"
        }
      },
      "sourceOfFunds": {
        "browserPayment": {
          "type": "VIPPS_MOBILEPAY"
        },
        "type": "BROWSER_PAYMENT"
      },
      "timeOfLastUpdate": "2026-04-23T11:32:39.525Z",
      "timeOfRecord": "2026-04-23T11:31:58.795Z",
      "transaction": {
        "acquirer": {
          "id": "OPTTY_MTF_TESTACQ1",
          "merchantId": "6ucZGXNMaLbChely"
        },
        "amount": 602,
        "currency": "DKK",
        "id": "624511957",
        "source": "INTERNET",
        "stan": "0",
        "type": "AUTHORIZATION"
      },
      "version": "100"
    }
  ]
}
```

### Capture {#capture}

```json
curl --request PUT \ 

  --url https://{{host}}.gateway.mastercard.com/api/rest/version/latest/merchant/VIPPS_MTF_1/order/18519464/transaction/6105110913 \ 

  --header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzE6MjAzZWE5MDBlNWY0YTY5NzI1YTZmMGM2ODJlMjdjZmI=' \ 

  --header 'Content-Type: application/json' \ 

  --header 'User-Agent: insomnia/11.1.0' \ 

  --data 
{
  "apiOperation": "CAPTURE",
  "transaction": {
    "amount": "602",
    "currency": "DKK"
  }
}
```

```json
{
  "browserPayment": {
    "interaction": {
      "status": "COMPLETED",
      "timeCompleted": "2026-04-23T11:32:39.515Z",
      "timeInitiated": "2026-04-23T11:31:58.798Z"
    },
    "operation": "AUTHORIZE",
    "redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg'>window.top.location.href='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
    "returnUrl": "https://{{host}}/apmDemoApp/complete.html"
  },
  "customer": {
    "account": {
      "id": "customerAccount"
    }
  },
  "gatewayEntryPoint": "WEB_SERVICES_API",
  "merchant": "VIPPS_MTF_1",
  "order": {
    "amount": 602,
    "chargeback": {
      "amount": 0,
      "currency": "DKK"
    },
    "creationTime": "2026-04-23T11:31:58.764Z",
    "currency": "DKK",
    "id": "18519464",
    "lastUpdatedTime": "2026-04-23T11:34:38.206Z",
    "merchantAmount": 602,
    "merchantCurrency": "DKK",
    "status": "CAPTURED",
    "totalAuthorizedAmount": 602,
    "totalCapturedAmount": 602,
    "totalDisbursedAmount": 0,
    "totalRefundedAmount": 0
  },
  "response": {
    "acquirerCode": "APPROVED",
    "gatewayCode": "APPROVED"
  },
  "result": "SUCCESS",
  "sourceOfFunds": {
    "browserPayment": {
      "type": "VIPPS_MOBILEPAY"
    },
    "type": "BROWSER_PAYMENT"
  },
  "timeOfLastUpdate": "2026-04-23T11:34:38.206Z",
  "timeOfRecord": "2026-04-23T11:34:36.389Z",
  "transaction": {
    "acquirer": {
      "id": "OPTTY_MTF_TESTACQ1",
      "merchantId": "6ucZGXNMaLbChely"
    },
    "amount": 602,
    "currency": "DKK",
    "id": "2251609133",
    "source": "INTERNET",
    "stan": "0",
    "type": "CAPTURE"
  },
  "version": "100"
}
```

### Refund {#refund}

```json
curl --request PUT \ 

  --url https://{{host}}.gateway.mastercard.com/api/rest/version/latest/merchant/VIPPS_MTF_1/order/18519464/transaction/6105110913 \ 

  --header 'Authorization: Basic bWVyY2hhbnQuVklQUFNfTVRGXzE6MjAzZWE5MDBlNWY0YTY5NzI1YTZmMGM2ODJlMjdjZmI=' \ 

  --header 'Content-Type: application/json' \ 

  --header 'User-Agent: insomnia/11.1.0' \ 

  --data 
{
  "apiOperation": "REFUND",
  "transaction": {
    "amount": "602",
    "currency": "DKK"
  }
}
```

```json
{
  "browserPayment": {
    "interaction": {
      "status": "COMPLETED",
      "timeCompleted": "2026-04-23T11:32:39.515Z",
      "timeInitiated": "2026-04-23T11:31:58.798Z"
    },
    "operation": "AUTHORIZE",
    "redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg'>window.top.location.href='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
    "returnUrl": "https://{{host}}/apmDemoApp/complete.html"
  },
  "customer": {
    "account": {
      "id": "customerAccount"
    }
  },
  "gatewayEntryPoint": "WEB_SERVICES_API",
  "merchant": "VIPPS_MTF_1",
  "order": {
    "amount": 602,
    "chargeback": {
      "amount": 0,
      "currency": "DKK"
    },
    "creationTime": "2026-04-23T11:31:58.764Z",
    "currency": "DKK",
    "id": "18519464",
    "lastUpdatedTime": "2026-04-23T11:35:46.469Z",
    "merchantAmount": 602,
    "merchantCurrency": "DKK",
    "status": "REFUNDED",
    "totalAuthorizedAmount": 602,
    "totalCapturedAmount": 602,
    "totalDisbursedAmount": 0,
    "totalRefundedAmount": 602
  },
  "response": {
    "acquirerCode": "APPROVED",
    "gatewayCode": "APPROVED"
  },
  "result": "SUCCESS",
  "sourceOfFunds": {
    "browserPayment": {
      "type": "VIPPS_MOBILEPAY"
    },
    "type": "BROWSER_PAYMENT"
  },
  "timeOfLastUpdate": "2026-04-23T11:35:46.469Z",
  "timeOfRecord": "2026-04-23T11:35:45.821Z",
  "transaction": {
    "acquirer": {
      "id": "OPTTY_MTF_TESTACQ1",
      "merchantId": "6ucZGXNMaLbChely"
    },
    "amount": 602,
    "currency": "DKK",
    "id": "6105110913",
    "source": "INTERNET",
    "stan": "0",
    "type": "REFUND"
  },
  "version": "100"
}{
  "browserPayment": {
    "interaction": {
      "status": "COMPLETED",
      "timeCompleted": "2026-04-23T11:32:39.515Z",
      "timeInitiated": "2026-04-23T11:31:58.798Z"
    },
    "operation": "AUTHORIZE",
    "redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg'>window.top.location.href='https://pay-mt.mobilepay.dk/?token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJlUGF5bWVudCIsInV1aWQiOiI3NDExNGQ0ZS00NjEyLTQyNGYtOTkyMC1mY2U3MjgyODc4MTIiLCJ0eXBlIjoiUEFZTUVOVCIsIm1lcmNoYW50U2VyaWFsTnVtYmVyIjoiMjA2MDkwOCIsIjFmYSI6InRydWUiLCJ1cmwiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vdmlwcHMtZXBheW1lbnQtbGVnYWN5LW1vYmlsZS1hcGkvbGFuZGluZy1wYWdlIiwiYnJhbmQiOiJNT0JJTEVQQVkiLCJtYXJrZXQiOiJESyIsImV4cCI6MTc3NzExNjcxOSwiaWF0IjoxNzc2OTQzOTIwLCJpc3MiOiJodHRwczovL2FwaXRlc3QudmlwcHMubm8vZXBheW1lbnQtYXBpLyIsImF1ZCI6ImVwYXltZW50In0.rfFN9QD_2hRUVfGKPROjehxHZTijg_Mda-5ZPz6evoFxOSSEjphLRSF8r4cskm_tSYCFAOq-g0iiw_rrlZerqKSOcugaY0GQ1k1a9tTbLQcCj1LdCsGA9X6qu618MkhGbxu2DMttM2Y6l_rIsYUzkjTye9ndZzLyXgsdnlYk536D9XvTtERlP3683A8DWbLPWqgbJqdT1sz2gQ570SbVXLfBYaz0ySlt7fVAFQrIkXnNNbQj_QtvsgcE7agEXsMVxFfImhRi-KrHgq5yiOuQtgNaePSiBA6add3Pf8L_AwkLBpnSpkb80l4H7YHO_42N8bVLuYYLUa6efPyT_5icCg';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
    "returnUrl": "https://{{host}}/apmDemoApp/complete.html"
  },
  "customer": {
    "account": {
      "id": "customerAccount"
    }
  },
  "gatewayEntryPoint": "WEB_SERVICES_API",
  "merchant": "VIPPS_MTF_1",
  "order": {
    "amount": 602,
    "chargeback": {
      "amount": 0,
      "currency": "DKK"
    },
    "creationTime": "2026-04-23T11:31:58.764Z",
    "currency": "DKK",
    "id": "18519464",
    "lastUpdatedTime": "2026-04-23T11:35:46.469Z",
    "merchantAmount": 602,
    "merchantCurrency": "DKK",
    "status": "REFUNDED",
    "totalAuthorizedAmount": 602,
    "totalCapturedAmount": 602,
    "totalDisbursedAmount": 0,
    "totalRefundedAmount": 602
  },
  "response": {
    "acquirerCode": "APPROVED",
    "gatewayCode": "APPROVED"
  },
  "result": "SUCCESS",
  "sourceOfFunds": {
    "browserPayment": {
      "type": "VIPPS_MOBILEPAY"
    },
    "type": "BROWSER_PAYMENT"
  },
  "timeOfLastUpdate": "2026-04-23T11:35:46.469Z",
  "timeOfRecord": "2026-04-23T11:35:45.821Z",
  "transaction": {
    "acquirer": {
      "id": "OPTTY_MTF_TESTACQ1",
      "merchantId": "6ucZGXNMaLbChely"
    },
    "amount": 602,
    "currency": "DKK",
    "id": "6105110913",
    "source": "INTERNET",
    "stan": "0",
    "type": "REFUND"
  },
  "version": "100"
}
```

## Interpretation of the transaction result {#interpretation-of-the-transaction-result}

This table shows the transaction response codes for the possible scenarios that you may encounter after initiating the Vipps MobilePay payments.

|           Initiate browser payment response           |                      What this means                       |
|-------------------------------------------------------|------------------------------------------------------------|
| `response.gatewayCode = SUBMITTED` `result = SUCCESS` | Redirect the payer using the URL provided in the response. |

|                Retrieve transaction or retrieve order response                |                                                                                                              What this means                                                                                                              |
|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `response.gatewayCode = APPROVED` `result = SUCCESS`                          | The payment is successful.                                                                                                                                                                                                                |
| `response.gatewayCode = PENDING` `result = PENDING`                           | The Mastercard Gateway is waiting for a confirmation from the acquirer about the payment result. Retry `RETRIEVE_TRANSACTION` or listen to notifications from the Mastercard Gateway.                                                     |
| `response.gatewayCode = CANCELLED` `result = FAILURE`                         | The payer has cancelled 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 inquire with the acquirer for the reason for payment failure, or retry the `RETRIEVE_TRANSACTION`. |
| `response.gatewayCode = TIMED_OUT` `result = FAILURE`                         | Treat as declined. The Mastercard Gateway ensures the transaction is not successful or reverts the transaction.                                                                                                                           |

## Vipps MobilePay payments through Hosted Checkout {#vipps-mobilepay-payments-through-hosted-checkout}

Hosted Checkout integration allows you to collect payment details from your payer through an interaction that the gateway hosts and displays. From the API version 85 and later, VIPPS MobilePay payments 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 integration](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/alt-pay-methods/imp-brow-pay-int/index.md#browser-payments-through-hosted-checkout-integration).

## Webhook notifications {#webhook-notifications}

If you have subscribed to Mastercard Gateway webhook notifications, you will receive additional notifications on the paymentStatus.
