Skip to main content

Vipps MobilePay Loyalty API (1.0.0)

Download OpenAPI specification:Download

Loyalty API for merchants and customer experience partners (CXP) 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.

📚 See the API Guide for more information.

Authentication

Send Authorization: Bearer <token> with a merchant-level access token carrying the loyalty-api:write scope, obtained from POST:/miami/v1/token with your merchant-level keys. See the quick start. The token's merchant identity decides which merchant an event belongs to; it does not appear in the request or response body.

Validation and errors

Every request is validated synchronously before it is accepted. The normal outcomes are 202 or a 4xx. Errors are RFC 9457 problem details (application/problem+json) with type, title, status, detail, instance, traceId and extraDetails[{name, reason}]; type links to the matching section of the errors page. Constraints declared on the schemas (maxLength, minimum, pattern, maxItems) are enforced, plus: timestamp at most 5 minutes in the future, unique id within *.synced arrays, validUntil not before validFrom, absolute http(s) links, body at most 240 KiB (413), and Content-Type: application/json (415). Existence of the member, coupon or campaign is never checked at ingress.

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 202 response means the event was accepted and will be processed.

Authorizations:
bearerAuth
header Parameters
Vipps-System-Name
string <= 30 characters
Example: acme-benefits-platform

Name of the integrating system. Recommended, not required; helps us debug your integration.

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

Version of the integrating system. Recommended, not required; helps us debug your integration.

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

Name of plugin/module for the integration. Recommended, not required; helps us debug your integration.

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

Version of plugin/module for the integration. Recommended, not required; helps us debug your integration.

Request Body schema: application/json
required
eventId
required
string [ 1 .. 128 ] characters

Unique identifier for this event

timestamp
required
string <date-time>

Timestamp for when the event occurred. Must not be more than 5 minutes in the future.

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": "string"
}