DN Payment Initiation API

Public Payment Initiation API (PI-API) of Diebold Nixdorf providing access to the Vynamic Transaction Middleware for initiating payments. Declares an OpenID Connect scheme against a Microsoft Entra ID tenant. 11 paths; OpenAPI 3.0.1, version 1.9.11.

Operations 16

POST /pay/{merchantId}/initiateSession Initiate a payment session for token based payments like Google Pay or Apple Pay. #
POST /pay/{merchantId}/creditBalance The creditBalance API call returns the credit balance of a payer in case of success. #
POST /pay/{merchantId}/authorize Authorizes a later cardless payment transaction. #
POST /pay/{merchantId}/cardless Initiate a cardless payment transaction. #
POST /pay/{merchantId}/cardbased/{cardBasedTransactionType} Initiate a card based payment transaction. #
PUT /pay/{merchantId}/confirm/{transactionId} Confirm a payment transaction #
GET /{merchantId}/payments Retrive a set of payment transactions. #
DELETE /payments/{merchantId}/{transactionId} Cancel a payment transaction. #
PUT /payments/{merchantId}/{transactionId} Refund a payment transaction. #
GET /payments/{merchantId}/{transactionId} Retrive the details and state of a certain payment transaction. #
GET /pkiKey Retrive the public (RSA) key of the server system. #
GET /{merchantId}/devices Get all devices of a certain merchant. #
POST /device/{merchantId}/{terminalId} Create a payment device such as a POS terminal or a mobile device. #
PUT /device/{merchantId}/{terminalId} Update a payment device such as a POS terminal or a mobile device. #
GET /device/{merchantId}/{terminalId} Get device info of a payment device such as a POS terminal or a mobile device. #
DELETE /device/{merchantId}/{terminalId} Delete a payment device such as a POS terminal or a mobile device. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dn-payment-initiation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

diebold-dn-payment-initiation-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: DN Payment Initiation API
  description: 'Public Payment Initiation API (PI-API) of Diebold Nixdorf to access the

    Transaction Middleware.

    '
  version: 1.9.11
  contact:
    email: ronald.schmieder@dieboldnixdorf.com
tags:
- name: Payment Initiation API
  description: 'Public Payment Initiation API  (PI-API) of DieboldNixdorf to access the

    Transaction Middleware.

    '
  externalDocs:
    description: Find out more
    url: https://dieboldnixdorf.com
externalDocs:
  description: Find out more about Swagger
  url: https://swagger.io
paths:
  /pay/{merchantId}/initiateSession:
    post:
      summary: Initiate a payment session for token based payments like Google Pay or Apple Pay.
      description: 'Retrive the payment session object.<br>

        Please see https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session

        '
      operationId: initiateSession
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      tags:
      - Payment Initiation API
      requestBody:
        description: The request. It contains only the validation URL, if there is any
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateMerchantSessionRequest'
      responses:
        '200':
          description: 'Returns the opaque payment session object.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiateMerchantSessionResponse'
        '500':
          $ref: '#/components/responses/InternalServerError500'
  /pay/{merchantId}/creditBalance:
    post:
      tags:
      - Payment Initiation API
      summary: The creditBalance API call returns the credit balance of a payer in case of success.
      description: 'The creditBalanceRequest is used to return the payer''s credit balance.<br>

        If the amount is insufficient, the call returns a <b>401</b> http status code.

        '
      operationId: creditBalance
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: 'In case of a successful call, a PI-API returns the credit a  creditBalanceResponse.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditBalanceResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '409':
          $ref: '#/components/responses/Conflict409'
        '500':
          $ref: '#/components/responses/InternalServerError500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditBalanceRequest'
        description: The payment request
        required: true
  /pay/{merchantId}/authorize:
    post:
      tags:
      - Payment Initiation API
      summary: Authorizes a later cardless payment transaction.
      description: 'Used to authorize a later payment transaction, using a credit or debit

        card, without transferingt any money.

        '
      operationId: authorizeCardlessPayment
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: 'In case of a successful call, a http response code 200 is returned.

            '
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '409':
          $ref: '#/components/responses/Conflict409'
        '500':
          $ref: '#/components/responses/InternalServerError500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizePaymentRequest'
        description: The payment request
        required: true
  /pay/{merchantId}/cardless:
    post:
      tags:
      - Payment Initiation API
      summary: Initiate a cardless payment transaction.
      description: 'Used to initiate a payment transaction without using a credit or debit

        card.

        '
      operationId: cardlessPayment
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '201':
          description: 'In case of a successful call, a PI-API transactionId is returned.

            This transactionId can be used in further request.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiatePaymentResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '500':
          $ref: '#/components/responses/InternalServerError500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateCardlessPaymentRequest'
        description: The payment request
        required: true
  /pay/{merchantId}/cardbased/{cardBasedTransactionType}:
    post:
      tags:
      - Payment Initiation API
      summary: Initiate a card based payment transaction.
      description: 'Used to initiate a credit or debit card payment or money transfer transaction. '
      operationId: cardbasedPayment
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/CardBasedTransactionType'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: 'In case of a successful call, a PI-API transactionId is returned.

            This transactionId can be used in further request.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiateCardBasedPaymentResponse'
        '500':
          $ref: '#/components/responses/CardBasedInternalServerError500'
        '503':
          description: Service Unavailable
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateCardBasedPaymentRequest'
        description: The payment request
        required: true
  /pay/{merchantId}/confirm/{transactionId}:
    put:
      summary: Confirm a payment transaction
      description: Used to confirm a payment transaction approved by payment provider
      operationId: confirmPayment
      tags:
      - Payment Initiation API
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/PI-API-Transaction-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: No further data are returned in case of a successful call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfirmResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '405':
          $ref: '#/components/responses/MethodNotAllowed405'
        '500':
          $ref: '#/components/responses/InternalServerError500'
  /{merchantId}/payments:
    get:
      summary: Retrive a set of payment transactions.
      description: Used to retrive the state of a payment transaction.
      operationId: transactions
      tags:
      - Payment Initiation API
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      - name: fromDateTime
        in: query
        required: false
        description: '<p>Start of the time interval for which the transactions are requested. Default value <b>fromDateTime</b>
          = (now - 1h)</p>


          <p>A timestamp containing date and a time as defined by RFC3339

          time.<br> Please see: <a href="https://tools.ietf.org/html/rfc3339">Date and Time on the Internet: Timestamps</a></p>

          '
        schema:
          type: string
          format: date-time
        example: '2018-04-28T06:00:00.000Z'
      - name: toDateTime
        in: query
        required: false
        description: '<p>End of the time interval for which the transactions are requested. Default value <b>toDateTime</b>
          = (fromDateTime + 1h)</p>


          <p>A timestamp containing date and a time as defined by RFC3339

          time.<br> Please see: <a href="https://tools.ietf.org/html/rfc3339">Date and Time on the Internet: Timestamps</a></p>

          '
        schema:
          type: string
          format: date-time
        example: 2018-04-28T012:00:00.000Z
      - name: paymentProvider
        in: query
        required: false
        description: 'The identifier of the payment provider for which the transactions are requested.

          '
        schema:
          $ref: '#/components/schemas/PaymentProvider'
        example: VISADIRECT
      - name: status
        in: query
        required: false
        description: 'Transaction status in which the transactions are requested.

          '
        schema:
          $ref: '#/components/schemas/TransactionStatus'
        example: PENDING
      responses:
        '200':
          description: 'Returns an array of transactions for the specified selection parameters.

            '
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - $ref: '#/components/schemas/ExtendedTransactionData'
                  - $ref: '#/components/schemas/CardbasedDetailsResponse'
        '400':
          $ref: '#/components/responses/BadRequest400'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '500':
          $ref: '#/components/responses/InternalServerError500'
  /payments/{merchantId}/{transactionId}:
    delete:
      tags:
      - Payment Initiation API
      summary: Cancel a payment transaction.
      description: 'Used to cancel an already initiated payment transaction.  Idempotence

        key: transactionId

        '
      operationId: cancel
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/PI-API-Transaction-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: Only the 'retryFlag' is returned after a successful call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '405':
          $ref: '#/components/responses/MethodNotAllowed405'
        '500':
          $ref: '#/components/responses/InternalServerError500'
    put:
      tags:
      - Payment Initiation API
      summary: Refund a payment transaction.
      description: 'Used to refund an already initiated payment transaction.  Idempotence

        key: transactionId

        '
      operationId: refund
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/PI-API-Transaction-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: No further data are returned in case of a successful call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '405':
          $ref: '#/components/responses/MethodNotAllowed405'
        '500':
          $ref: '#/components/responses/InternalServerError500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest'
        description: The refund payment request
        required: true
    get:
      summary: Retrive the details and state of a certain payment transaction.
      description: 'Retrive the details and state of a certain payment transaction.

        Idempotence key: transactionId

        '
      operationId: transactionDetails
      tags:
      - Payment Initiation API
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/PI-API-Transaction-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/TerminalIdParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      - name: refresh
        in: query
        required: false
        description: '<p>Indicates if the payment provider should be called to refresh the

          transaction status in the TM database or not. If set to "true", the payment provider''s system is called; otherwise,
          the last known transaction status is loaded from the TM database. </p>


          <p>Default value is "true".</p>

          '
        schema:
          type: boolean
        example: true
      responses:
        '200':
          description: 'Returns an array of transactions if there are some in the given time

            frame.

            '
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/TransactionDetailsResponse'
                - $ref: '#/components/schemas/CardbasedDetailsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '500':
          $ref: '#/components/responses/InternalServerError500'
  /pkiKey:
    get:
      summary: Retrive the public (RSA) key of the server system.
      description: 'Retrive the a public (RSA) key, which is used later on to encrypt

        session keys.

        '
      operationId: pki
      tags:
      - Accessibility API
      responses:
        '200':
          description: 'Returns apublic (RSA) key, which is used later on to encrypt session

            keys.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PKIKeyResponse'
        '500':
          $ref: '#/components/responses/InternalServerError500'
  /{merchantId}/devices:
    get:
      tags:
      - Device API
      operationId: getDevices
      summary: Get all devices of a certain merchant.
      description: 'Used to retrieve all payment devices of a certain merchant.

        '
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: 'In case of a successful call, the PI-API device data are returned.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevicesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '500':
          $ref: '#/components/responses/InternalServerError500'
  /device/{merchantId}/{terminalId}:
    post:
      tags:
      - Device API
      summary: Create a payment device such as a POS terminal or a mobile device.
      description: 'Used to create and/or initialize a payment device.

        '
      operationId: initializeDevice
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/Terminal-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '201':
          description: 'In case of a successful call, a PI-API a http status code 201 is returned.

            '
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '500':
          $ref: '#/components/responses/InternalServerError500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDeviceRequest'
        description: The request
        required: true
    put:
      tags:
      - Device API
      operationId: updateDevice
      summary: Update a payment device such as a POS terminal or a mobile device.
      description: 'Used to get, update or delete a payment device.

        '
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/Terminal-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: 'In case of a successful call, a http status code 200 is returned.

            '
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '500':
          $ref: '#/components/responses/InternalServerError500'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDeviceRequest'
        description: The request
        required: true
    get:
      tags:
      - Device API
      operationId: getDevice
      summary: Get device info of a payment device such as a POS terminal or a mobile device.
      description: 'Used to create and/or initialize a payment device.

        '
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/Terminal-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: 'In case of a successful call, the PI-API device data are returned.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceInfoResponse'
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '500':
          $ref: '#/components/responses/InternalServerError500'
    delete:
      tags:
      - Device API
      operationId: deleteDevice
      summary: Delete a payment device such as a POS terminal or a mobile device.
      description: 'Used to create and/or initialize a payment device.

        '
      parameters:
      - $ref: '#/components/parameters/PI-API-Merchant-ID'
      - $ref: '#/components/parameters/Terminal-ID'
      - $ref: '#/components/parameters/X-Request-ID-Param'
      - $ref: '#/components/parameters/TimestampParam'
      - $ref: '#/components/parameters/PSU-IP-AddressParam'
      - $ref: '#/components/parameters/PSU-User-AgentParam'
      - $ref: '#/components/parameters/PSU-GEO-LocationParam'
      - $ref: '#/components/parameters/SessionKeyParam'
      - $ref: '#/components/parameters/CredentialsTypeParam'
      - $ref: '#/components/parameters/CredentialsParam'
      - $ref: '#/components/parameters/StoreIdParam'
      - $ref: '#/components/parameters/CashierIdParam'
      - $ref: '#/components/parameters/PaymentProviderParam'
      - $ref: '#/components/parameters/RetailUnitParam'
      responses:
        '200':
          description: 'In case of a successful call, a http status code 200 is returned.

            '
        '401':
          $ref: '#/components/responses/Unauthorized401'
        '404':
          $ref: '#/components/responses/NotFound404'
        '500':
          $ref: '#/components/responses/InternalServerError500'
servers:
- url: http://localhost:8080/pi-api/v1
- url: https://localhost:8080/pi-api/v1
components:
  securitySchemes:
    bearerAuth:
      type: http
      description: 'When using the bearer authentication method an access token has to be provided in the HTTP authorization
        header

        '
      scheme: bearer
    openId:
      type: openIdConnect
      openIdConnectUrl: https://login.microsoftonline.com/52846f0f-bc96-4a36-939b-f4d04bb473a0/v2.0/.well-known/openid-configuration
  responses:
    BadRequest400:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized401:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound404:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    MethodNotAllowed405:
      description: Method Not Allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict409:
      description: Conflict; The authorization has failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError500:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    CardBasedInternalServerError500:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CardBasedError'
  parameters:
    PI-API-Merchant-ID:
      name: merchantId
      in: path
      required: true
      description: 'ID of the merchant in the PI API.

        '
      schema:
        type: string
        minLength: 1
        maxLength: 64
      example: TM-Merchant-ID
    CardBasedTransactionType:
      name: cardBasedTransactionType
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/CardbasedTransactionTypes'
      example: moneyTransferCredit
    Terminal-ID:
      name: terminalId
      in: path
      required: true
      schema:
        type: string
        minLength: 1
        maxLength: 64
      description: 'UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available.

        UUID identifies either a device or a device dependant application installation.

        In case of an installation identification this ID need to be unaltered until removal from device.

        '
      example: terminal1
    PI-API-Transaction-ID:
      name: transactionId
      in: path
      required: true
      description: 'A unique identifier of a transaction in the PI-API backend domain.

        This transaction number must not be confused with the merchantTransactionId. This PI-API transaction number is

        generated by the PI-API server and is unique within the whole PI-API

        server domain.

        '
      schema:
        type: string
        minLength: 6
        maxLength: 40
      example: '843409084374847833'
    X-Request-ID-Param:
      name: X-Request-ID
      in: header
      required: true
      description: 'ID of the request, <b>unique to the call</b>, as determined by the

        initiating party.<br> he X-Request-ID is used to identify a certain

        PI-API call uniquely.

      

# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/diebold/refs/heads/main/openapi/diebold-dn-payment-initiation-api-openapi.yml