openapi: 3.0.0
info:
  description: >-
    The Login API enables users to log in to a service using their Vipps or
    MobilePay credentials.

    See the [API Guide](/docs/APIs/login-api) for more details.

    For the userinfo endpoint, see [Userinfo API Guide](/api/userinfo).
  title: Login API
  version: 1.1.0
servers:
  - url: https://api.vipps.no
    description: >-
      Production environment (uses the production API keys, the official app and
      live data)
  - url: https://apitest.vipps.no
    description: Test environment (uses the test API keys, the test app and test data)
paths:
  /access-management-1.0/access/.well-known/openid-configuration:
    get:
      description: |-
        The well-known endpoint can be used to retrieve configuration
        information for OpenID Connect clients.
        To learn more about this endpoint, please refer to the specification at
        https://openid.net/specs/openid-connect-discovery-1_0.html
      tags:
        - Login API
      parameters:
        - $ref: '#/components/parameters/Vipps-System-Name'
        - $ref: '#/components/parameters/Vipps-System-Version'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Name'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Version'
      summary: OpenID configuration endpoint
      operationId: discoverOpenIDConfiguration
      responses:
        '200':
          description: wellKnown
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WellKnown'
        '401':
          description: genericError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: genericError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /access-management-1.0/access/oauth2/auth:
    get:
      description: >-
        The resource owner (end user) is redirected to this endpoint at the

        beginning of the authentication process,

        and it is used to obtain an authorization grant.

        To learn more about this endpoint please refer to the specification at
        https://tools.ietf.org/html/rfc6749#section-3.1
      tags:
        - Login API
      parameters:
        - $ref: '#/components/parameters/Vipps-System-Name'
        - $ref: '#/components/parameters/Vipps-System-Version'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Name'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Version'
      summary: The OAuth 2.0 authorize endpoint
      operationId: oauthAuth
      responses:
        '302':
          description: Empty response
        '401':
          description: genericError
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: genericError
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /access-management-1.0/access/oauth2/token:
    post:
      security:
        - Basic-Authorization: []
        - Bearer-Authorization: []
      description: >-
        The token endpoint is used by the client to obtain an access token by

        presenting its authorization grant.

        To learn more about this endpoint please refer to the specification at
        https://tools.ietf.org/html/rfc6749#section-3.2
      tags:
        - Login API
      summary: The OAuth 2.0 token endpoint
      parameters:
        - $ref: '#/components/parameters/Merchant-Serial-Number'
        - $ref: '#/components/parameters/Vipps-System-Name'
        - $ref: '#/components/parameters/Vipps-System-Version'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Name'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Version'
      operationId: oauth2Token
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grant_type:
                  type: string
                  example: authorization_code
                  description: Value MUST be authorization_code.
                code:
                  type: string
                  example: >-
                    RkVyljMpecv-2Yxc2dzAh8lEtXvkhJAcHNfbkf8CEh4.pt5pTqDgWk8lik-LHuAE2yQGBganPsSa04JkNnSbsaN
                  description: >-
                    The authorization code received from the authorization
                    server as a query param on the redirect_uri.
                redirect_uri:
                  type: string
                  example: https://example.com/login-result-page
                  description: >-
                    The redirect URL which the user agent is redirected to after
                    finishing a login.

                    If the URL is using a custom URL scheme, such as myapp://, a
                    path is required: myapp://path-to-something.

                    The URL must be exactly the same as the one specified on
                    portal.vippsmobilepay.com.

                    Be extra careful with trailing slashes and URL-encoded
                    entities.
                client_id:
                  description: >-
                    The `client_id` is available on portal.vippsmobilepay.com,
                    under the 'Developer' section.

                    This parameter is required if the token endpoint
                    authentication method is set to `client_secret_post`.
                  type: string
                  example: fb492b5e-7907-4d83-ba20-c7fb60ca35de
                client_secret:
                  description: >-
                    The `client_secret` is available on
                    portal.vippsmobilepay.com, under the 'Developer' section.

                    This parameter is required if the token endpoint
                    authentication method is set to `client_secret_post`.
                  type: string
                code_verifier:
                  description: >-
                    Required if PKCE, https://tools.ietf.org/html/rfc7636, is
                    used.
                  type: string
                  example: RuzfVVEowM_e9wkyTjNCmCz4PKL4MOh2FACGhGRsAq4
              required:
                - grant_type
                - code
                - redirect_uri
      responses:
        '200':
          description: oauth2TokenResponse
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OauthTokenResponse'
        '401':
          description: genericError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: genericError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /access-management-1.0/access/.well-known/jwks.json:
    get:
      description: |-
        This endpoint returns JWK (JSON Web Keys) to be used as public keys for
        verifying OpenID Connect ID Tokens and,
        if enabled, OAuth 2.0 JWT (JSON Web Token, the access token).
      tags:
        - Login API
      parameters:
        - $ref: '#/components/parameters/Vipps-System-Name'
        - $ref: '#/components/parameters/Vipps-System-Version'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Name'
        - $ref: '#/components/parameters/Vipps-System-Plugin-Version'
      summary: JSON Web Keys Discovery
      operationId: wellKnown
      responses:
        '200':
          description: JSONWebKeySet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSONWebKeySet'
        '500':
          description: genericError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /vipps-login-ciba/api/backchannel/authentication:
    post:
      security:
        - Basic-Authorization: []
      summary: CIBA authentication endpoint
      description: >-
        This endpoint is used to start merchant initiated logins according to
        the Client initiated backchannel authentication standard.
      tags:
        - Login API
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                authenticationRequestPayload:
                  $ref: '#/components/schemas/AuthenticationRequestPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationResponsePayload'
  /vipps-login-ciba/api/v1/user-exists:
    post:
      security:
        - Basic-Authorization: []
      summary: Endpoint for checking if user exists
      description: >-
        Enables validating if a user exists before actually initiating a
        authentication
      tags:
        - Login API
      operationId: user-exists
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                userExistsRequest:
                  $ref: '#/components/schemas/UserExistsRequestPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserExistsResponsePayload'
components:
  securitySchemes:
    Basic-Authorization:
      type: http
      scheme: basic
      description: >-
        This authorization scheme should be used if the token endpoint
        authentication method is set to `client_secret_basic`.

        `client_secret_basic` is the default authentication method. Read more
        about token endpoint authentication here:

        [`token authentication
        methods.`](/docs/APIs/login-api/api-guide/core-concepts/#token-endpoint-authentication-method)
    Bearer-Authorization:
      type: http
      scheme: bearer
      description: >-
        This authorization scheme should be used if you are a partner making API
        calls on behalf of your merchants.

        Read more about partner keys in Login:

        [`partner keys.`](/docs/APIs/login-api/api-guide/partner-keys/)

        The access token is fetched from the

        [`POST:/accesstoken/get`](/api/access-token#tag/Authorization-Service/operation/fetchAuthorizationTokenUsingPost)

        endpoint.
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://base_url/oauth2/auth
          tokenUrl: https://base_url/oauth2/token
          scopes:
            openid: Request an OpenID Connect ID Token
  schemas:
    JSONWebKey:
      type: object
      required:
        - use
        - kty
        - kid
        - alg
      properties:
        alg:
          description: >-
            The 'alg' (algorithm) parameter identifies the algorithm intended
            for use for the key.  The values used should either be registered in
            the IANA 'JSON Web Signature and Encryption Algorithms' registry
            established by [JWA] or be a value that contains a collision
            resistant name.
          type: string
          example: RS256
        crv:
          type: string
          example: P-256
        d:
          type: string
          example: >-
            T_N8I-6He3M8a7X1vWt6TGIx4xB_GP3Mb4SsZSA4v-orvJzzRiQhLlRR81naWYxfQAYt5isDI6_C2L9bdWo4FFPjGQFvNoRX-_sBJyBI_rl-TBgsZYoUlAj3J92WmY2inbA-PwyJfsaIIDceYBC-eX-xiCu6qMqkZi3MwQAFL6bMdPEM0z4JBcwFT3VdiWAIRUuACWQwrXMq672x7fMuaIaHi7XDGgt1ith23CLfaREmJku9PQcchbt_uEY-hqrFY6ntTtS4paWWQj86xLL94S-Tf6v6xkL918PfLSOTq6XCzxvlFwzBJqApnAhbwqLjpPhgUG04EDRrqrSBc5Y1BLevn6Ip5h1AhessBp3wLkQgz_roeckt-ybvzKTjESMuagnpqLvOT7Y9veIug2MwPJZI2VjczRc1vzMs25XrFQ8DpUy-bNdp89TmvAXwctUMiJdgHloJw23Cv03gIUAkDnsTqZmkpbIf-crpgNKFmQP_EDKoe8p_PXZZgfbRri3NoEVGP7Mk6yEu8LjJhClhZaBNjuWw2-KlBfOA3g79mhfBnkInee5KO9mGR50qPk1V-MorUYNTFMZIm0kFE6eYVWFBwJHLKYhHU34DoiK1VP-svZpC2uAMFNA_UJEwM9CQ2b8qe4-5e9aywMvwcuArRkAB5mBIfOaOJao3mfukKAE
        dp:
          type: string
          example: >-
            G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oimYwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_NmtuYZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0
        dq:
          type: string
          example: >-
            s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUUvMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk
        e:
          type: string
          example: AQAB
        k:
          type: string
          example: GawgguFyGrWKav7AX4VKUg
        kid:
          description: |-
            The "kid" (key ID) parameter is used to match a specific key. This
            is used, for example, to choose among a set of keys within a JWK Set
            during key rollover. The format of the "kid" value is
            unspecified.  When "kid" values are used within a JWK Set, different
            keys within the JWK Set SHOULD use distinct "kid" values.  (One
            example in which different keys might use the same "kid" value is if
            they have different "kty" (key type) values but are considered to be
            equivalent alternatives by the application using them.)  The "kid"
            value is a case-sensitive string.
          type: string
          x-go-name: Kid
          example: 1603dfe0af8f4596
        kty:
          description: |-
            The "kty" (key type) parameter identifies the cryptographic
            algorithm

            family used with the key, such as "RSA" or "EC". "kty" values should

            either be registered in the IANA "JSON Web Key Types" registry

            established by [JWA] or be a value that contains a Collision-

            Resistant Name.  The "kty" value is a case-sensitive string.
          type: string
          example: RSA
        'n':
          type: string
          example: >-
            vTqrxUyQPl_20aqf5kXHwDZrel-KovIp8s7ewJod2EXHl8tWlRB3_Rem34KwBfqlKQGp1nqah-51H4Jzruqe0cFP58hPEIt6WqrvnmJCXxnNuIB53iX_uUUXXHDHBeaPCSRoNJzNysjoJ30TIUsKBiirhBa7f235PXbKiHducLevV6PcKxJ5cY8zO286qJLBWSPm-OIevwqsIsSIH44Qtm9sioFikhkbLwoqwWORGAY0nl6XvVOlhADdLjBSqSAeT1FPuCDCnXwzCDR8N9IFB_IjdStFkC-rVt2K5BYfPd0c3yFp_vHR15eRd0zJ8XQ7woBC8Vnsac6Et1pKS59pX6256DPWu8UDdEOolKAPgcd_g2NpA76cAaF_jcT80j9KrEzw8Tv0nJBGesuCjPNjGs_KzdkWTUXt23Hn9QJsdc1MZuaW0iqXBepHYfYoqNelzVte117t4BwVp0kUM6we0IqyXClaZgOI8S-WDBw2_Ovdm8e5NmhYAblEVoygcX8Y46oH6bKiaCQfKCFDMcRgChme7AoE1yZZYsPbaG_3IjPrC4LBMHQw8rM9dWjJ8ImjicvZ1pAm0dx-KHCP3y5PVKrxBDf1zSOsBRkOSjB8TPODnJMz6-jd5hTtZxpZPwPoIdCanTZ3ZD6uRBpTmDwtpRGm63UQs1m5FWPwb0T2IF0
        p:
          type: string
          example: >-
            6NbkXwDWUhi-eR55Cgbf27FkQDDWIamOaDr0rj1q0f1fFEz1W5A_09YvG09Fiv1AO2-D8Rl8gS1Vkz2i0zCSqnyy8A025XOcRviOMK7nIxE4OH_PEsko8dtIrb3TmE2hUXvCkmzw9EsTF1LQBOGC6iusLTXepIC1x9ukCKFZQvdgtEObQ5kzd9Nhq-cdqmSeMVLoxPLd1blviVT9Vm8-y12CtYpeJHOaIDtVPLlBhJiBoPKWg3vxSm4XxIliNOefqegIlsmTIa3MpS6WWlCK3yHhat0Q-rRxDxdyiVdG_wzJvp0Iw_2wms7pe-PgNPYvUWH9JphWP5K38YqEBiJFXQ
        q:
          type: string
          example: >-
            0A1FmpOWR91_RAWpqreWSavNaZb9nXeKiBo0DQGBz32DbqKqQ8S4aBJmbRhJcctjCLjain-ivut477tAUMmzJwVJDDq2MZFwC9Q-4VYZmFU4HJityQuSzHYe64RjN-E_NQ02TWhG3QGW6roq6c57c99rrUsETwJJiwS8M5p15Miuz53DaOjv-uqqFAFfywN5WkxHbraBcjHtMiQuyQbQqkCFh-oanHkwYNeytsNhTu2mQmwR5DR2roZ2nPiFjC6nsdk-A7E3S3wMzYYFw7jvbWWoYWo9vB40_MY2Y0FYQSqcDzcBIcq_0tnnasf3VW4Fdx6m80RzOb2Fsnln7vKXAQ
        qi:
          type: string
          example: >-
            GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzgUIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rxyR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU
        use:
          description: >-
            Use ("public key use") identifies the intended use of

            the public key. The "use" parameter is employed to indicate whether

            a public key is used for encrypting data or verifying the signature

            on data. Values are commonly "sig" (signature) or "enc"
            (encryption).
          type: string
          example: sig
        x:
          type: string
          example: f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU
        x5c:
          description: |-
            The "x5c" (X.509 certificate chain) parameter contains a chain of
            one or more PKIX certificates [RFC5280].  The certificate chain is
            represented as a JSON array of certificate value strings.  Each
            string in the array is a base64-encoded (Section 4 of [RFC4648] --
            not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.
            The PKIX certificate containing the key value MUST be the first
            certificate.
          type: array
          items:
            type: string
        'y':
          type: string
          example: x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0
    JSONWebKeySet:
      type: object
      properties:
        keys:
          description: >-
            The value of the 'keys' parameter is an array of JWK values.  By
            default, the order of the JWK values within the array does not imply
            an order of preference among them, although applications of JWK Sets
            can choose to assign a meaning to the order for their purposes, if
            desired.
          type: array
          items:
            $ref: '#/components/schemas/JSONWebKey'
    WellKnown:
      description: >-
        It includes links to several endpoints (e.g. /oauth2/token) and exposes
        information on supported signature algorithms among others.
      type: object
      title: WellKnown
      required:
        - authorization_endpoint
        - id_token_signing_alg_values_supported
        - issuer
        - jwks_uri
        - response_types_supported
        - subject_types_supported
        - token_endpoint
      properties:
        authorization_endpoint:
          description: URL of the OP's OAuth 2.0 Authorization Endpoint.
          type: string
          example: https://apitest.vipps.no/access-management-1.0/access/oauth2/auth
        claims_parameter_supported:
          description: >-
            Boolean value specifying whether the OP supports use of the claims
            parameter, with true indicating support.
          type: boolean
          example: false
        claims_supported:
          description: >-
            JSON array containing a list of the Claim Names of the Claims that
            the OpenID Provider MAY be able to supply values for. Note that for
            privacy or other reasons, this might not be an exhaustive list.
          type: array
          items:
            type: string
            example:
              - sub
        grant_types_supported:
          description: >-
            JSON array containing a list of the OAuth 2.0 Grant Type values that
            this OP supports.
          type: array
          items:
            type: string
            example:
              - openid
              - name
              - phoneNumber
              - address
              - birthDate
              - email
        id_token_signing_alg_values_supported:
          description: >-
            JSON array containing a list of the JWS signing algorithms (alg
            values) supported by the OP for the ID Token to encode the Claims in
            a JWT.
          type: array
          items:
            type: string
            example:
              - RS256
        issuer:
          description: >-
            URL using the https scheme with no query or fragment component that
            the OP asserts as its IssuerURL Identifier. If IssuerURL discovery
            is supported , this value MUST be identical to the issuer value
            returned by WebFinger. This also MUST be identical to the iss Claim
            value in ID Tokens issued from this IssuerURL.
          type: string
          example: https://apitest.vipps.no/access-management-1.0/access/
        jwks_uri:
          description: >-
            URL of the OP's JSON Web Key Set [JWK] document. This contains the
            signing key(s) the RP uses to validate signatures from the OP. The
            JWK Set MAY also contain the Server's encryption key(s), which are
            used by RPs to encrypt requests to the Server. When both signing and
            encryption keys are made available, a use (Key Use) parameter value
            is REQUIRED for all keys in the referenced JWK Set to indicate each
            key's intended usage. Although some algorithms allow the same key to
            be used for both signatures and encryption, doing so is NOT
            RECOMMENDED, as it is less secure. The JWK x5c parameter MAY be used
            to provide X.509 representations of keys provided. When used, the
            bare key values MUST still be present and MUST match those in the
            certificate.
          type: string
          example: >-
            https://apitest.vipps.no/access-management-1.0/access/.well-known/jwks.json
        request_parameter_supported:
          description: >-
            Boolean value specifying whether the OP supports use of the request
            parameter, with true indicating support.
          type: boolean
          example: true
        request_uri_parameter_supported:
          description: >-
            Boolean value specifying whether the OP supports use of the
            request_uri parameter, with true indicating support.
          type: boolean
          example: true
        require_request_uri_registration:
          description: >-
            Boolean value specifying whether the OP requires any request_uri
            values used to be pre-registered using the request_uris registration
            parameter.
          type: boolean
          example: true
        response_modes_supported:
          description: >-
            JSON array containing a list of the OAuth 2.0 response_mode values
            that this OP supports.
          type: array
          items:
            type: string
            example:
              - query
        response_types_supported:
          description: >-
            JSON array containing a list of the OAuth 2.0 response_type values
            that this OP supports.
          type: array
          items:
            type: string
            example:
              - code
        scopes_supported:
          description: >-
            JSON array containing a list of the OAuth 2.0 [RFC6749] scope values
            that this server supports. The server MUST support the openid scope
            value. Servers MAY choose not to advertise some supported scope
            values even when this parameter is used.
          type: array
          items:
            type: string
            example:
              - openid
              - address
              - name
              - email
              - phoneNumber
              - nnin
              - birthDate
        subject_types_supported:
          description: >-
            JSON array containing a list of the Subject Identifier types that
            this OP supports. Valid types include pairwise and public.
          type: array
          items:
            type: string
            example:
              - pairwise
        token_endpoint:
          description: URL of the OP's OAuth 2.0 Token Endpoint
          type: string
        token_endpoint_auth_methods_supported:
          description: >-
            JSON array containing a list of Client Authentication methods
            supported by this Token Endpoint. The options are
            client_secret_post, client_secret_basic, client_secret_jwt, and
            private_key_jwt, as described in Section 9 of OpenID Connect Core
            1.0
          type: array
          items:
            type: string
            example:
              - client_secret_basic
              - client_secret_post
    OauthTokenResponse:
      description: The token response
      type: object
      properties:
        access_token:
          description: The access token issued by the authorization server.
          type: string
        expires_in:
          description: |-
            The lifetime in seconds of the access token.  For example, the value
            "3600" denotes that the access token will
            expire in one hour from the time the response was generated.
          type: integer
          format: int64
        id_token:
          description: The ID token is a JWT and signed using JWS.
          type: string
        scope:
          description: The scope of the access token
          type: string
        token_type:
          description: The type of the token issued
          type: string
      example:
        access_token: >-
          shxuQPSLpKAiBrgD-HPbgDWc3RHzcXq3skcydKwRroo.Y5aH3PavJkZnSq5dffj8AmKVE-SdwRcbKhUKkmqimoQ
        expires_in: 3599
        id_token: >-
          eyJhbGciOiJSUzI1NiIsImtpZCI6InB1YmxpYzo2ZjIxMTlkZS03ZWY4LTQ0NDQtYjNkYy1lNDNiYWY2MDUwMGYifQ.eyJhdF9oYXNoIjoiUGpLVVQ0VUpFYkZWY05MempyOVppQSIsImF1ZCI6WyJlZGRkYjMyZi01MDI4LTQzOTctYjBhYi1lOGVjZjIxOGZkYzIiXSwiYXV0aF90aW1lIjoxNjQzMTIwMjA0LCJleHAiOjE2NDMxMjM4MDUsImlhdCI6MTY0MzEyMDIwNSwiaXNzIjoiaHR0cHM6Ly9lY2U0NmVjNC02ZjljLTQ4OWItOGZlNS0xNDZhODllMTE2MzUudGVjaC0wMi5uZXQvYWNjZXNzLW1hbmFnZW1lbnQtMS4wL2FjY2Vzcy8iLCJqdGkiOiI1MzM2NzJlYi1lY2M0LTQ0OTQtYjM4NS02NWY2MGJkMTk1YTciLCJub25jZSI6IjU4OTU0MTFlLWU5MzAtNDMyYS05ZWIzLWQzYTAzODhlMWIzOSIsInJhdCI6MTY0MzEyMDAwNywic2lkIjoiYWJlMjIzOTUtZThkNC00ODFlLThjZDItNTU0YmYwOWY0MzJmIiwic3ViIjoiNjNkODMwM2YtNDFkNS00MTUwLTllMzMtMGEzOWVkODE4NTZjIn0.Nejx0nIAPhGjDAOKIpLUVK2bcfTmUr7JfKU8V_7SHUdLGFjSHmDSXkAqYIL_oFXmTQsBrVXTQO-yjL6WGpR5nrpYPHzpY7hMUj00VQ1KTd9gwoMk6uBDvXAnSN7O-cNqC0ehZAlZ6ofR9TwDn03fhS1UcxhLnFq9phzxKD4q7EgBkHOQiwv90M8ZvrZMqdwtdjqIOABks0tVcYlQFKKDDrij0Df90vrFR-coAZeXJzRGsMUivvZlkwlYEQAlTx2BxBT2WqJr407DX-W0k0mj7QPnPQNV-0qT0VLJ6liUwFUi6MQrQ01yosrHwrmwY-0f_GwDDSPp4HizkTmT_CecQy9CLsbnASrcBurpLvjl9bfxXiYtZvvDlxyoyjMd05z94MmuADvM-nIWztKHIbU4ez6qRS1uyMPN2P9-_wzD7Tj2RCrAfSHlgTrx-grhqdkIqcVKdx8RVj5cmmbLDsmgfwLdM0m5Z_QYmctxq7TsLWm0x2A2-rbxlAma5USRDfPpzWBwbZDbJygXEIccGUwgG7SK6XHeTblHmgz87Tx7yfqTw9YSYbzxjnCCBwCXlKUUcHOLMRF_L0BwTBaNaFtYfgc5ne68Ej0V2Mz_BodR3OpRnukTdb1_nXAbDs4JiKhM22aR3R7qopAUnhUAFbde2q1sfwGr-b21a4NgEaWtFwk
        token_type: bearer
        scope: openid name phoneNumber address birthDate email
    ErrorResponse:
      description: >-
        Error responses are sent when an error (e.g. unauthorized, bad request,
        etc) occurred.
      type: object
      title: ErrorResponse
      required:
        - error
      properties:
        error:
          description: Name is the error name.
          type: string
        error_code:
          description: Code represents the error status code (404, 403, 401, ...).
          type: integer
          format: int64
        error_debug:
          description: >-
            Debug contains debug information. This is usually not available and
            has to be enabled.
          type: string
      example:
        error: invalid_request
        error_code: 400
        error_debug: >-
          The request is missing a required parameter, includes an invalid
          parameter or is otherwise malformed.
    AuthenticationRequestPayload:
      required:
        - loginHint
      type: object
      properties:
        scope:
          type: string
        loginHint:
          type: string
        bindingMessage:
          type: string
        requested_expiry:
          description: >-
            A positive integer representing the requested expiration time, in
            seconds, for the authentication.
          type: integer
          minimum: 60
          maximum: 900
    AuthenticationResponsePayload:
      type: object
      required:
        - auth_req_id
        - expires_in
        - interval
      properties:
        auth_req_id:
          description: Unique identifier for the authentication
          type: string
        expires_in:
          description: >-
            A positive integer indicating the expiration time of the
            "auth_req_id" in seconds since the authentication request was
            received
          type: integer
        interval:
          description: >-
            A a positive integer indicating the minimum amount of time in
            seconds that the Client MUST wait between polling requests to the
            token endpoint.
    UserExistsRequestPayload:
      type: object
      required:
        - loginHint
      properties:
        loginHint:
          type: string
    UserExistsResponsePayload:
      type: object
      required:
        - exists
      properties:
        exists:
          type: boolean
  parameters:
    Vipps-System-Name:
      name: Vipps-System-Name
      in: header
      description: |-
        The name of the solution.
        One word in lowercase letters is good.
        See [HTTP headers](/docs/knowledge-base/http-headers).
      schema:
        type: string
        maxLength: 30
        example: Acme Commerce
    Vipps-System-Version:
      name: Vipps-System-Version
      in: header
      description: |-
        The version number of the solution.
        See [HTTP headers](/docs/knowledge-base/http-headers).
      schema:
        type: string
        maxLength: 30
        example: '2.6'
    Vipps-System-Plugin-Name:
      name: Vipps-System-Plugin-Name
      in: header
      description: |-
        The name of the plugin (if applicable).
        One word in lowercase letters is good.
        See [HTTP headers](/docs/knowledge-base/http-headers).
      schema:
        type: string
        maxLength: 30
        example: acme-webshop
    Vipps-System-Plugin-Version:
      name: Vipps-System-Plugin-Version
      in: header
      description: |-
        The version number of the ecommerce plugin (if applicable).
        See [HTTP headers](/docs/knowledge-base/http-headers).
      schema:
        type: string
        maxLength: 30
        example: '4.3'
    Merchant-Serial-Number:
      name: Merchant-Serial-Number
      in: header
      description: >-
        This is a required parameter if you are a partner making API requests on
        behalf of a merchant.

        The partner must use the merchant's MSN, not the partner's MSN.
      schema:
        type: string
        example: '123456'
