Skip to main content

Quick start

Before you begin​

The Report API is not available in the test environment.

Be aware that the API requests mentioned here are running on the production server, https://api.vipps.no. To reduce the risk of exposure, never store production API keys in Postman or any similar tools.

Getting your ledgers​

Step 1 - Setup​

You must have already signed up as an organization with Vipps MobilePay.

Get these API key values:

  • client_id - Client ID for a sales unit.
  • client_secret - Client secret for a sales unit.
  • Ocp-Apim-Subscription-Key - Subscription key for a sales unit.
  • Merchant-Serial-Number - The unique ID for a sales unit (optional but helpful for troubleshooting).

See How to find the API keys.

The example values in this guide must be replaced with the values for your sales unit and user. This applies to API keys, HTTP headers, references, phone numbers, and similar values.

Step 2 - Get an access token​

All the API endpoints require that you first obtain an API token.

For merchants using their API keys​

Merchants use the API keys for each of their sales units with the Access Token API: Access token endpoint.

Example request to POST:/accesstoken/get:

curl -X POST 'https://api.vipps.no/accesstoken/get' \
-H "Content-Type: application/json" \
-H 'client_id: YOUR-CLIENT-ID' \
-H 'client_secret: YOUR-CLIENT-SECRET' \
-H 'Ocp-Apim-Subscription-Key: YOUR-SUBSCRIPTION-KEY' \
-H 'Merchant-Serial-Number: YOUR-MSN' \
-H 'Vipps-System-Name: acme' \
-H 'Vipps-System-Version: 3.1.2' \
-H 'Vipps-System-Plugin-Name: acme-webshop' \
-H 'Vipps-System-Plugin-Version: 4.5.6' \
--data ''

Replace the value of the Vipps-System headers with your own values. See HTTP headers for more details.

note

When a partner uses partner keys for requests that are not for a specific merchant, the Merchant-Serial-Number can be omitted.

Step 3 - Get all ledgers​

Send GET:/settlement/v1/ledgers to get the ledgers you have access to.

curl -X GET https://api.vipps.no/settlement/v1/ledgers \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR-ACCESS-TOKEN" \

Step 4 - Get a funds ledger​

Send GET:/report/v2/ledgers/{ledgerId}/{topic}/dates/{ledgerDate} for a list of payments/transactions.

Set:

  • topic to funds.
  • ledgerId to the unique ledger ID
  • ledgerDate to a value in format YYYY-MM-DD (e.g., 2026-01-31).
curl -X GET https://api.vipps.no/report/v2/ledgers/{ledgerId}/funds/dates/{ledgerDate} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR-ACCESS-TOKEN" \

Step 5 - Get a fees ledger​

Send GET:/report/v2/ledgers/{ledgerId}/{topic}/dates/{ledgerDate} for a list of payments/transactions.

Set:

  • topic to fees.
  • ledgerId to the 6-digit value that is the unique ledger ID for the ledger you want.
  • ledgerDate to a value in format YYYY-MM-DD (e.g., 2026-01-31).
curl -X GET https://api.vipps.no/report/v2/ledgers/{ledgerId}/fees/dates/{ledgerDate} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR-ACCESS-TOKEN" \

Step 6 - Get a continuous feed of data (optional)​

If you want to continuously stream data as it becomes available, use the GET:/report/v2/ledgers/{ledgerId}/{topic}/feed endpoint without specifying a ledgerDate.

Set the following:

  • Set topic to funds or fees, for the type of ledger you require.
  • Set ledgerId to the unique ledger ID for the ledger you want.
curl -X GET https://api.vipps.no/report/v2/ledgers/{ledgerId}/{topic}/feed \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR-ACCESS-TOKEN" \

See: FAQ: Can I get real-time data?

Sample scripts​

For simple Python examples of how to use the Report API, see Sample scripts.