---
title: "Vimond Default Payment Provider API — compact index for LLMs"
description: "Compact index for Stripe/Vipps checkout, webhooks, customer, agreements, and receipts."
---

<!-- /openapi/default-payment-provider.llms.md — generated from /openapi/default-payment-provider.yaml; do not edit by hand -->

# Vimond Default Payment Provider API — compact index for LLMs

> Hub-maintained spec from `vimond-default-payment-provider`. Pair with [payment](/docs/payment/) for the full VIA purchase flow (product groups, orders).

- **Per-tag slices:** `/openapi/default-payment-provider/tags/<slug>.openapi.yml` (e.g. `stripe-checkout`, `vipps`)
- Canonical YAML: `/openapi/default-payment-provider.yaml`
- Scalar: `/reference/default-payment-provider/` — use tag sections for Stripe vs Vipps operations
- Guides: [payment](/docs/payment/), [stripe-login-payment-flow](/docs/stripe-login-payment-flow/), [vipps-login-payment-flow](/docs/vipps-login-payment-flow/), [authentication](/docs/authentication/), [svod](/docs/svod/), [tvod](/docs/tvod/)

## API basics

- **Base URL:** `https://{tenant}.default-payment-provider.{environment}.vmnd.tv`
- **Auth:** Bearer JWT on checkout/customer routes; `Stripe-Signature` on Stripe webhooks.
- **Checkout:** `POST /api/v1/pay/stripe/checkout` (SVOD), `POST /api/v1/pay/stripe/tvod` (TVOD) — responses include Stripe `clientSecret`.
- **Platform orders:** Product discovery and order APIs remain on the [Vimond REST API](/reference/vimond-rest-api/).

## Tags overview

| Tag | Operations | Per-tag slice | Description |
|-----|------------|---------------|-------------|
| Stripe Checkout | 2 | [`openapi/default-payment-provider/tags/stripe-checkout.openapi.yml`](/openapi/default-payment-provider/tags/stripe-checkout.openapi.yml) |  |
| Stripe Webhooks | 2 | [`openapi/default-payment-provider/tags/stripe-webhooks.openapi.yml`](/openapi/default-payment-provider/tags/stripe-webhooks.openapi.yml) |  |
| Customer | 5 | [`openapi/default-payment-provider/tags/customer.openapi.yml`](/openapi/default-payment-provider/tags/customer.openapi.yml) |  |
| Agreements | 7 | [`openapi/default-payment-provider/tags/agreements.openapi.yml`](/openapi/default-payment-provider/tags/agreements.openapi.yml) |  |
| Vipps | 4 | [`openapi/default-payment-provider/tags/vipps.openapi.yml`](/openapi/default-payment-provider/tags/vipps.openapi.yml) |  |
| Vipps Webhooks | 1 | [`openapi/default-payment-provider/tags/vipps-webhooks.openapi.yml`](/openapi/default-payment-provider/tags/vipps-webhooks.openapi.yml) |  |
| Receipts | 4 | [`openapi/default-payment-provider/tags/receipts.openapi.yml`](/openapi/default-payment-provider/tags/receipts.openapi.yml) |  |
| Auth | 1 | [`openapi/default-payment-provider/tags/auth.openapi.yml`](/openapi/default-payment-provider/tags/auth.openapi.yml) |  |
| Config | 1 | [`openapi/default-payment-provider/tags/config.openapi.yml`](/openapi/default-payment-provider/tags/config.openapi.yml) |  |
| Migration | 9 | [`openapi/default-payment-provider/tags/migration.openapi.yml`](/openapi/default-payment-provider/tags/migration.openapi.yml) |  |
| Health | 2 | [`openapi/default-payment-provider/tags/health.openapi.yml`](/openapi/default-payment-provider/tags/health.openapi.yml) |  |

## Operations

### Tag: Stripe Checkout (2)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/stripe-checkout.openapi.yml`](/openapi/default-payment-provider/tags/stripe-checkout.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### POST /api/v1/pay/stripe/checkout — `postV1PayStripeCheckout`
**Tag:** Stripe Checkout • **Auth:** bearerAuth • **Responses:** 200, 400, 401, 500
**Create Stripe subscription checkout**
Creates an SVOD Stripe subscription for the authenticated end user. Typical flow: 1) Validate request payload 2) Authenticate end user via JWT 3) Create/update Stripe customer and default payment method 4) Resolve Stripe price from…

#### POST /api/v1/pay/stripe/tvod — `postV1PayStripeTvod`
**Tag:** Stripe Checkout • **Auth:** bearerAuth • **Responses:** 200, 401, 500
**Create Stripe TVOD payment intent**
Creates a Stripe one-time payment flow (TVOD) and returns a Stripe PaymentIntent `clientSecret`.

### Tag: Stripe Webhooks (2)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/stripe-webhooks.openapi.yml`](/openapi/default-payment-provider/tags/stripe-webhooks.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### POST /api/v1/webhook/stripe/ — `postV1WebhookStripe`
**Tag:** Stripe Webhooks • **Auth:** inherits root • **Responses:** 200, 400
query: test • headers: Stripe-Signature
**Receive Stripe webhook (shared tenant mode)**
Receives Stripe events, validates signature, resolves tenancy by Stripe account id, and dispatches to internal handlers. This endpoint represents the preferred Stripe webhook handling approach in this service.

#### POST /api/v1/webhook/stripe/{organization} — `postV1WebhookStripe2`
**Tag:** Stripe Webhooks • **Auth:** inherits root • **Responses:** 200, 400
path: organization • query: test • headers: Stripe-Signature
**Receive Stripe webhook (legacy organization path)**
Legacy variant using organization path parameter.

### Tag: Customer (5)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/customer.openapi.yml`](/openapi/default-payment-provider/tags/customer.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### GET /api/v1/customer — `listV1Customer`
**Tag:** Customer • **Auth:** bearerAuth • **Responses:** 200, 401, 404
**Get customer for authenticated end user**

#### POST /api/v1/customer/ — `postV1Customer`
**Tag:** Customer • **Auth:** bearerAuth • **Responses:** 200, 401
**Create customer for authenticated end user**

#### PUT /api/v1/customer/ — `putV1Customer`
**Tag:** Customer • **Auth:** bearerAuth • **Responses:** 200, 401, 404
**Update customer (default payment method)**

#### GET /api/v1/customer/paymentMethods — `listV1CustomerPaymentMethods`
**Tag:** Customer • **Auth:** bearerAuth • **Responses:** 200, 401, 500
**Get payment methods for authenticated end user**

#### DELETE /api/v1/customer/paymentMethods/{paymentMethodId}/remove — `deleteV1CustomerPaymentMethodsRemove`
**Tag:** Customer • **Auth:** bearerAuth • **Responses:** 200, 401, 404, 409, 500
path: paymentMethodId
**Remove payment method**
Removes a payment method. If user has active Stripe agreements and only one payment method, removal is blocked to prevent orphaned subscriptions.

### Tag: Agreements (7)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/agreements.openapi.yml`](/openapi/default-payment-provider/tags/agreements.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### GET /api/v1/agreements — `listV1Agreements`
**Tag:** Agreements • **Auth:** bearerAuth • **Responses:** 200, 401, 500
query: includeDrafts
**Get agreements for authenticated end user**

#### POST /api/v1/agreements/{agreementId}/stop — `postV1AgreementsStop`
**Tag:** Agreements • **Auth:** bearerAuth • **Responses:** 200, 401, 500
path: agreementId
**Stop agreement (end-user)**

#### GET /api/v1/agreements/admin/{encodedId} — `getV1AgreementsAdmin`
**Tag:** Agreements • **Auth:** bearerAuth • **Responses:** 200, 401, 500
path: encodedId • query: includeDrafts
**Get agreements for end user (admin)**

#### POST /api/v1/agreements/admin/{encodedId}/{agreementId}/stop — `postV1AgreementsAdminStop`
**Tag:** Agreements • **Auth:** bearerAuth • **Responses:** 200, 401, 500
path: encodedId, agreementId • query: immediateStop
**Stop agreement (admin)**

#### POST /api/v1/agreements/admin/create — `postV1AgreementsAdminCreate`
**Tag:** Agreements • **Auth:** bearerAuth • **Responses:** 200, 500
**Create admin agreement**

#### PATCH /api/v1/agreements/vipps/{agreementId}/force-accept — `patchV1AgreementsVippsForceaccept`
**Tag:** Agreements • **Auth:** bearerAuth • **Responses:** 200, 500
path: agreementId
**Force accept Vipps agreement (test endpoint)**

#### DELETE /api/v1/agreements/vipps/{agreementId}/force-delete — `deleteV1AgreementsVippsForcedelete`
**Tag:** Agreements • **Auth:** bearerAuth • **Responses:** 200, 500
path: agreementId
**Force delete Vipps agreement (test endpoint)**

### Tag: Vipps (4)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/vipps.openapi.yml`](/openapi/default-payment-provider/tags/vipps.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### POST /api/v1/pay/vipps/checkout — `postV1PayVippsCheckout`
**Tag:** Vipps • **Auth:** bearerAuth • **Responses:** 200, 400, 401, 500
**Initialize Vipps checkout**

#### GET /api/v1/pay/vipps/recurring/agreements/{agreementId} — `getV1PayVippsRecurringAgreements`
**Tag:** Vipps • **Auth:** bearerAuth • **Responses:** 200, 401
path: agreementId
**Get Vipps agreement status**

#### POST /api/v1/provider/vipps/login/oauth2/token/{organizationName}/{tenantName} — `postV1ProviderVippsLoginOauth2Token`
**Tag:** Vipps • **Auth:** inherits root • **Responses:** 200
path: organizationName, tenantName
**Exchange Vipps OAuth token**

#### GET /api/v1/provider/vipps/login/parameters/{organizationName}/{tenantName} — `getV1ProviderVippsLoginParameters`
**Tag:** Vipps • **Auth:** inherits root • **Responses:** 200
path: organizationName, tenantName
**Get Vipps login parameters**

### Tag: Vipps Webhooks (1)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/vipps-webhooks.openapi.yml`](/openapi/default-payment-provider/tags/vipps-webhooks.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### POST /api/v1/webhook/vipps/{organization}/{tenant} — `postV1WebhookVipps`
**Tag:** Vipps Webhooks • **Auth:** inherits root • **Responses:** 200, 400
path: organization, tenant
**Receive Vipps webhook event**

### Tag: Receipts (4)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/receipts.openapi.yml`](/openapi/default-payment-provider/tags/receipts.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### GET /api/v1/receipt — `listV1Receipt`
**Tag:** Receipts • **Auth:** bearerAuth • **Responses:** 200, 401
**Get all receipts for authenticated end user**

#### GET /api/v1/receipt/{receiptId} — `getV1Receipt`
**Tag:** Receipts • **Auth:** bearerAuth • **Responses:** 200, 401, 404, 500
path: receiptId
**Get one receipt for authenticated end user**

#### GET /api/v1/receipt/admin/{encodedId} — `getV1ReceiptAdmin`
**Tag:** Receipts • **Auth:** bearerAuth • **Responses:** 200, 401
path: encodedId
**Get all receipts for user (admin)**

#### GET /api/v1/receipt/admin/{encodedId}/{receiptId} — `getV1ReceiptAdmin2`
**Tag:** Receipts • **Auth:** bearerAuth • **Responses:** 200, 401, 404, 500
path: encodedId, receiptId
**Get one receipt for user (admin)**

### Tag: Auth (1)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/auth.openapi.yml`](/openapi/default-payment-provider/tags/auth.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### POST /api/v1/auth/setup — `postV1AuthSetup`
**Tag:** Auth • **Auth:** bearerAuth • **Responses:** 200, 401
**Initialize entitlement object for authenticated user**

### Tag: Config (1)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/config.openapi.yml`](/openapi/default-payment-provider/tags/config.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### GET /api/v1/config/errors — `listV1ConfigErrors`
**Tag:** Config • **Auth:** bearerAuth • **Responses:** 200, 401
**Get configuration errors (admin)**

### Tag: Migration (9)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/migration.openapi.yml`](/openapi/default-payment-provider/tags/migration.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### POST /api/v1/migrate/{organizationId}/{tenantId}/{productGroupId}/{randomValue} — `postV1Migrate`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, productGroupId, randomValue
**Migration v1 from CSV (internal/admin)**

#### POST /api/v1/migrate/dashboard/agreements/{organizationId}/{tenantId}/{randomValue} — `postV1MigrateDashboardAgreements`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, randomValue
**Update agreements for dashboard (internal/admin)**

#### POST /api/v1/migrate/dashboard/charges/{organizationId}/{tenantId}/{randomValue} — `postV1MigrateDashboardCharges`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, randomValue
**Update charges for dashboard (internal/admin)**

#### POST /api/v1/migrate/fix/agreements/{organizationId}/{tenantId}/{randomValue} — `postV1MigrateFixAgreements`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, randomValue
**Fix migrated agreements from CSV (internal/admin)**

#### POST /api/v1/migrate/fix/charges/{organizationId}/{tenantId}/{randomValue} — `postV1MigrateFixCharges`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, randomValue
**Sync charges from provider APIs (internal/admin)**

#### GET /api/v1/migrate/prepare/{organizationId}/{tenantId}/{tenantName}/{numberOfUsers}/{randomValue} — `getV1MigratePrepare`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, tenantName, numberOfUsers, randomValue
**Prepare migration users (internal/admin)**

#### POST /api/v1/migrate/recreate/{organizationId}/{tenantId}/{tenantName}/{isProd}/{randomValue} — `postV1MigrateRecreate`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, tenantName, isProd, randomValue
**Process recreated users CSV (internal/admin)**

#### POST /api/v1/migrate/special/{organizationId}/{tenantId}/{productGroupId}/{randomValue} — `postV1MigrateSpecial`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, productGroupId, randomValue
**Special user migration from CSV (internal/admin)**

#### POST /api/v1/migrate/v2/{organizationId}/{tenantId}/{secretValue} — `postV1MigrateV2`
**Tag:** Migration • **Auth:** inherits root • **Responses:** 200
path: organizationId, tenantId, secretValue
**Migration v2 (Vipps + Stripe) from CSV (internal/admin)**

### Tag: Health (2)

**Per-tag slice:** [`/openapi/default-payment-provider/tags/health.openapi.yml`](/openapi/default-payment-provider/tags/health.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

#### GET /admin/health/live — `listAdminHealthLive`
**Tag:** Health • **Auth:** inherits root • **Responses:** 200
**Liveness check**

#### GET /admin/health/ready — `listAdminHealthReady`
**Tag:** Health • **Auth:** inherits root • **Responses:** 200
**Readiness check**

---

_Generated from `/openapi/default-payment-provider.yaml` — 38 operations across 11 tags. Re-run `npm run openapi-derivatives` to refresh._
