Skip to main content

Vipps MobilePay Loyalty API (1.0.0)

Download OpenAPI specification:Download

Loyalty API for merchants and CXP partners to push loyalty program data to the Vipps MobilePay benefits tab.

This is a write-only, event-based API. All updates are sent as typed events to a single endpoint. Each event has an action field that determines the payload schema.

Authentication

All requests must include:

  • Authorization: Bearer <token> (access token from Vipps Access Token API standard authentication)
  • Merchant-Serial-Number header identifying the merchant
  • Ocp-Apim-Subscription-Key header with a valid API subscription key
  • Vipps-System-Name, Vipps-System-Version, Vipps-System-Plugin-Name, Vipps-System-Plugin-Version

Event model

Every request is an event with:

  • eventId — unique identifier for the event
  • timestamp — when the event happened (RFC 3339 / ISO 8601 date-time)
  • action — what happened (determines payload schema)
  • payload.contactId — merchant member identifier for the customer-club member
  • payload.phoneNumber — member phone number in E.164 format
  • payload — action-specific data

Supported actions

Actions are grouped into per-product-type families so the surface scales as new product types (e.g. deals) are added later. See event-taxonomy.md for the design rationale.

Action Description
benefits.member.registered New member joined the loyalty program
benefits.member.updated Member data replaced (full member state)
benefits.member.deleted Member left the loyalty program
benefits.coupon.updated A coupon was created or changed
benefits.coupon.deleted A coupon was removed
benefits.coupons.synced Full replacement of all coupons for a member
benefits.stampCard.updated A stamp card was created or progressed
benefits.stampCard.deleted A stamp card was removed
benefits.stampCards.synced Full replacement of all stamp cards for a member
benefits.bonusCheck.created A bonus check/voucher was assigned
benefits.bonusCheck.deleted A bonus check/voucher was removed

Push a loyalty event

Single endpoint for all loyalty program updates. The action field determines which payload schema is expected.

Events are processed asynchronously. A 200 response means the event was accepted and will be processed.

Authorizations:
(bearerAuthapiKeymerchantSerial)
header Parameters
Vipps-System-Name
required
string <= 30 characters
Example: acme-benefits-platform

Name of the integrating system

Vipps-System-Version
required
string <= 30 characters
Example: 3.1.2

Version of the integrating system

Vipps-System-Plugin-Name
required
string <= 30 characters
Example: acme-benefits-connector

Name of plugin/module for the integration

Vipps-System-Plugin-Version
required
string <= 30 characters
Example: 1.0.0

Version of plugin/module for the integration

Request Body schema: application/json
required
eventId
required
string

Unique identifier for this event

timestamp
required
string <date-time>

Timestamp for when the event occurred

action
required
string
required
object (MemberRegisteredPayload)

Responses

Request samples

Content type
application/json
Example
{
  • "eventId": "evt-8a49f7b9-89cb-4e59-9db0-7f2f66a0a151",
  • "timestamp": "2025-01-15T10:00:00Z",
  • "action": "benefits.member.registered",
  • "payload": {
    }
}

Response samples

Content type
application/json
{
  • "status": "accepted",
  • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c"
}