openapi: 3.0.4
info:
  title: Norce Checkout - Adyen Checkout Adapter API
  description: >-
    Build 2026-01-12 14:01:28


    The Adyen Checkout Adapter API is used to create and manage a Adyen Checkout
    Order.
  version: 1.0.0
paths:
  /api/checkout/v1/orders/{order_id}/payments:
    post:
      tags:
        - Payments
      summary: Create a new Adyen Checkout order
      description: Requires an existing Norce order.
      operationId: CreateAdyenCheckoutOrderPayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutOrder
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.Error
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.Error
      security:
        - Bearer: []
  /api/checkout/v1/orders/{order_id}/payments/recurring/subscription/complete:
    post:
      tags:
        - Payments
      summary: Complete an order using a recurring payment token
      description: Complete an order using a recurring payment token.
      operationId: CompleteRecurringOrder
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Recurring payment token information
        content:
          application/json-patch+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.CompleteRecurringOrderRequest
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.CompleteRecurringOrderRequest
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
        - Bearer: []
  /api/checkout/v1/orders/{order_id}/payments/{payment_id}:
    get:
      tags:
        - Payments
      summary: Get an existing Adyen Checkout order
      description: Used to get an existing Adyen Checkout Order with payment methods.
      operationId: GetAdyenCheckoutOrderPayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutOrder
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
        - Bearer: []
  /api/checkout/v1/orders/{order_id}/payments/{payment_id}/transaction:
    post:
      tags:
        - Payments
      summary: Start a transaction
      description: >-
        Sends payment parameters (like amount, country, and currency) together
        with other required input details collected from the shopper.
      operationId: PostAdyenPaymentTransaction
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Transaction data from Adyen front-end
        content:
          application/json-patch+json:
            schema:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/Newtonsoft.Json.Linq.JToken'
          application/json:
            schema:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/Newtonsoft.Json.Linq.JToken'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.ValidationError
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
        - Bearer: []
  /api/checkout/v1/orders/{order_id}/payments/{payment_id}/details:
    post:
      tags:
        - Payments
      summary: >-
        Submit additional payment details to complete the Adyen Checkout
        payment.
      description: >-
        Submit additional payment details to complete the Adyen Checkout
        payment.
      operationId: PostAdyenCompleteDetails
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Additional Adyen payment details
        content:
          application/json-patch+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Adyen.Model.Checkout.PaymentDetailsRequest
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Adyen.Model.Checkout.PaymentDetailsRequest
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Adyen.Model.Checkout.PaymentDetailsResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
        - Bearer: []
  /api/checkout/v1/orders/{order_id}/payments/{payment_id}/remove:
    post:
      tags:
        - Payments
      summary: Remove an Adyen Checkout order
      description: >-
        Requires an existing Norce order. Will do soft delete on any payments or
        shippings by setting state to removed. Will delete any hooks added when
        creating a Adyen Checkout order.
      operationId: RemoveAdyenCheckoutOrder
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.Error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.Error
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
        - Bearer: []
  /api/checkout/v1/callback/orders/{order_id}/payments/{payment_id}/validate:
    post:
      tags:
        - Adyen Checkout Callbacks
      summary: Validate
      operationId: Validate
      parameters:
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
        - name: merchant
          in: query
          description: Merchant identifier
          required: true
          schema:
            type: string
        - name: channel
          in: query
          description: Merchant channel
          required: true
          schema:
            type: string
      requestBody:
        description: Adyen order
        content:
          application/json-patch+json:
            schema: {}
          application/json:
            schema: {}
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutValidationErrorResponse
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.Error
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.Error
  /api/checkout/v1/callback/orders/webhook:
    post:
      tags:
        - Adyen Checkout Webhook endpoint
      summary: Webhook/Notification
      description: Called by Adyen to react on webhooks
      operationId: Webhook
      parameters:
        - name: merchant
          in: query
          description: Merchant identifier
          required: true
          schema:
            type: string
        - name: channel
          in: query
          description: Merchant channel
          required: true
          schema:
            type: string
      requestBody:
        description: Adyen notification JSON data
        content:
          application/json-patch+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Adyen.Model.Notification.NotificationRequest
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Adyen.Model.Notification.NotificationRequest
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/checkout/v1/callback/orders/{order_id}/payments/{payment_id}/shipping-changed:
    post:
      tags:
        - Norce Callbacks
      summary: Handle shipping changed.
      description: Shipping changed.
      operationId: ShippingChanged
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Updated Norce order
        content:
          application/json-patch+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.PatchOperation
      deprecated: true
      security:
        - Bearer: []
  /api/checkout/v1/callback/orders/{order_id}/payments/{payment_id}/cart-changed:
    post:
      tags:
        - Norce Callbacks
      summary: Handle Cart changed
      description: Cart changed.
      operationId: CartChanged
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Updated Norce order
        content:
          application/json-patch+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.PatchOperation
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      deprecated: true
      security:
        - Bearer: []
  /api/checkout/v1/callback/orders/{order_id}/payments/{payment_id}/update-payment:
    post:
      tags:
        - Norce Callbacks
      summary: Update payment
      description: Hook on changes to update payment.
      operationId: UpdatePayment
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Updated order
        content:
          application/json-patch+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.PatchOperation
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
        - Bearer: []
  /api/checkout/v1/callback/orders/{order_id}/payments/{payment_id}/state-updated:
    post:
      tags:
        - Norce Callbacks
      summary: >-
        Handle state updated. If the state transitions back to checkout from
        processing, any ongoing adyen transaction will be cancelled.
      description: Hook on state changes to cancel ongoing Adyen transactions.
      operationId: StateUpdated
      parameters:
        - name: x-merchant
          in: header
          description: Merchant identifier.
          required: true
          schema:
            type: string
            example: norce
          example: norce
        - name: x-channel
          in: header
          description: Channel identifier
          required: true
          schema:
            type: string
            example: '1'
          example: '1'
        - name: order_id
          in: path
          description: Order identifier
          required: true
          schema:
            type: string
        - name: payment_id
          in: path
          description: Payment identifier
          required: true
          schema:
            type: string
      requestBody:
        description: Updated order
        content:
          application/json-patch+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.PatchOperation
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
        - Bearer: []
components:
  schemas:
    Adyen.Model.Checkout.Amount:
      type: object
      properties:
        currency:
          type: string
        value:
          type: integer
          format: int64
      additionalProperties: false
    Adyen.Model.Checkout.CheckoutOrderResponse:
      type: object
      properties:
        amount:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.Amount'
        expiresAt:
          type: string
        orderData:
          type: string
        pspReference:
          type: string
        reference:
          type: string
        remainingAmount:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.Amount'
      additionalProperties: false
    Adyen.Model.Checkout.DetailsRequestAuthenticationData:
      type: object
      properties:
        authenticationOnly:
          type: boolean
      additionalProperties: false
    Adyen.Model.Checkout.FraudCheckResult:
      type: object
      properties:
        accountScore:
          type: integer
          format: int32
        checkId:
          type: integer
          format: int32
        name:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.FraudResult:
      type: object
      properties:
        accountScore:
          type: integer
          format: int32
        results:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.FraudCheckResult'
      additionalProperties: false
    Adyen.Model.Checkout.InputDetail:
      type: object
      properties:
        _Configuration:
          type: object
          additionalProperties:
            type: string
            nullable: true
        details:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.SubInputDetail'
        inputDetails:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.SubInputDetail'
          deprecated: true
        itemSearchUrl:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.Item'
        key:
          type: string
        optional:
          type: boolean
        type:
          type: string
        value:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.Item:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentCompletionDetails:
      type: object
      properties:
        md:
          type: string
        paReq:
          type: string
        paRes:
          type: string
        authorizationToken:
          type: string
        billingToken:
          type: string
        cupsecureplusSmscode:
          type: string
        facilitatorAccessToken:
          type: string
        oneTimePasscode:
          type: string
        orderID:
          type: string
        payerID:
          type: string
        payload:
          type: string
        paymentID:
          type: string
        paymentStatus:
          type: string
        redirectResult:
          type: string
        resultCode:
          type: string
        returnUrlQueryString:
          type: string
        threeDSResult:
          type: string
        threeds2ChallengeResult:
          type: string
        threeds2Fingerprint:
          type: string
        vaultToken:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentDetailsRequest:
      type: object
      properties:
        authenticationData:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.DetailsRequestAuthenticationData
        details:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.PaymentCompletionDetails
        paymentData:
          type: string
        threeDSAuthenticationOnly:
          type: boolean
          deprecated: true
      additionalProperties: false
    Adyen.Model.Checkout.PaymentDetailsResponse:
      type: object
      properties:
        resultCode:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.PaymentDetailsResponse+ResultCodeEnum
        additionalData:
          type: object
          additionalProperties:
            type: string
            nullable: true
        amount:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.Amount'
        donationToken:
          type: string
        fraudResult:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.FraudResult'
        merchantReference:
          type: string
        order:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.CheckoutOrderResponse'
        paymentMethod:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.ResponsePaymentMethod'
        pspReference:
          type: string
        refusalReason:
          type: string
        refusalReasonCode:
          type: string
        shopperLocale:
          type: string
        threeDS2ResponseData:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.ThreeDS2ResponseData'
        threeDS2Result:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.ThreeDS2Result'
        threeDSPaymentData:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentDetailsResponse+ResultCodeEnum:
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
      type: integer
      format: int32
    Adyen.Model.Checkout.PaymentMethod:
      type: object
      properties:
        fundingSource:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.PaymentMethod+FundingSourceEnum
        apps:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentMethodUPIApps'
        brand:
          type: string
        brands:
          type: array
          items:
            type: string
        _Configuration:
          type: object
          additionalProperties:
            type: string
            nullable: true
        group:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentMethodGroup'
        inputDetails:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.InputDetail'
          deprecated: true
        issuers:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentMethodIssuer'
        name:
          type: string
        promoted:
          type: boolean
        type:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentMethod+FundingSourceEnum:
      enum:
        - 1
        - 2
      type: integer
      format: int32
    Adyen.Model.Checkout.PaymentMethodGroup:
      type: object
      properties:
        name:
          type: string
        paymentMethodData:
          type: string
        type:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentMethodIssuer:
      type: object
      properties:
        disabled:
          type: boolean
        id:
          type: string
        name:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentMethodUPIApps:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentMethodsResponse:
      type: object
      properties:
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentMethod'
        storedPaymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.StoredPaymentMethod'
      additionalProperties: false
    Adyen.Model.Checkout.PaymentResponse:
      type: object
      properties:
        resultCode:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.PaymentResponse+ResultCodeEnum
        action:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentResponseAction'
        additionalData:
          type: object
          additionalProperties:
            type: string
            nullable: true
        amount:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.Amount'
        donationToken:
          type: string
        fraudResult:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.FraudResult'
        merchantReference:
          type: string
        order:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.CheckoutOrderResponse'
        paymentMethod:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.ResponsePaymentMethod'
        pspReference:
          type: string
        refusalReason:
          type: string
        refusalReasonCode:
          type: string
        threeDS2ResponseData:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.ThreeDS2ResponseData'
        threeDS2Result:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.ThreeDS2Result'
        threeDSPaymentData:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.PaymentResponse+ResultCodeEnum:
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
      type: integer
      format: int32
    Adyen.Model.Checkout.PaymentResponseAction:
      type: object
      properties:
        isNullable:
          type: boolean
          readOnly: true
        schemaType:
          type: string
          readOnly: true
        actualInstance: {}
      additionalProperties: false
    Adyen.Model.Checkout.ResponsePaymentMethod:
      type: object
      properties:
        brand:
          type: string
        type:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.StoredPaymentMethod:
      type: object
      properties:
        bankAccountNumber:
          type: string
        bankLocationId:
          type: string
        brand:
          type: string
        expiryMonth:
          type: string
        expiryYear:
          type: string
        holderName:
          type: string
        iban:
          type: string
        id:
          type: string
        label:
          type: string
        lastFour:
          type: string
        name:
          type: string
        networkTxReference:
          type: string
        ownerName:
          type: string
        shopperEmail:
          type: string
        supportedRecurringProcessingModels:
          type: array
          items:
            type: string
        supportedShopperInteractions:
          type: array
          items:
            type: string
        type:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.SubInputDetail:
      type: object
      properties:
        _Configuration:
          type: object
          additionalProperties:
            type: string
            nullable: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/Adyen.Model.Checkout.Item'
        key:
          type: string
        optional:
          type: boolean
        type:
          type: string
        value:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.ThreeDS2ResponseData:
      type: object
      properties:
        acsChallengeMandated:
          type: string
        acsOperatorID:
          type: string
        acsReferenceNumber:
          type: string
        acsSignedContent:
          type: string
        acsTransID:
          type: string
        acsURL:
          type: string
        authenticationType:
          type: string
        cardHolderInfo:
          type: string
        cavvAlgorithm:
          type: string
        challengeIndicator:
          type: string
        dsReferenceNumber:
          type: string
        dsTransID:
          type: string
        exemptionIndicator:
          type: string
        messageVersion:
          type: string
        riskScore:
          type: string
        sdkEphemPubKey:
          type: string
        threeDSServerTransID:
          type: string
        transStatus:
          type: string
        transStatusReason:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.ThreeDS2Result:
      type: object
      properties:
        challengeCancel:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.ThreeDS2Result+ChallengeCancelEnum
        exemptionIndicator:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.ThreeDS2Result+ExemptionIndicatorEnum
        threeDSRequestorChallengeInd:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Checkout.ThreeDS2Result+ThreeDSRequestorChallengeIndEnum
        authenticationValue:
          type: string
        cavvAlgorithm:
          type: string
        dsTransID:
          type: string
        eci:
          type: string
        messageVersion:
          type: string
        riskScore:
          type: string
        threeDSServerTransID:
          type: string
        timestamp:
          type: string
        transStatus:
          type: string
        transStatusReason:
          type: string
        whiteListStatus:
          type: string
      additionalProperties: false
    Adyen.Model.Checkout.ThreeDS2Result+ChallengeCancelEnum:
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
      type: integer
      format: int32
    Adyen.Model.Checkout.ThreeDS2Result+ExemptionIndicatorEnum:
      enum:
        - 1
        - 2
        - 3
        - 4
      type: integer
      format: int32
    Adyen.Model.Checkout.ThreeDS2Result+ThreeDSRequestorChallengeIndEnum:
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
      type: integer
      format: int32
    Adyen.Model.Notification.NotificationRequest:
      type: object
      properties:
        live:
          type: string
        notificationItemContainers:
          type: array
          items:
            $ref: >-
              #/components/schemas/Adyen.Model.Notification.NotificationRequestItemContainer
      additionalProperties: false
    Adyen.Model.Notification.NotificationRequestItem:
      type: object
      properties:
        amount:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.Amount'
        eventCode:
          type: string
        eventDate:
          type: string
        merchantAccountCode:
          type: string
        merchantReference:
          type: string
        originalReference:
          type: string
        pspReference:
          type: string
        reason:
          type: string
        success:
          type: boolean
        paymentMethod:
          type: string
        operations:
          type: array
          items:
            type: string
        additionalData:
          type: object
          additionalProperties:
            type: string
            nullable: true
      additionalProperties: false
    Adyen.Model.Notification.NotificationRequestItemContainer:
      type: object
      properties:
        notificationItem:
          allOf:
            - $ref: >-
                #/components/schemas/Adyen.Model.Notification.NotificationRequestItem
      additionalProperties: false
    Microsoft.AspNetCore.Mvc.ProblemDetails:
      type: object
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type: integer
          format: int32
        detail:
          type: string
        instance:
          type: string
      additionalProperties: {}
    Newtonsoft.Json.Linq.JToken:
      type: array
      items:
        $ref: '#/components/schemas/Newtonsoft.Json.Linq.JToken'
    Norce.Checkout.AdyenAdapter.Application.Order.Addon:
      type: object
      properties:
        reference:
          type: string
        price:
          type: number
          format: double
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Address:
      type: object
      properties:
        type:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.CustomerType
        givenName:
          type: string
        familyName:
          type: string
        careOf:
          type: string
        reference:
          type: string
        organizationName:
          type: string
        streetAddress:
          type: string
        streetAddress2:
          type: string
        postalCode:
          type: string
        city:
          type: string
        region:
          type: string
        country:
          type: string
        phone:
          type: string
        email:
          type: string
        nationalIdentificationNumber:
          type: string
        organizationIdentificationNumber:
          type: string
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Cart:
      type: object
      properties:
        reference:
          type: string
        items:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.CartItem
        discounts:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Discount
        total:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Price
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.CartItem:
      type: object
      properties:
        id:
          type: string
        reference:
          type: string
        name:
          type: string
        sku:
          type: string
        url:
          type: string
        imageUrl:
          type: string
        quantity:
          type: integer
          format: int32
        unit:
          type: string
        price:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Price
        total:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Price
        originalTotal:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Price
        vatRate:
          type: number
          format: double
        discounts:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Discount
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Consent:
      type: object
      properties:
        id:
          type: string
        checked:
          type: boolean
        text:
          type: string
        required:
          type: boolean
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Customer:
      type: object
      properties:
        billing:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Address
        shipping:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Address
        type:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.CustomerType
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.CustomerType:
      enum:
        - 0
        - 1
      type: integer
      format: int32
    Norce.Checkout.AdyenAdapter.Application.Order.DeliveryDetails:
      type: object
      properties:
        carrier:
          type: string
        class:
          type: string
        product:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Product
        pickupLocation:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.PickupLocation
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Discount:
      type: object
      properties:
        type:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.DiscountType
        name:
          type: string
        code:
          type: string
        value:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Price
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.DiscountType:
      enum:
        - 0
        - 1
      type: integer
      format: int32
    Norce.Checkout.AdyenAdapter.Application.Order.Hook:
      type: object
      properties:
        id:
          type: string
        adapterId:
          type: string
        subscribeTo:
          type: string
        target:
          type: string
        invoke:
          type: string
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.NorceOrder:
      type: object
      properties:
        id:
          type: string
        merchant:
          type: string
        channel:
          type: string
        reference:
          type: string
        created:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        state:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.State
        culture:
          type: string
        currency:
          type: string
        country:
          type: string
        cart:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Cart
        shippings:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Shipping
        payments:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Payment
        customer:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Customer
        consents:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Consent
        hooks:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Hook
        total:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Price
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.OrderStatus:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      type: integer
      format: int32
    Norce.Checkout.AdyenAdapter.Application.Order.Payment:
      type: object
      properties:
        id:
          type: string
        adapterId:
          type: string
        name:
          type: string
        merchant:
          type: string
        channel:
          type: string
        currency:
          type: string
        type:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.PaymentType
        orderId:
          type: string
        amount:
          type: number
          format: double
        upperLimitAmount:
          type: number
          format: double
        state:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.PaymentState
        reference:
          type: string
        attributes:
          type: object
          additionalProperties:
            nullable: true
        recurring:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Recurring
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.PaymentState:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
      type: integer
      format: int32
    Norce.Checkout.AdyenAdapter.Application.Order.PaymentType:
      enum:
        - 0
        - 1
        - 2
      type: integer
      format: int32
    Norce.Checkout.AdyenAdapter.Application.Order.PickupLocation:
      type: object
      properties:
        reference:
          type: string
        name:
          type: string
        address:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.PickupLocationAddress
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.PickupLocationAddress:
      type: object
      properties:
        streetAddress:
          type: string
        city:
          type: string
        postalCode:
          type: string
        country:
          type: string
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Price:
      type: object
      properties:
        includingVat:
          type: number
          format: double
        excludingVat:
          type: number
          format: double
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Product:
      type: object
      properties:
        reference:
          type: string
        name:
          type: string
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Recurring:
      type: object
      properties:
        token:
          type: string
        description:
          type: string
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Shipping:
      type: object
      properties:
        id:
          type: string
        merchant:
          type: string
        channel:
          type: string
        state:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.ShippingState
        reference:
          type: string
        tmsReference:
          type: string
        orderId:
          type: string
        adapterId:
          type: string
        name:
          type: string
        total:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Price
        vatRate:
          type: number
          format: double
        deliveryDetails:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.DeliveryDetails
        addons:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Addon
        attributes:
          type: object
          additionalProperties:
            nullable: true
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.ShippingState:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      type: integer
      format: int32
    Norce.Checkout.AdyenAdapter.Application.Order.State:
      type: object
      properties:
        currentStatus:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.OrderStatus
        transitions:
          type: array
          items:
            $ref: >-
              #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.Transition
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.Application.Order.Transition:
      type: object
      properties:
        status:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.Application.Order.OrderStatus
        timeStamp:
          type: string
          format: date-time
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutAmount:
      type: object
      properties:
        currency:
          type: string
        value:
          type: number
          description: Amount in minor units
          format: double
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutEnvironment:
      enum:
        - 0
        - 1
      type: integer
      format: int32
    Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutOrder:
      type: object
      properties:
        paymentId:
          type: string
          description: Norce Payment Id
        clientKey:
          type: string
        locale:
          type: string
        environment:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutEnvironment
        amount:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutAmount
        paymentMethodsResponse:
          allOf:
            - $ref: '#/components/schemas/Adyen.Model.Checkout.PaymentMethodsResponse'
        paymentMethodsConfiguration:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Newtonsoft.Json.Linq.JToken'
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenCheckoutValidationErrorResponse:
      type: object
      properties:
        declineReasonMessage:
          type: string
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenError:
      type: object
      properties:
        errorCode:
          type: string
        errorMessages:
          type: array
          items:
            type: string
        correlationId:
          type: string
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.CompleteRecurringOrderRequest:
      type: object
      properties:
        recurringPaymentToken:
          type: string
        recurringShopperReference:
          type: string
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.Error:
      type: object
      properties:
        code:
          enum:
            - internal-server-error
            - unauthorized
            - conflict
            - configuration-error
            - configuration-not-found
            - order-not-found
            - order-error
            - order-bad-request
            - order-conflict
            - order-validation
            - order-unknown-validation-error
            - shipping-not-found
            - shipping-error
            - payment-not-found
            - payment-error
            - payment-conflict
            - adyen-error
            - adyen-bad-request
            - adyen-validation
            - adyen-order-not-found
            - adyen-upstream-error
            - translation-not-found
          type: string
          description: Error code
          example: cart-not-found
        message:
          type: string
          description: Detailed error information
          example: Cart with id:{id} now found.
        adyenError:
          allOf:
            - $ref: >-
                #/components/schemas/Norce.Checkout.AdyenAdapter.WebApi.Models.AdyenError
          description: Error if originating from Adyen
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.PatchOperation:
      type: object
      properties:
        operation:
          type: string
        path:
          type: string
        value: {}
      additionalProperties: false
    Norce.Checkout.AdyenAdapter.WebApi.Models.ValidationError:
      type: object
      properties:
        code:
          type: string
        adapterId:
          type: string
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: apiKey
      description: >-
        Authorization header using the bearer scheme. Example: 'Bearer
        a3bcdABCaB12abc3AbCDAB5AbcABCaBcABC5ab3c5A0='
      name: Authorization
      in: header
