Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Vipps payments


Private preview

Vipps payments Private preview

Learn how to accept Vipps, a common payment method in Norway.

Checkout

Elements

Direct API

Vipps is a single-use card wallet payment method used in Norway. It allows your customer to authenticate and approve payments using the Vipps app.

When your customer pays with Vipps, Stripe performs a card transaction using the card data we receive from Vipps. The processing of the card transaction is invisible to your integration, and Stripe immediately notifies you whether the payment succeeded or failed.

Use this guide to enable Vipps on Checkout, our hosted checkout form, and learn the differences between accepting payments using dynamic payment methods and manually configuring payment methods.

Determine compatibility

A Checkout Session must satisfy all of the following conditions to support Vipps payments:

  • Prices for all line items must be expressed in Norwegian Krona (currency code NOK ).

Set up Stripe Server-side

First, you need a Stripe account. Register now.

Use our official libraries to access the Stripe API from your application:

Command Line

Select a language

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

# Available as a gem
sudo gem install stripe

Gemfile

Select a language

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

# If you use bundler, you can add this line to your Gemfile
gem 'stripe'

Accept a payment

Note

This guide builds on the foundational accept a payment Checkout integration.

Enable Vipps as a payment method

When creating a new Checkout Session, you need to:

  1. Provide the vipps _ preview=v1 preview header with your API version on requests.
  2. Enable Vipps in your Dashboard. Stripe automatically displays Vipps to eligible customers using dynamic payment methods . If you currently specify payment _ method _ types , see the migration guide .
  3. Make sure all your line _ items use the nok currency.

Command Line

Select a language

cURL

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Fulfill your orders

After accepting a payment, learn how to fulfill orders.

Handle post-payment events

Stripe sends a payment_intent.succeeded event when the payment completes. Use the Dashboard, a custom webhook, or a partner solution to receive these events and run actions, like sending an order confirmation email to your customer, logging the sale in a database, or starting a shipping workflow.

Listen for these events rather than waiting on a callback from the client. On the client, the customer could close the browser window or quit the app before the callback executes, and malicious clients could manipulate the response. Setting up your integration to listen for asynchronous events also helps you accept more payment methods in the future. Learn about the differences between all supported payment methods.

  • Handle events manually in the Dashboard Use the Dashboard to view your payments, send email receipts, handle payouts, or retry failed payments.
  • Build a custom webhook Build a custom webhook handler to listen for events and build custom asynchronous payment flows. Test and debug your webhook integration locally with the Stripe CLI.
  • Integrate a prebuilt app Handle common business events, such as automation or marketing and sales, by integrating a partner application.

Test the integration

To test your integration in a testing environment, it redirects you to a test payment page where you can approve or decline the test payment.

In live mode, enter the phone number linked to Vipps to send a push notification to your Vipps mobile application. You can approve or decline the payment in the Vipps mobile application.

Authorize a payment and then capture later

Vipps supports separate authorization and capture with a 7-day hold period. Stripe cancels the PaymentIntent and sends a payment_intent.canceled event if the payment isn’t captured during the 7-day window.

Tell Stripe to authorize only

To indicate that you want separate authorization and capture, set capture_method to manual when creating the Checkout Session. This parameter instructs Stripe to only authorize the amount on the customer’s card linked to Vipps.

Command Line

Select a language

cURL

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

After the authorization is successful, Stripe sends a payment_intent.amount_capturable_updated event. See Events to learn more.

Capture the funds

After the authorization succeeds, the PaymentIntent’s status transitions to requires_capture and you can capture the authorized funds. Stripe only support manual captures of the full amount.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Optional Cancellation

Failed payments

Vipps transactions can fail if the underlying card transaction is declined. Learn more about card declines. In this case, the PaymentMethod detaches and the PaymentIntent’s status automatically transitions to requires_payment_method.

When the PaymentIntent’s status is requires_action, your customer must authenticate the payment within 5 minutes. If no action is taken after 5 minutes, the PaymentMethod detaches and the PaymentIntent’s status automatically transitions to requires_payment_method.

Refunds and disputes

Stripe performs a card transaction using standard card rails as part of a Vipps transaction. Refunds and disputes are subject to the Visa and Mastercard network rules.

See also

Last verified 2026-09-24

Is this helpful?