Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Atenção, esta página não se encontra disponível em Português
Payment-method icon

Vipps Component

Add Vipps to your Web Components integration.

On this page, you can find additional configuration for adding Vipps to your Components integration.

Before you begin

This page assumes you've already:

API reference

Select which endpoint you're integrating:

This is the default with Components v5.0.0 or later.
Parameter name Required Description
shopperStatement The description of this payment shown in the Vipps app. If you don't specify a shopperStatement, we'll use the value that you provided as the reference to populate this field.
If you implemented an advanced use case, or integrated Components before v5.0.0.
Parameter name Required Description
paymentMethod.telephoneNumber Used to prefill the shopper's phone number on the Vipps-hosted page. 
shopperStatement The description of this payment shown in the Vipps app. If you don't specify a shopperStatement, we'll use the value that you provided as the reference to populate this field.

Component configuration

Step 1: Create a DOM element

Create a DOM element on your checkout page, placing it where you want the payment method form to be rendered:

 <div id="vipps-container"></div>

Step 2: Create an instance of the Component

Use the create method of your AdyenCheckout instance, in this case checkout, to create the Component:

const vippsComponent =  checkout.create('vipps').mount('#vipps-container');

Recurring payments

To make recurring payments for Vipps, you need to:

  1. Create a shopper token when the shopper is making a Vipps payment.
  2. Use the token to make future payments for the shopper.

Create a token

To create a token, include in your /payments request:

  • storePaymentMethod: true
  • shopperReference: Your unique identifier for the shopper.

When the payment has been authorised, you receive a notification webhook containing:

  • eventCode: RECURRING_CONTRACT
  • originalReference: The pspReference of the initial payment.
  • pspReference: The token that you need to make recurring payments for this shopper.
Make sure that your server is able to receive RECURRING_CONTRACT as part of your standard notifications. If you have not requested this additional configuration yet, contact our Support Team.
{
   "live":"false",
   "notificationItems":[
      {
         "NotificationRequestItem":{
            "additionalData":{
               "vipps.userToken":"eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJodHRwczpcL1wvdmlwcHMubm8iLCJzdWIiOiIxNjQiLCJzY29wZSI6InBzcF9zdWJzY3JpcHRpb24iLCJpc3MiOiJWaXBwcyIsImlhdCI6MTU4ODg1NzgyNH0.P2RsrsdtHXqTeJRzkyilWRae-inqL3Go5iLYMaNCV_o",
               "vipps.variant" : "vipps",
               "recurring.shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
               "paymentMethodVariant":"vipps",
               "acquirerAccountCode":"VippsAcquirerAccount"
            },
            "amount":{
               "currency":"NOK",
               "value":1000
            },
            "eventCode":"RECURRING_CONTRACT",
            "eventDate":"2020-05-07T15:23:56+02:00",
            "merchantAccountCode":"YOUR_MERCHANT_ACCOUNT",
            "merchantReference":"YOUR_ORDER_NUMBER",
            "originalReference" : "88154795347618C",
            "paymentMethod":"vipps",
            "pspReference":"8315888578361992",
            "reason":"",
            "success":"true"
         }
      }
   ]
}

Make a payment with a token

To make a payment with saved payment details, include in your /payments request:

  • paymentMethod.type: vipps.
  • paymentMethod.storedPaymentMethodId: The pspReference from the RECURRING_CONTRACT notification. Alternatively, you can get this value by using the /listRecurringDetails endpoint.
  • shopperReference: The unique shopper identifier that you specified when creating the token.
  • shopperInteractionContAuth.
  • recurringProcessingModel: Subscription for subscription payments, or CardOnFile for one-off payments. For more information about these parameters, refer to our Tokenization guide.
    Payments with recurringProcessingModel: UnscheduledCardOnFile are currently not supported for Vipps.
    curl https://checkout-test.adyen.com/v67/payments \
    -H "x-API-key: YOUR_X-API-KEY" \
    -H "content-type: application/json" \
    -d '{
           "amount":{
              "value":1000,
              "currency":"NOK"
           },
           "paymentMethod":{
              "type":"vipps",
              "recurringDetailReference":"8315888578361992"
           },
           "reference":"YOUR_ORDER_NUMBER",
           "merchantAccount":"YOUR_MERCHANT_ACCOUNT",
           "shopperReference":"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
           "shopperInteraction":"ContAuth",
           "recurringProcessingModel": "Subscription"
    }'
    # Set your X-API-KEY with the API key from the Customer Area.
    adyen = Adyen::Client.new
    adyen.api_key = "YOUR_X-API-KEY"
     
    response = adyen.checkout.payments({
      :amount => {
        :currency => "NOK",
        :value => 1000
      },
      :reference => "YOUR_ORDER_NUMBER",
      :paymentMethod => {
        :type => "vipps",
        :recurringDetailReference => "8315888578361992"
      },
      :returnUrl => "https://your-company.com/checkout?shopperOrder=12xy..",
      :shopperReference => "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
      :merchantAccount => "YOUR_MERCHANT_ACCOUNT",
      :shopperInteraction => "ContAuth",
      :recurringProcessingModel => "Subscription"
    })
    // Set YOUR_X-API-KEY with the API key from the Customer Area.
    // Change to Environment.LIVE and add the Live URL prefix when you're ready to accept live payments.
    Client client = new Client("YOUR_X-API-KEY", Environment.TEST);
    Checkout checkout = new Checkout(client);
    
    PaymentsRequest paymentsRequest = new PaymentsRequest();
    
    String merchantAccount = "YOUR_MERCHANT_ACCOUNT";
    paymentsRequest.setMerchantAccount(merchantAccount);
    
    Amount amount = new Amount();
    amount.setCurrency("NOK");
    amount.setValue(1000L);
    paymentsRequest.setAmount(amount);
    
    DefaultPaymentMethodDetails paymentMethodDetails = new DefaultPaymentMethodDetails();
    paymentMethodDetails.setRecurringDetailReference("8315888578361992");
    paymentMethodDetails.setType("vipps");
    paymentsRequest.setPaymentMethod(paymentMethodDetails);
    
    paymentsRequest.setReference("YOUR_ORDER_NUMBER");
    paymentsRequest.setReturnUrl("https://your-company.com/checkout?shopperOrder=12xy..");
    paymentsRequest.setShopperInteraction("ContAuth");
    paymentsRequest.setRecurringProcessingModel("Subscription");
    
    PaymentsResponse paymentsResponse = checkout.payments(paymentsRequest);
    // Set your X-API-KEY with the API key from the Customer Area.
    $client = new \Adyen\Client();
    $client->setXApiKey("YOUR_X-API-KEY");
    $service = new \Adyen\Service\Checkout($client);
    
    $params = array(
      "amount" => array(
        "currency" => "NOK",
        "value" => 1000
      ),
      "reference" => "YOUR_ORDER_NUMBER",
      "paymentMethod" => array(
        "type" => "vipps",
        "recurringDetailReference" => "8315888578361992"
      ),
      "returnUrl" => "https://your-company.com/checkout?shopperOrder=12xy..",
      "shopperReference" => "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
      "recurringProcessingModel" => "Subscription",
      "shopperInteraction" => "ContAuth",
      "merchantAccount" => "YOUR_MERCHANT_ACCOUNT"
    );
    $result = $service->payments($params);
    #Set your X-API-KEY with the API key from the Customer Area.
    adyen = Adyen.Adyen()
    adyen.client.xapikey = 'YOUR_X-API-KEY'
    
    result = adyen.checkout.payments({
       'amount': {
          'value': 1000,
          'currency': 'NOK'
       },
       'reference': 'YOUR_ORDER_NUMBER',
       'paymentMethod': {
          'type': 'vipps',
          'recurringDetailReference': '8315888578361992'
       },
       'returnUrl': 'https://your-company.com/checkout?shopperOrder=12xy..',
       'shopperReference': 'YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j'
       'merchantAccount': 'YOUR_MERCHANT_ACCOUNT',
       'shopperInteraction':'ContAuth',
       'recurringProcessingModel': 'Subscription'
    })
    // Set your X-API-KEY with the API key from the Customer Area.
    var client = new Client ("YOUR_X-API-KEY", Environment.Test);
    var checkout = new Checkout(client);
    
    var amount = new Model.Checkout.Amount("NOK", 1000);
    var details = new Model.Checkout.DefaultPaymentMethodDetails{
      Type = "vipps",
      RecurringDetailReference = "8315888578361992"
    };
    var paymentsRequest = new Model.Checkout.PaymentRequest
    {
      Reference = "YOUR_ORDER_NUMBER",
      Amount = amount,
      ReturnUrl = @"https://your-company.com/checkout?shopperOrder=12xy..",
      MerchantAccount = "YOUR_MERCHANT_ACCOUNT",
      ShopperReference = "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
      RecurringProcessingModel = "Subscription",
      ShopperInteraction = "ContAuth",
      PaymentMethod = details
    };
    
    var paymentResponse = checkout.Payments(paymentsRequest);
    // Set your X-API-KEY with the API key from the Customer Area.
    const {Client, Config, CheckoutAPI} = require('@adyen/api-library');
    const config = new Config();
    // Set your X-API-KEY with the API key from the Customer Area.
    config.apiKey = '[API_KEY]';
    config.merchantAccount = '[YOUR_MERCHANT_ACCOUNT]';
    const client = new Client({ config });
    client.setEnvironment("TEST");
    const checkout = new CheckoutAPI(client);
    checkout.payments({
        amount: { currency: "NOK", value: 1000 },
        paymentMethod: {
            type: 'vipps',
            recurringDetailReference: "8315888578361992"
        },
        reference: "YOUR_ORDER_NUMBER",
        merchantAccount: config.merchantAccount,
        shopperReference: "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
        returnUrl: "https://your-company.com/checkout?shopperOrder=12xy..",
        shopperInteraction: "ContAuth",
        recurringProcessingModel: "Subscription"
    }).then(res => res);

Test and go live

To test your integration, install a Vipps test app, and use the following credentials:

  • Phone number: 98258879, 91437328, 46364980, 45902658, 97538802, 45480257, 45241041, 99290775, or 95686106, 92426303
  • PIN: 1236

Your test payments are processed using the following card, which is already included in the test app:

Card type Card number Expiry date CVC
Visa 4925054453544109 01/2031 727

Vipps payments in your Customer Area

Check the status of Vipps test payments in your Customer Area > Transactions > Payments.

Authorised Vipps payments

Because the plataforma de pagamentos da Adyen stores authorised payments under the card acquirer, authorised Vipps payments will show up in your Customer Area as Visa or Mastercard payments, with Shopper name: Vipps Placeholder. For example, payments that you make using the Vipps test app are shown as Visa payments.

To find all authorised Vipps payments in the payments list:

  • Enter accountHolderName: vipps in the search bar on top of the payments list.

Refused Vipps payments

Refused Vipps payment are stored by the plataforma de pagamentos da Adyen under the Vipps acquirer.

To find all refused Vipps payments in the payments list:

  • Filter by Payment method: Vipps.

Go live

Before you can accept live Vipps payments, you need to submit a request for Vipps in your live Customer Area.

See also