openapi: 3.1.0
info:
  title: Espresso House Mobile App API
  version: 3.9.91
  description: >
    Reverse-engineered REST API specification for the Espresso House mobile app.
    This API powers the loyalty program, order management, and digital wallet features
    across 5 Nordic and German markets.
  contact:
    name: Espresso House API Support
    url: https://myespressohouse.com
  x-markets:
    - SE (Sweden)
    - NO (Norway)
    - FI (Finland)
    - DK (Denmark)
    - DE (Germany)

servers:
  - url: https://myespressohouse.com/beproud/api
    description: Primary - Member, loyalty, content, configuration
    x-endpoint-type: beproud
  - url: https://myespressohouse.com/DoeApi/api
    description: Order, shop, and pre-order operations
    x-endpoint-type: doe
  - url: https://myespressohouse.azureedge.net/beproud/api
    description: CDN for cached public endpoints
    x-endpoint-type: cdn

components:
  securitySchemes:
    BPAuth:
      type: apiKey
      in: header
      name: BPAuth
      description: >
        Authentication using BPAuth header with format: {memberId};{deviceId};SHA256(sharedSecret+smsCode).upper()
        Example: "123456;device-id-abc;A7B9E2F3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B1C2D3E4F5A6B7C8D9E0"

  parameters:
    myEspressoHouseNumber:
      name: myEspressoHouseNumber
      in: path
      required: true
      schema:
        type: string
        pattern: '^\d+$'
      description: Unique member/customer ID in the Espresso House system

    countryCode:
      name: countryCode
      in: path
      required: true
      schema:
        type: string
        enum: ['SE', 'NO', 'FI', 'DK', 'DE']
      description: Two-letter ISO country code

  schemas:
    Error:
      type: object
      properties:
        errorCode:
          type: integer
        message:
          type: string
      required:
        - errorCode
        - message

    Member:
      type: object
      properties:
        myEspressoHouseNumber:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          format: email
        phoneNumber:
          type: string
        dateOfBirth:
          type: string
          format: date
          nullable: true
        homeCountryCode:
          type: string
        memberStatusKey:
          type: string
        allowMarketingSms:
          type: boolean
        allowMarketingPush:
          type: boolean
        allowMarketingEmail:
          type: boolean
        allowPositionTracking:
          type: boolean
        staff:
          type: boolean
        vip:
          type: boolean
        student:
          type: boolean
        studentUntil:
          type: string
          format: date
          nullable: true
        created:
          type: string
          format: date-time
        memberSince:
          type: string
          format: date-time
        isDeleted:
          type: boolean
        balance:
          type: object
          properties:
            amount:
              type: number
              format: double
            currency:
              type: string
            countryCode:
              type: string
        fikaClub:
          type: object
          properties:
            fikaPoints:
              type: integer
        punchCard:
          type: object
          properties:
            punches:
              type: integer
            limit:
              type: integer
        completedPunchCards:
          type: integer
        coupons:
          type: array
          items:
            type: object

    CoffeeShop:
      type: object
      properties:
        marketCountryCode:
          type: string
        coffeeShopId:
          type: integer
        coffeeShopName:
          type: string
        address1:
          type: string
        address2:
          type: string
        postalCode:
          type: string
        city:
          type: string
        country:
          type: string
        phoneNumber:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        wifi:
          type: boolean
        childFriendly:
          type: boolean
        handicapFriendly:
          type: boolean
        expressCheckout:
          type: boolean
        takeAwayOnly:
          type: boolean
        preorderOnline:
          type: boolean
        todayOpenFrom:
          type: string
          format: time
        todayOpenTo:
          type: string
          format: time
        openingHours:
          type: array
          items:
            type: object
        irregularOpeningHours:
          type: array
          items:
            type: object

    Order:
      type: object
      properties:
        digitalOrderKey:
          type: string
        orderNumber:
          type: string
        shopNumber:
          type: integer
        orderDate:
          type: string
          format: date-time
        status:
          type: string
        items:
          type: array
          items:
            type: object
        totalAmount:
          type: number
        currency:
          type: string
        pickupTime:
          type: string
          format: date-time
        paymentStatus:
          type: string

paths:
  /Application/v1/{clientApplicationDeviceType}/leastallowedversion:
    get:
      tags:
        - ApplicationAPI
      summary: Get minimum required application version
      operationId: getMinimumAppVersion
      x-confirmed: true
      parameters:
        - name: clientApplicationDeviceType
          in: path
          required: true
          schema:
            type: string
            enum: ['iphone', 'android']
      responses:
        '200':
          description: Minimum version information retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  clientApplicationDeviceType:
                    type: string
                  clientApplicationBuildNumber:
                    type: integer
                    example: 3555
                  validTo:
                    type: string
                    format: date-time
                    nullable: true

  /CoffeeShop/v3:
    get:
      tags:
        - CoffeeShopAPI
      summary: List all coffee shops
      operationId: getAllCoffeeShops
      x-confirmed: true
      responses:
        '200':
          description: Coffee shops retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  coffeeShops:
                    type: array
                    items:
                      $ref: '#/components/schemas/CoffeeShop'

  /CoffeeShop/v3/{coffeeShopId}:
    get:
      tags:
        - CoffeeShopAPI
      summary: Get specific coffee shop details
      operationId: getCoffeeShopById
      x-confirmed: true
      parameters:
        - name: coffeeShopId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Coffee shop details retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  coffeeShop:
                    $ref: '#/components/schemas/CoffeeShop'

  /Member/v2/{myEspressoHouseNumber}:
    get:
      tags:
        - MemberAPI
      summary: Get member profile
      description: Retrieves complete member profile including balance, punches, coupons
      operationId: getMemberProfile
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Member profile retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'

  /Member/v1/{myEspressoHouseNumber}/challenges:
    get:
      tags:
        - MemberAPI
      summary: Get member challenges
      operationId: getMemberChallenges
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Challenges retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalChallengesCompleted:
                    type: integer
                  totalStampsEarnedFromChallenges:
                    type: integer
                  memberChallenges:
                    type: array
                    items:
                      type: object

  /Member/v1/{myEspressoHouseNumber}/event:
    get:
      tags:
        - MemberAPI
      summary: Get member events
      operationId: getMemberEvents
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Events retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  events:
                    type: array
                    items:
                      type: object

  /Member/v1/{myEspressoHouseNumber}/feature:
    get:
      tags:
        - MemberAPI
      summary: Get enabled features
      operationId: getMemberFeatures
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Features retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  features:
                    type: array
                    items:
                      type: object
                      properties:
                        featureKey:
                          type: string
                        isEnabled:
                          type: boolean

  /Member/v1/{myEspressoHouseNumber}/giftedsubscription:
    get:
      tags:
        - MemberAPI
      summary: Get gifted subscriptions
      operationId: getGiftedSubscriptions
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Gifted subscriptions retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  giftedSubscriptions:
                    type: array
                    items:
                      type: object

  /Member/v1/{myEspressoHouseNumber}/message:
    get:
      tags:
        - MemberAPI
      summary: Get in-app messages
      operationId: getInAppMessages
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Messages retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  inAppMessages:
                    type: array
                    items:
                      type: object

  /Member/v1/{myEspressoHouseNumber}/punches:
    get:
      tags:
        - MemberAPI
      summary: Get member punches
      operationId: getMemberPunches
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Punches retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  punches:
                    type: array
                    items:
                      type: object

  /Member/v1/{myEspressoHouseNumber}/receipt:
    get:
      tags:
        - MemberAPI
      summary: Get member receipts
      operationId: getMemberReceipts
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Receipts retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  receipts:
                    type: array
                    items:
                      type: object
                  totalMatches:
                    type: integer

  /Member/v1/{myEspressoHouseNumber}/subscription:
    get:
      tags:
        - MemberAPI
      summary: Get member subscriptions
      operationId: getMemberSubscriptions
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Subscriptions retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  memberSubscriptions:
                    type: array
                    items:
                      type: object

  /Member/v1/{myEspressoHouseNumber}/NeedToAcceptLatestTermsAndConditions:
    get:
      tags:
        - MemberAPI
      summary: Check if member must accept terms
      operationId: checkNeedsTermsAcceptance
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Terms status retrieved
          content:
            application/json:
              schema:
                type: boolean

  /FikaHouse/v1/{countryCode}/{myEspressoHouseNumber}:
    get:
      tags:
        - MemberAPI
      summary: Get Fika House exchangeable coupons
      operationId: getFikaHouseCoupons
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/countryCode'
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Coupons retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  fikaHouseExchangableCouponReadRowsResponse:
                    type: array
                    items:
                      type: object

  /Member/v1/{myEspressoHouseNumber}/AcceptTermsAndConditions:
    post:
      tags:
        - MemberAPI
      summary: Accept terms and conditions
      operationId: acceptTermsAndConditions
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Terms accepted

  /PaymentCardRegistration/v1/{myEspressoHouseNumber}:
    get:
      tags:
        - PaymentCardRegistrationAPI
      summary: Get payment card registration URL
      operationId: getPaymentCardRegistrationUrl
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Registration URL retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  paymentCardRegistrationUrl:
                    type: string
                    format: uri

  /PurchasableGift/v1/{countryCode}/{posNumber}/{myEspressoHouseNumber}:
    get:
      tags:
        - PurchasableGiftAPI
      summary: List purchasable gifts
      operationId: getPurchasableGifts
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/countryCode'
        - name: posNumber
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Purchasable gifts retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  purchasableGifts:
                    type: array
                    items:
                      type: object

  /PurchasableSubscriptionGiftMenu/v1/{myEspressoHouseNumber}:
    get:
      tags:
        - PurchasableSubscriptionGiftMenuAPI
      summary: List purchasable subscription gifts
      operationId: getPurchasableSubscriptionGifts
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Subscription gifts retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  purchasableSubscriptionGifts:
                    type: array
                    items:
                      type: object

  /Registration/v1/{memberRegistrationId}/sendsms:
    post:
      tags:
        - RegistrationAPI
      summary: Send SMS verification code
      operationId: sendRegistrationSms
      x-confirmed: true
      parameters:
        - name: memberRegistrationId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json-patch+json:
            schema:
              type: object
              required:
                - pow
              properties:
                pow:
                  type: string
      responses:
        '200':
          description: SMS sent
          content:
            application/json:
              schema:
                type: object
                properties:
                  smsSent:
                    type: boolean

  /Registration/v1/{memberRegistrationId}/verify:
    post:
      tags:
        - RegistrationAPI
      summary: Verify SMS code
      operationId: verifyRegistrationCode
      x-confirmed: true
      parameters:
        - name: memberRegistrationId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json-patch+json:
            schema:
              type: object
              required:
                - verificationCode
              properties:
                verificationCode:
                  type: string
                  pattern: '^\d{6}$'
      responses:
        '200':
          description: Code verified
          content:
            application/json:
              schema:
                type: object
                properties:
                  verified:
                    type: boolean
                  myEspressoHouseNumber:
                    type: string

  /Subscription/menu/v3/{myEspressoHouseNumber}:
    get:
      tags:
        - SubscriptionAPI
      summary: List subscription menu items
      operationId: getSubscriptionMenu
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
        - name: calculateDiscount
          in: query
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Subscription menu retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  subscriptionMenuItems:
                    type: array
                    items:
                      type: object

  /TermsAndConditions/v1/latest:
    get:
      tags:
        - TermsAndConditionsAPI
      summary: Get latest terms and conditions
      operationId: getLatestTermsAndConditions
      x-confirmed: true
      responses:
        '200':
          description: Terms and conditions retrieved
          content:
            text/html:
              schema:
                type: string

  /TopUp/v2/{myEspressoHouseNumber}/topupvalues:
    get:
      tags:
        - TopUpAPI
      summary: Get top-up values
      operationId: getTopUpValues
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Top-up values retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  topUpValues:
                    type: array
                    items:
                      type: object

  /TopUp/v1/{myEspressoHouseNumber}/paymentoptions:
    get:
      tags:
        - TopUpAPI
      summary: Get top-up payment options (v1)
      operationId: getTopUpPaymentOptionsV1
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Payment options retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  topUpPaymentOptions:
                    type: array
                    items:
                      type: string

  /TopUp/v2/{myEspressoHouseNumber}/paymentoptions:
    get:
      tags:
        - TopUpAPI
      summary: Get top-up payment options (v2)
      operationId: getTopUpPaymentOptionsV2
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Payment options retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  topUpPaymentOptions:
                    type: array
                    items:
                      type: object

  /Faq/menu/v1:
    get:
      tags:
        - FaqAPI
      summary: Get FAQ menu
      operationId: getFaqMenu
      x-confirmed: true
      responses:
        '200':
          description: FAQ menu retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object

  /Faq/v1/menu/section/{sectionId}/articles:
    get:
      tags:
        - FaqAPI
      summary: Get FAQ articles for section
      operationId: getFaqArticles
      x-confirmed: true
      parameters:
        - name: sectionId
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Articles retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object

  /Content/v1/html/{contentKey}/{countryCode}/{languageCode}:
    get:
      tags:
        - ContentAPI
      summary: Get HTML content
      operationId: getHtmlContent
      x-confirmed: true
      parameters:
        - name: contentKey
          in: path
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/countryCode'
        - name: languageCode
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Content retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  contentKey:
                    type: string
                  countryCode:
                    type: string
                  languageCode:
                    type: string
                  content:
                    type: string

  /Application/v2/FlashMessage:
    get:
      tags:
        - ApplicationAPI
      summary: Get active flash message
      operationId: getFlashMessage
      x-confirmed: true
      responses:
        '200':
          description: Flash message retrieved
          content:
            application/json:
              schema:
                type: string
                nullable: true

  /Application/v1/Themes/{memberId}/{date}:
    get:
      tags:
        - ApplicationAPI
      summary: Get theme configuration for date
      operationId: getThemes
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - name: memberId
          in: path
          required: true
          schema:
            type: string
        - name: date
          in: path
          required: true
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Themes retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  Themes:
                    type: array
                    items:
                      type: object

  /FriendsAndFun/v1/{countryCode}/jumbotron:
    get:
      tags:
        - FriendsAndFunAPI
      summary: Get jumbotron content
      operationId: getJumbotronContent
      x-confirmed: true
      parameters:
        - $ref: '#/components/parameters/countryCode'
      responses:
        '200':
          description: Jumbotron content retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  pageContent:
                    type: array
                    items:
                      type: object

  /FriendsAndFun/v1/{countryCode}/banner/{bannerType}:
    get:
      tags:
        - FriendsAndFunAPI
      summary: Get banner content
      operationId: getBanner
      parameters:
        - $ref: '#/components/parameters/countryCode'
        - name: bannerType
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Banner content retrieved
          content:
            application/json:
              schema:
                type: object
        '500':
          x-confirmed: true
          description: Internal server error

  /ContactForm/v1/template/{templateId}/{languageCode}:
    get:
      tags:
        - ContactFormAPI
      summary: Get contact form template
      operationId: getContactFormTemplate
      x-confirmed: true
      parameters:
        - name: templateId
          in: path
          required: true
          schema:
            type: integer
        - name: languageCode
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Contact form template retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  contactFormTemplate:
                    type: object

  /Shop/v3/{shopNumber}/menu/{myEspressoHouseNumber}:
    get:
      tags:
        - ShopAPI
      summary: Get shop menu
      operationId: getShopMenu
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - name: shopNumber
          in: path
          required: true
          schema:
            type: integer
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Shop menu retrieved
          content:
            application/json:
              schema:
                type: object

  /Shop/v1/{shopNumber}/PickupOptions:
    get:
      tags:
        - ShopAPI
      summary: Get shop pickup options
      operationId: getShopPickupOptions
      x-confirmed: true
      parameters:
        - name: shopNumber
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Pickup options retrieved
          content:
            application/json:
              schema:
                type: object

  /Shop/v1/{shopNumber}/inventory:
    get:
      tags:
        - ShopAPI
      summary: Get shop inventory
      operationId: getShopInventory
      x-confirmed: true
      parameters:
        - name: shopNumber
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Inventory retrieved
          content:
            application/json:
              schema:
                type: object

  /Shop/v1/{shopNumber}/status:
    get:
      tags:
        - ShopAPI
      summary: Get shop status
      operationId: getShopStatus
      x-confirmed: true
      parameters:
        - name: shopNumber
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Shop status retrieved
          content:
            application/json:
              schema:
                type: object

  /Shop/Latest/v2/{myEspressoHouseNumber}:
    get:
      tags:
        - ShopAPI
      summary: Get recently visited shops
      operationId: getRecentShops
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Recent shops retrieved
          content:
            application/json:
              schema:
                type: object

  /Shop/v2:
    get:
      tags:
        - ShopAPI
      summary: Get all DOE shops
      operationId: getAllDoeShops
      x-confirmed: true
      responses:
        '200':
          description: All shops retrieved
          content:
            application/json:
              schema:
                type: object

  /Order/v2/member/{myEspressoHouseNumber}:
    get:
      tags:
        - OrderAPI
      summary: Get member orders
      operationId: getMemberOrders
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/myEspressoHouseNumber'
      responses:
        '200':
          description: Orders retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  orders:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'

  /Order/previouspurchase/v1/{espressoHouseNumber}:
    get:
      tags:
        - OrderAPI
      summary: Get previous purchases
      operationId: getPreviousPurchases
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - name: espressoHouseNumber
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Purchase history retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  purchasedOrders:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'

  /Market/v2/paymentoption/{countryCode}/{myEspressoHouseNumber}/{assignedPspKey}:
    get:
      tags:
        - DirectPaymentPreOrderAPI
      summary: Get pre-order payment options
      operationId: getPreOrderPaymentOptions
      x-confirmed: true
      security:
        - BPAuth: []
      parameters:
        - $ref: '#/components/parameters/countryCode'
        - $ref: '#/components/parameters/myEspressoHouseNumber'
        - name: assignedPspKey
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Payment options retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  paymentOptions:
                    type: array
                    items:
                      type: object

tags:
  - name: ApplicationAPI
    description: Application configuration and metadata endpoints
  - name: CoffeeShopAPI
    description: Coffee shop location information
  - name: ContactFormAPI
    description: Support ticket and contact form management
  - name: ContentAPI
    description: Localized HTML and text content delivery
  - name: FaqAPI
    description: Frequently Asked Questions
  - name: FriendsAndFunAPI
    description: Promotional and engagement content
  - name: MemberAPI
    description: Member profile, loyalty, and subscription management
  - name: PaymentCardRegistrationAPI
    description: Payment card registration
  - name: PurchasableGiftAPI
    description: Gift card and gift item purchases
  - name: PurchasableSubscriptionGiftMenuAPI
    description: Subscription gift purchases
  - name: RegistrationAPI
    description: Member registration and verification
  - name: SubscriptionAPI
    description: Subscription menu and management
  - name: TermsAndConditionsAPI
    description: Legal documents and policies
  - name: TopUpAPI
    description: Account top-up and balance management
  - name: DirectPaymentPreOrderAPI
    description: Pre-order payment options
  - name: ShopAPI
    description: Shop menu, status, and inventory
  - name: OrderAPI
    description: Order creation and management
