{
  "info": {
    "version": "2026-4",
    "contact": {},
    "description": "Platform payment service responsible for handling payment transactions.",
    "title": "Platform Payment Service"
  },
  "paths": {
    "/2026-4/onboardings": {
      "post": {
        "description": "Creates a new onboarding process for a specific user.",
        "operationId": "CreateOnboarding",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOnboardingBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOnboardingResponseDTO"
                }
              }
            },
            "description": "The onboarding was successfully created."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:onboardings:create:one"
            ]
          },
          {
            "oauth2": [
              "payment:onboardings:create:authenticated"
            ]
          }
        ],
        "summary": "Creates a new onboarding.",
        "tags": [
          "Onboardings"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-method-kinds": {
      "get": {
        "description": "Get all payment method kinds that are enabled for the given authentication context. This endpoint is useful to check which payment method kinds a client is allowed to use.",
        "operationId": "GetPaymentMethodKinds",
        "parameters": [
          {
            "explode": true,
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GetPaymentMethodKindsQueryFilterDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentMethodKindsResponseDTO"
                }
              }
            },
            "description": "Retrieved a list of payment method kinds successfully."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-method-kinds:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-method-kinds:read:authenticated"
            ]
          }
        ],
        "summary": "Get all payment method kinds.",
        "tags": [
          "Payment Method Kinds"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-methods": {
      "get": {
        "description": "Get the payment methods for a specific user or onboarding.",
        "operationId": "GetPaymentMethods",
        "parameters": [
          {
            "explode": true,
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentMethodsResponseDTO"
                }
              }
            },
            "description": "The payment methods were successfully retrieved."
          },
          "400": {
            "description": "The request was malformed or missing required parameters."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The onboarding to be filtered by does not exist."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-methods:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-methods:read:authenticated"
            ]
          }
        ],
        "summary": "Get the payment methods.",
        "tags": [
          "Payment Methods"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-methods/{paymentMethodId}": {
      "delete": {
        "description": "Delete a specific payment method. This will remove the payment method from the system making it unavailable for further transactions.",
        "operationId": "DeletePaymentMethod",
        "parameters": [
          {
            "description": "The unique identifier of the payment method to delete.",
            "in": "path",
            "name": "paymentMethodId",
            "required": true,
            "schema": {
              "example": "e7b23b4b-3957-499f-98e9-7205b581d8ac",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The payment method was successfully deleted."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-methods:delete:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-methods:delete:authenticated"
            ]
          }
        ],
        "summary": "Delete a payment method.",
        "tags": [
          "Payment Methods"
        ],
        "x-beta": true
      },
      "get": {
        "description": "Get a specific payment method by ID.",
        "operationId": "GetPaymentMethod",
        "parameters": [
          {
            "description": "The unique identifier of the payment method to retrieve.",
            "in": "path",
            "name": "paymentMethodId",
            "required": true,
            "schema": {
              "example": "e7b23b4b-3957-499f-98e9-7205b581d8ac",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the user to retrieve the payment method for.",
            "in": "query",
            "name": "userId",
            "required": false,
            "schema": {
              "example": "c2d6741a-0301-4f7a-9156-a83b739ae880",
              "format": "uuid",
              "nullable": false,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentMethodResponseDTO"
                }
              }
            },
            "description": "The payment method was successfully retrieved."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment method was not found."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-methods:read:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-methods:read:authenticated"
            ]
          }
        ],
        "summary": "Get a payment method.",
        "tags": [
          "Payment Methods"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-methods/{paymentMethodId}/shares": {
      "delete": {
        "description": "Deletes payment method shares for the given payment method. If a body with shareIds is provided, only those shares are revoked (1–100 IDs). If the body is omitted or shareIds is empty, all shares for this payment method are revoked.",
        "operationId": "DeletePaymentMethodShares",
        "parameters": [
          {
            "description": "The ID of the payment method to revoke shares for.",
            "in": "path",
            "name": "paymentMethodId",
            "required": true,
            "schema": {
              "example": "ca1367ed-7e4f-4b1a-9c51-eb2cd14f577c",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeletePaymentMethodSharesBodyDTO"
              }
            }
          },
          "required": false
        },
        "responses": {
          "204": {
            "description": "The specified payment method shares were deleted."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-method-shares:delete:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-method-shares:delete:authenticated"
            ]
          }
        ],
        "summary": "Revokes payment method shares (bulk or all).",
        "tags": [
          "Payment Method Shares"
        ],
        "x-beta": true
      },
      "get": {
        "description": "Retrieves all payment method shares for the given payment method that the authenticated user has created.",
        "operationId": "GetPaymentMethodShares",
        "parameters": [
          {
            "description": "The ID of the payment method to list shares for.",
            "in": "path",
            "name": "paymentMethodId",
            "required": true,
            "schema": {
              "example": "ca1367ed-7e4f-4b1a-9c51-eb2cd14f577c",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentMethodSharesResponseDTO"
                }
              }
            },
            "description": "The list of payment method shares for this payment method."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment method was not found."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-method-shares:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-method-shares:read:authenticated"
            ]
          }
        ],
        "summary": "Lists payment method shares for a payment method.",
        "tags": [
          "Payment Method Shares"
        ],
        "x-beta": true
      },
      "post": {
        "description": "Creates one share per user in the request. Maximum 50 users per request. Can be called multiple times to add more users; existing shares for the same user are updated.",
        "operationId": "CreatePaymentMethodShares",
        "parameters": [
          {
            "description": "The ID of the payment method to share.",
            "in": "path",
            "name": "paymentMethodId",
            "required": true,
            "schema": {
              "example": "9ff485e6-b028-420e-91cb-4438e335d964",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SharePaymentMethodBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentMethodSharesResponseDTO"
                }
              }
            },
            "description": "The created payment method shares."
          },
          "400": {
            "description": "The request body is invalid, the clientId is missing, or the payment method would be shared with its owner."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "The payment method may not be shared by the requesting user, or on behalf of another client.\n\nMissing one or more required scopes."
          },
          "404": {
            "description": "The payment method was not found."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-method-shares:create:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-method-shares:create:authenticated"
            ]
          }
        ],
        "summary": "Creates payment method shares (bulk).",
        "tags": [
          "Payment Method Shares"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-methods/{paymentMethodId}/shares/{shareId}": {
      "delete": {
        "description": "Deletes a single payment method share by its ID. The share must belong to the given payment method.",
        "operationId": "DeletePaymentMethodShare",
        "parameters": [
          {
            "description": "The ID of the payment method the share belongs to.",
            "in": "path",
            "name": "paymentMethodId",
            "required": true,
            "schema": {
              "example": "ca1367ed-7e4f-4b1a-9c51-eb2cd14f577c",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The ID of the payment method share to revoke.",
            "in": "path",
            "name": "shareId",
            "required": true,
            "schema": {
              "example": "92e5ec38-2a2c-4040-8158-f053b1f45054",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The payment method share was deleted."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment method or share was not found."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-method-shares:delete:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-method-shares:delete:authenticated"
            ]
          }
        ],
        "summary": "Revokes one payment method share.",
        "tags": [
          "Payment Method Shares"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-methods/{paymentMethodId}/verify": {
      "post": {
        "description": "Verify a specific payment method to ensure that it can be used for payments.",
        "operationId": "VerifyPaymentMethod",
        "parameters": [
          {
            "description": "The unique identifier of the payment method to verify.",
            "in": "path",
            "name": "paymentMethodId",
            "required": true,
            "schema": {
              "example": "95215313-0dde-4d1e-84a0-6c73072acd08",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The payment method was verified successfully."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-methods:verify:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-methods:verify:authenticated"
            ]
          }
        ],
        "summary": "Verify a payment method.",
        "tags": [
          "Payment Methods"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-transaction-imports": {
      "get": {
        "description": "Paginate through the imports, newest first. Each entry carries the header and counts; request `include=items` for the per-record results of every import on the page. With the :authenticated scope the result is restricted to the imports of the authenticated user.",
        "operationId": "PaginatePaymentTransactionImports",
        "parameters": [
          {
            "description": "The filter(s) to apply to the imports.",
            "explode": true,
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginatePaymentTransactionImportsQueryFilterDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          {
            "description": "The pagination information for the request.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginatePaymentTransactionImportsQueryPageDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          {
            "description": "Related resources to include in the response.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "example": [
                "items"
              ],
              "items": {
                "enum": [
                  "items"
                ],
                "type": "string"
              },
              "nullable": false,
              "type": "array",
              "uniqueItems": true
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatePaymentTransactionImportsResponseDTO"
                }
              }
            },
            "description": "Retrieved a page of imports successfully."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "The caller may only read its own imports and filtered for another user.\n\nMissing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transaction-imports:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transaction-imports:read:authenticated"
            ]
          }
        ],
        "summary": "Paginate through all payment transaction imports",
        "tags": [
          "Payment Transaction Imports"
        ],
        "x-beta": true
      },
      "post": {
        "description": "Imports payment transactions that were settled outside the platform, so they appear in the transaction history next to platform transactions. The import never moves money: the records are stored as they are, as IMPORTED transactions that can neither be captured, cancelled nor documented. Every record is decided individually - imported, skipped because its external id was imported before, or failed with a reason - and `include=items` reports each result, so a partially failed batch is retried with the failed records only. A malformed record rejects the whole request instead.",
        "operationId": "CreatePaymentTransactionImport",
        "parameters": [
          {
            "description": "Related resources to include in the response.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "example": [
                "items"
              ],
              "items": {
                "enum": [
                  "items"
                ],
                "type": "string"
              },
              "nullable": false,
              "type": "array",
              "uniqueItems": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentTransactionImportBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePaymentTransactionImportResponseDTO"
                }
              }
            },
            "description": "The import was processed. Request `include=items` for the result of every record."
          },
          "400": {
            "description": "The request body is invalid: a missing client or user, a malformed record, a duplicate external id, an empty or too large batch, an authorization after its capture, a timestamp in the future, invalid product configurations, or totals that do not match the products. Nothing was imported."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "The caller may only import its own transactions and named another client or another user.\n\nMissing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transaction-imports:create:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transaction-imports:create:authenticated"
            ]
          }
        ],
        "summary": "Import a batch of payment transactions settled outside the platform",
        "tags": [
          "Payment Transaction Imports"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-transaction-imports/{paymentTransactionImportId}": {
      "delete": {
        "description": "Deletes an import as a unit: the import itself, the result of every submitted record, and every payment transaction the import created, which disappear from the transaction history. A record that was skipped is not rolled back - its transaction was created by an earlier import and belongs to it. For a trusted caller deleting is idempotent, so an import that is already gone reports success rather than an error. The :authenticated scope may only roll back the imports of the authenticated user and is refused otherwise, which covers an import of another user and one that does not exist alike.",
        "operationId": "DeletePaymentTransactionImport",
        "parameters": [
          {
            "description": "The unique identifier of the import to roll back.",
            "in": "path",
            "name": "paymentTransactionImportId",
            "required": true,
            "schema": {
              "example": "9b1c0f4e-2f3a-4c5d-8e6f-7a8b9c0d1e2f",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The import was rolled back, or did not exist."
          },
          "400": {
            "description": "The request parameters are invalid or missing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "The caller may only roll back its own imports and named an import of another user, or one that does not exist.\n\nMissing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transaction-imports:delete:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transaction-imports:delete:authenticated"
            ]
          }
        ],
        "summary": "Roll a payment transaction import back",
        "tags": [
          "Payment Transaction Imports"
        ],
        "x-beta": true
      },
      "get": {
        "description": "Retrieve a single import by its identifier. Request `include=items` for the result of every submitted record, ordered by position. With the :authenticated scope an import of another user is reported as not found rather than forbidden, so it does not reveal that it exists.",
        "operationId": "GetPaymentTransactionImport",
        "parameters": [
          {
            "description": "The unique identifier of the import to retrieve.",
            "in": "path",
            "name": "paymentTransactionImportId",
            "required": true,
            "schema": {
              "example": "9b1c0f4e-2f3a-4c5d-8e6f-7a8b9c0d1e2f",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Related resources to include in the response.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "example": [
                "items"
              ],
              "items": {
                "enum": [
                  "items"
                ],
                "type": "string"
              },
              "nullable": false,
              "type": "array",
              "uniqueItems": true
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentTransactionImportResponseDTO"
                }
              }
            },
            "description": "The import was retrieved successfully."
          },
          "400": {
            "description": "The request parameters are invalid or missing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The import was not found."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transaction-imports:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transaction-imports:read:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transaction-imports:read:authenticated"
            ]
          }
        ],
        "summary": "Get a single payment transaction import",
        "tags": [
          "Payment Transaction Imports"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-transactions": {
      "get": {
        "description": "Paginate through all payment transactions that are available based in the current authentication context. Transactions of every origin are returned unless filtered; each entry is either a platform or an imported transaction, discriminated by `origin`.",
        "operationId": "PaginatePaymentTransactions",
        "parameters": [
          {
            "description": "The filter(s) to apply to the payment transactions.",
            "explode": true,
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          {
            "description": "The pagination information for the request.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryPageDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatePaymentTransactionsResponseDTO"
                }
              }
            },
            "description": "Retrieved a page of payment transactions successfully."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transactions:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:authenticated"
            ]
          }
        ],
        "summary": "Paginate through all payment transactions",
        "tags": [
          "Payment Transactions"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-transactions/{paymentTransactionId}": {
      "get": {
        "description": "Retrieve a single payment transaction by its identifier.",
        "operationId": "GetPaymentTransaction",
        "parameters": [
          {
            "description": "The unique identifier of the payment transaction to retrieve.",
            "in": "path",
            "name": "paymentTransactionId",
            "required": true,
            "schema": {
              "example": "6fc2acbd-3afd-4df3-9967-836a7929b13f",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentTransactionResponseDTO"
                }
              }
            },
            "description": "The payment transaction was retrieved successfully."
          },
          "400": {
            "description": "The request parameters are invalid or missing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment transaction was not found."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transactions:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:authenticated"
            ]
          }
        ],
        "summary": "Get a single payment transaction",
        "tags": [
          "Payment Transactions"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-transactions/{paymentTransactionId}/downloads/delivery-note": {
      "get": {
        "description": "Redirects to a temporary download URL for the delivery note of the given payment transaction.",
        "operationId": "DownloadPaymentTransactionDeliveryNote",
        "parameters": [
          {
            "description": "The unique identifier of the payment transaction to download the delivery note for.",
            "in": "path",
            "name": "paymentTransactionId",
            "required": true,
            "schema": {
              "example": "6e40be56-ef5f-4a86-a666-aa7a89f39e26",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Determines the file type of the download. If the requested media type is not supported, a 406 Not Acceptable response is returned.",
            "in": "header",
            "name": "Accept",
            "schema": {
              "example": "image/png, image/*;q=0.9",
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirects to the delivery note download URL."
          },
          "400": {
            "description": "The request parameters are invalid or missing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment transaction or delivery note was not found."
          },
          "406": {
            "description": "The requested media type is not supported."
          },
          "409": {
            "description": "The payment transaction was not processed by a provider (e.g. an imported transaction) and has no documents."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transactions:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:authenticated"
            ]
          }
        ],
        "summary": "Download a delivery note for a payment transaction",
        "tags": [
          "Payment Transactions"
        ],
        "x-beta": true
      },
      "post": {
        "description": "Creates a temporary download URL for the delivery note of the given payment transaction.",
        "operationId": "CreatePaymentTransactionDeliveryNoteDownload",
        "parameters": [
          {
            "description": "The unique identifier of the payment transaction to download the delivery note for.",
            "in": "path",
            "name": "paymentTransactionId",
            "required": true,
            "schema": {
              "example": "6e40be56-ef5f-4a86-a666-aa7a89f39e26",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Determines the file type of the download. If the requested media type is not supported, a 406 Not Acceptable response is returned.",
            "in": "header",
            "name": "Accept",
            "schema": {
              "example": "image/png, image/*;q=0.9",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDeliveryNoteDownloadResponseDTO"
                }
              }
            },
            "description": "The delivery note download has been created successfully."
          },
          "400": {
            "description": "The request parameters are invalid or missing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment transaction or delivery note was not found."
          },
          "406": {
            "description": "The requested media type is not supported."
          },
          "409": {
            "description": "The payment transaction was not processed by a provider (e.g. an imported transaction) and has no documents."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transactions:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:authenticated"
            ]
          }
        ],
        "summary": "Create a delivery note download for a payment transaction",
        "tags": [
          "Payment Transactions"
        ],
        "x-beta": true
      }
    },
    "/2026-4/payment-transactions/{paymentTransactionId}/downloads/receipt": {
      "get": {
        "description": "Redirects to a temporary download URL for the receipt of the given payment transaction.",
        "operationId": "DownloadPaymentTransactionReceipt",
        "parameters": [
          {
            "description": "The unique identifier of the payment transaction to download the receipt for.",
            "in": "path",
            "name": "paymentTransactionId",
            "required": true,
            "schema": {
              "example": "6e40be56-ef5f-4a86-a666-aa7a89f39e26",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Determines the file type of the download. If the requested media type is not supported, a 406 Not Acceptable response is returned.",
            "in": "header",
            "name": "Accept",
            "schema": {
              "example": "image/png, image/*;q=0.9",
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirects to the receipt download URL."
          },
          "400": {
            "description": "The request parameters are invalid or missing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment transaction or receipt was not found."
          },
          "406": {
            "description": "The requested media type is not supported."
          },
          "409": {
            "description": "The payment transaction was not processed by a provider (e.g. an imported transaction) and has no documents."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transactions:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:authenticated"
            ]
          }
        ],
        "summary": "Download a receipt for a payment transaction",
        "tags": [
          "Payment Transactions"
        ],
        "x-beta": true
      },
      "post": {
        "description": "Creates a temporary download URL for the receipt of the given payment transaction.",
        "operationId": "CreatePaymentTransactionReceiptDownload",
        "parameters": [
          {
            "description": "The unique identifier of the payment transaction to download the receipt for.",
            "in": "path",
            "name": "paymentTransactionId",
            "required": true,
            "schema": {
              "example": "6e40be56-ef5f-4a86-a666-aa7a89f39e26",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Determines the file type of the download. If the requested media type is not supported, a 406 Not Acceptable response is returned.",
            "in": "header",
            "name": "Accept",
            "schema": {
              "example": "image/png, image/*;q=0.9",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateReceiptDownloadResponseDTO"
                }
              }
            },
            "description": "The receipt download has been created successfully."
          },
          "400": {
            "description": "The request parameters are invalid or missing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The payment transaction or receipt was not found."
          },
          "406": {
            "description": "The requested media type is not supported."
          },
          "409": {
            "description": "The payment transaction was not processed by a provider (e.g. an imported transaction) and has no documents."
          },
          "500": {
            "description": "An internal server error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "payment:payment-transactions:read:all"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-transactions:read:authenticated"
            ]
          }
        ],
        "summary": "Create a receipt download for a payment transaction",
        "tags": [
          "Payment Transactions"
        ],
        "x-beta": true
      }
    }
  },
  "components": {
    "schemas": {
      "AuthorizationType": {
        "description": "The authorization type for the transaction. Either PARTIAL if the authorized amount is a temporary hold on the user's funds, or FINAL if the authorized amount is the final amount that will be charged to the user.",
        "enum": [
          "PARTIAL",
          "FINAL"
        ],
        "type": "string"
      },
      "CreateDeliveryNoteDownloadResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/DeliveryNoteDownloadDTO"
              }
            ],
            "description": "The download details for the delivery note.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CreateOnboardingBodyDTO": {
        "properties": {
          "cancelRedirectUrl": {
            "description": "The URL to which the user will be redirected after a cancelled onboarding.",
            "example": "https://example.com/cancel",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "clientId": {
            "description": "The identifier of the client the onboarding belongs to. Required if not requesting with the :authenticated scope.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          },
          "failureRedirectUrl": {
            "description": "The URL to which the user will be redirected after a failed onboarding.",
            "example": "https://example.com/failure",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "kind": {
            "description": "The kind of the payment method to be created.",
            "example": "FUEL_CARD_PROVIDER",
            "nullable": false,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "An optional metadata object that is passed to the underlying payment integration. The requirements may vary for each provider.",
            "nullable": false,
            "type": "object"
          },
          "proxy": {
            "default": false,
            "description": "Determines if the payment method will be created as proxy payment method.",
            "example": true,
            "nullable": false,
            "type": "boolean"
          },
          "successRedirectUrl": {
            "description": "The URL to which the user will be redirected after a successful onboarding.",
            "example": "https://example.com/success",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user associated with the onboarding. Required if not requesting with the :authenticated scope.",
            "example": "c7bf1e9e-6ea0-445c-b3ae-e814a109416b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "kind",
          "successRedirectUrl",
          "cancelRedirectUrl",
          "failureRedirectUrl"
        ],
        "type": "object"
      },
      "CreateOnboardingResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/OnboardingDTO"
              }
            ],
            "description": "The onboarding that was created.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CreatePaymentTransactionImportBodyDTO": {
        "properties": {
          "clientId": {
            "description": "The identifier of the client the imported transactions belong to. Required if not requesting with the :authenticated scope, which defaults it to the requesting client and allows no other.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          },
          "transactions": {
            "description": "The transactions to import, at most 100 per request. Each `externalId` must be unique within the request. A single malformed entry rejects the whole request; larger backfills page through multiple requests.",
            "items": {
              "$ref": "#/components/schemas/CreatePaymentTransactionImportItemDTO"
            },
            "maxItems": 100,
            "minItems": 1,
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "userId": {
            "description": "The unique identifier of the user the imported transactions belong to. Required if not requesting with the :authenticated scope, which defaults it to the authenticated user and allows no other.",
            "example": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "transactions"
        ],
        "type": "object"
      },
      "CreatePaymentTransactionImportItemDTO": {
        "properties": {
          "additionalData": {
            "additionalProperties": true,
            "description": "Free-form JSON object of integration-specific fields, e.g. a card scheme reference or an odometer reading. Stored and returned exactly as received, not interpreted, and visible to everyone who may read the transaction.",
            "example": {
              "cardSchemeReference": "MCC-5541",
              "legacyInvoiceNo": "R-2024-88213",
              "odometerKm": 143902
            },
            "nullable": false,
            "type": "object"
          },
          "authorizedAmount": {
            "description": "The amount that was originally authorized, e.g. a pre-authorization at the pump. May differ from the captured amount; repeat the captured amount if the origin system does not report it separately.",
            "example": "80.00",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "authorizedAt": {
            "description": "When the authorization happened. Must be in the past and not after `capturedAt`; repeat `capturedAt` if the origin system does not report it separately.",
            "example": "2024-03-11T09:38:12.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "capturedAmount": {
            "description": "The amount that was captured, which is what the user was charged.",
            "example": "46.87",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "capturedAt": {
            "description": "When the payment settled outside the platform. Must be in the past. An imported transaction is always CAPTURED.",
            "example": "2024-03-11T09:42:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the transaction.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "externalId": {
            "description": "The identifier the importing system assigns to the transaction. Unique per importing client across its imports and users: re-sending an id is a no-op that reports the record as SKIPPED. Another client may use the same id without interfering.",
            "example": "dkv:TXN-2024-0009182",
            "maxLength": 255,
            "minLength": 1,
            "nullable": false,
            "type": "string"
          },
          "language": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTokenLanguage"
              }
            ],
            "description": "The language the transaction's labels (products, configurations) are in.",
            "example": "DE",
            "nullable": false,
            "type": "string"
          },
          "paymentMethodId": {
            "description": "The unique identifier of the payment method the transaction was paid with. Must exist and belong to the user; the transaction's kind is derived from it.",
            "example": "b4fd81c9-8969-4323-98b7-855a7d7f0d60",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "poi": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CreatePaymentTransactionImportPoiDTO"
              }
            ],
            "description": "The point of interaction (POI) where the transaction took place. Omit if the origin system does not know it; its identifier alone may be omitted when the site cannot be resolved to one.",
            "nullable": false,
            "type": "object"
          },
          "products": {
            "description": "The products of the transaction, at least one.",
            "items": {
              "$ref": "#/components/schemas/CreatePaymentTransactionImportProductDTO"
            },
            "minItems": 1,
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "summary": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionSummaryDTO"
              }
            ],
            "description": "The totals of the transaction, in the transaction's currency. Each total must equal the sum of the corresponding field across the products: `totalAmountExcludingVAT` the sum of their `priceExcludingVAT`, `totalAmountIncludingVAT` the sum of their `priceIncludingVAT`, and `vatAmount` the sum of their `vatAmount`.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "externalId",
          "paymentMethodId",
          "currency",
          "language",
          "authorizedAmount",
          "authorizedAt",
          "capturedAmount",
          "capturedAt",
          "products",
          "summary"
        ],
        "type": "object"
      },
      "CreatePaymentTransactionImportPoiDTO": {
        "properties": {
          "address": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionPoiAddressDTO"
              }
            ],
            "description": "The address of the point of interest (POI).",
            "nullable": false,
            "type": "object"
          },
          "id": {
            "description": "The unique identifier of the point of interest (POI) the transaction took place at. Omit if the importing system cannot resolve the site to one.",
            "example": "154e01ae-557a-48b3-a68a-609f1507db1d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the point of interest (POI).",
            "example": "PACE Fuel Station",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "address"
        ],
        "type": "object"
      },
      "CreatePaymentTransactionImportProductDTO": {
        "properties": {
          "configurations": {
            "description": "The configurations of the product, each named once, as its type requires them. A configuration's `value` is the platform-defined identifier, independent of the transaction's language, while its `label` is the text shown to the user in that language.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/ProductConfigurationInputTypeDTO",
                "LOCATION": "#/components/schemas/ProductConfigurationLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ProductConfigurationInputTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationLocationTypeDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "label": {
            "description": "The label of the product, in the transaction's language.",
            "example": "Diesel",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The total price of this product excluding VAT.",
            "example": "39.39",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The total price of this product including VAT.",
            "example": "46.87",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitExcludingVAT": {
            "description": "The price per unit of the product excluding VAT.",
            "example": "1.020",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitIncludingVAT": {
            "description": "The price per unit of the product including VAT.",
            "example": "1.214",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "quantity": {
            "description": "The quantity of the product.",
            "example": "38.62",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the product.",
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "description": "The unit of the product.",
            "example": "LITER",
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The VAT amount of the product.",
            "example": "7.48",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatRate": {
            "description": "The VAT rate of the product from 0 (0%) to 1 (100%).",
            "example": "0.19",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 1,
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "type",
          "label",
          "configurations",
          "unit",
          "quantity",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatRate",
          "vatAmount"
        ],
        "type": "object"
      },
      "CreatePaymentTransactionImportResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionImportDTO"
              }
            ],
            "description": "The created import with the result of every submitted record.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CreateReceiptDownloadResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReceiptDownloadDTO"
              }
            ],
            "description": "The download details for the receipt.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "DeletePaymentMethodSharesBodyDTO": {
        "properties": {
          "shareIds": {
            "description": "The IDs of the payment method shares to revoke. Maximum 50 per request. Omit or pass an empty array to revoke all shares for the payment method.",
            "example": [
              "cf315018-bba1-4d25-8417-9182c149b951",
              "6527a33c-c301-4f54-a838-bbfd4c1ec7e0"
            ],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "maxItems": 50,
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "DeliveryNoteDownloadDTO": {
        "properties": {
          "downloadURL": {
            "description": "The download URL of the delivery note.",
            "example": "https://example.com/delivery-note.pdf",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "expiresAt": {
            "description": "The date and time when the download URL expires.",
            "example": "2026-01-29T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "downloadURL",
          "expiresAt"
        ],
        "type": "object"
      },
      "GetPaymentMethodKindsQueryFilterClientIdDTO": {
        "properties": {
          "eq": {
            "description": "Filter payment method kinds by a specific client ID.",
            "example": "drive-app-ios",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodKindsQueryFilterDTO": {
        "properties": {
          "clientId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodKindsQueryFilterClientIdDTO"
              }
            ],
            "description": "Filter payment method kinds by client ID.",
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodKindsResponseDTO": {
        "properties": {
          "data": {
            "description": "The list of payment method kinds.",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodKindDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetPaymentMethodResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDTO"
              }
            ],
            "description": "The user payment method that was retrieved.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetPaymentMethodSharesResponseDTO": {
        "properties": {
          "data": {
            "description": "A list of payment method shares.",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodShareDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetPaymentMethodsQueryFilterClientIdDTO": {
        "properties": {
          "eq": {
            "description": "Filter payment methods by a specific client ID.",
            "example": "drive-app-ios",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodsQueryFilterDTO": {
        "properties": {
          "clientId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterClientIdDTO"
              }
            ],
            "description": "Filter payment methods by client ID.",
            "nullable": false,
            "type": "object"
          },
          "implicit": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterImplicitDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "onboardingId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterOnboardingIdDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "proxy": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterProxyDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "userId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterUserIdDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodsQueryFilterImplicitDTO": {
        "properties": {
          "eq": {
            "example": false,
            "nullable": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodsQueryFilterOnboardingIdDTO": {
        "properties": {
          "eq": {
            "example": "953b0cfa-e66c-4f25-b6cd-dc4d178e6852",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodsQueryFilterProxyDTO": {
        "properties": {
          "eq": {
            "example": false,
            "nullable": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodsQueryFilterUserIdDTO": {
        "properties": {
          "eq": {
            "example": "123e4567-e89b-12d3-a456-426614174000",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "GetPaymentMethodsResponseDTO": {
        "properties": {
          "data": {
            "description": "A list of payment methods for a specific user.",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetPaymentTransactionImportResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionImportDTO"
              }
            ],
            "description": "The import for the given import ID, with the result of every submitted record.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetPaymentTransactionResponseDTO": {
        "properties": {
          "data": {
            "description": "The payment transaction for the given payment transaction ID. Its shape depends on `origin`.",
            "discriminator": {
              "mapping": {
                "IMPORTED": "#/components/schemas/ImportedPaymentTransactionDTO",
                "PLATFORM": "#/components/schemas/PlatformPaymentTransactionDTO"
              },
              "propertyName": "origin"
            },
            "nullable": false,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlatformPaymentTransactionDTO"
              },
              {
                "$ref": "#/components/schemas/ImportedPaymentTransactionDTO"
              }
            ],
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "ImportedPaymentTransactionDTO": {
        "properties": {
          "additionalData": {
            "additionalProperties": true,
            "description": "Free-form additional data supplied by the importing system, returned exactly as imported. Not interpreted by this service.",
            "example": {
              "cardSchemeReference": "MCC-5541",
              "legacyInvoiceNo": "R-2024-88213",
              "odometerKm": 143902
            },
            "nullable": true,
            "type": "object"
          },
          "authorizedAmount": {
            "description": "The amount that was authorized from the payment transaction. This is the amount that was requested to be charged to the user.",
            "example": "120.00",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "authorizedAt": {
            "description": "The date and time when the payment transaction was authorized",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "capturedAmount": {
            "description": "The amount that was captured from the payment transaction. This is the amount that was actually charged to the user.",
            "example": "46.87",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "capturedAt": {
            "description": "The date and time when the payment transaction was captured",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "clientId": {
            "description": "The identifier of the client that created the payment transaction: the one that authorized it for a platform transaction, the one that imported it for an imported one.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          },
          "createdAt": {
            "description": "The date and time when the payment transaction was created",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the transaction.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "externalId": {
            "description": "The identifier the importing system assigned to the transaction, as submitted to the import. Unique per importing client.",
            "example": "dkv:TXN-2024-0009182",
            "nullable": false,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the payment transaction",
            "example": "6fc2acbd-3afd-4df3-9967-836a7929b13f",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "importId": {
            "description": "The unique identifier of the import that created the transaction.",
            "example": "9b1c0f4e-2f3a-4c5d-8e6f-7a8b9c0d1e2f",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "kind": {
            "description": "The kind of the payment method used for this transaction.",
            "example": "FUEL_CARD_PROVIDER",
            "nullable": false,
            "type": "string"
          },
          "origin": {
            "description": "The origin of the transaction. IMPORTED: settled outside the platform and imported; never authorized, captured, cancelled or documented by this service.",
            "enum": [
              "IMPORTED"
            ],
            "example": "IMPORTED",
            "nullable": false,
            "type": "string"
          },
          "paymentMethodId": {
            "description": "The unique identifier of the payment method used for the transaction",
            "example": "b4fd81c9-8969-4323-98b7-855a7d7f0d60",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "poi": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/ImportedPaymentTransactionPoiDTO"
              }
            ],
            "description": "The point of interaction (POI) where the transaction took place, or null if the importing system did not know it.",
            "nullable": true,
            "type": "object"
          },
          "products": {
            "description": "The products that are part of the transaction. Empty if the importing system did not know them.",
            "items": {
              "$ref": "#/components/schemas/ImportedPaymentTransactionProductDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "status": {
            "description": "The current status of the payment transaction. An imported transaction is always CAPTURED: it records money that already moved.",
            "enum": [
              "AUTHORIZING",
              "AUTHORIZING_ACTIONS_REQUIRED",
              "AUTHORIZING_FAILED",
              "AUTHORIZING_CANCELLED",
              "AUTHORIZED",
              "AUTHORIZED_CANCELLING",
              "AUTHORIZED_CANCELLING_FAILED",
              "AUTHORIZED_CANCELLED",
              "CAPTURING",
              "CAPTURING_FAILED",
              "CAPTURING_CANCELLED",
              "CAPTURED"
            ],
            "example": "CAPTURED",
            "nullable": false,
            "type": "string"
          },
          "summary": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionSummaryDTO"
              }
            ],
            "description": "The summary of the transaction, including the total amounts from each product.",
            "nullable": true,
            "type": "object"
          },
          "updatedAt": {
            "description": "The date and time when the payment transaction was last updated",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user associated with the payment transaction.",
            "example": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "clientId",
          "paymentMethodId",
          "userId",
          "kind",
          "status",
          "currency",
          "authorizedAmount",
          "authorizedAt",
          "capturedAmount",
          "capturedAt",
          "summary",
          "createdAt",
          "updatedAt",
          "origin",
          "importId",
          "externalId",
          "poi",
          "products",
          "additionalData"
        ],
        "type": "object"
      },
      "ImportedPaymentTransactionPoiDTO": {
        "properties": {
          "address": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionPoiAddressDTO"
              }
            ],
            "description": "The address of the point of interest (POI).",
            "nullable": false,
            "type": "object"
          },
          "id": {
            "description": "The unique identifier of the point of interest (POI), or null if the importing system could not resolve the site to one.",
            "example": "154e01ae-557a-48b3-a68a-609f1507db1d",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the point of interest (POI).",
            "example": "PACE Fuel Station",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "address"
        ],
        "type": "object"
      },
      "ImportedPaymentTransactionProductDTO": {
        "properties": {
          "configurations": {
            "description": "A list of product configurations.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/ProductConfigurationInputTypeDTO",
                "LOCATION": "#/components/schemas/ProductConfigurationLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ProductConfigurationInputTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationLocationTypeDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "currency": {
            "description": "The currency of the product.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the product.",
            "example": "8394e4df-95f6-4b9e-87da-4982c0aaec4b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the product.",
            "example": "Fueling",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The total price of this product excluding VAT.",
            "example": "61.34",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The total price of this product including VAT.",
            "example": "72.99",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitExcludingVAT": {
            "description": "The price per unit of the product excluding VAT.",
            "example": "1.596",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitIncludingVAT": {
            "description": "The price per unit of the product including VAT.",
            "example": "1.899",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "quantity": {
            "description": "The quantity of the product.",
            "example": "38.62",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "status": {
            "description": "The status of the product. An imported product is always CONFIGURED: it is priced and final.",
            "enum": [
              "CONFIGURED"
            ],
            "example": "CONFIGURED",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the product.",
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "description": "The unit of the product.",
            "example": "LITER",
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The VAT amount of the product.",
            "example": "13.63",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatRate": {
            "description": "The VAT rate of the product from 0 (0%) to 1 (100%).",
            "example": "0.19",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 1,
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "type",
          "configurations",
          "status",
          "unit",
          "quantity",
          "currency",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatRate",
          "vatAmount"
        ],
        "type": "object"
      },
      "OnboardingDTO": {
        "properties": {
          "cancelRedirectUrl": {
            "description": "The URL to which the user will be redirected after a cancelled onboarding.",
            "example": "https://example.com/cancel",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "cancelledAt": {
            "description": "The date and time when the onboarding was cancelled.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "clientOnboardingUrl": {
            "description": "The URL which the user will need to visit to complete the onboarding.",
            "example": "https://example.com/onboarding",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "completedAt": {
            "description": "The date and time when the onboarding was completed.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "createdAt": {
            "description": "The date and time when the onboarding was created.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "expiresAt": {
            "description": "The date and time when the onboarding will expire.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failedAt": {
            "description": "The date and time when the onboarding has failed.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failureRedirectUrl": {
            "description": "The URL to which the user will be redirected after a failed onboarding.",
            "example": "https://example.com/failure",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the onboarding.",
            "example": "565aa839-876b-4f24-8de0-dd8df72eda17",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "kind": {
            "description": "The kind of the payment method to be created.",
            "example": "FUEL_CARD_PROVIDER",
            "nullable": false,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "An optional metadata object that is passed to the underlying payment integration. The requirements may vary for each provider.",
            "nullable": true,
            "type": "object"
          },
          "proxy": {
            "description": "Determines if the payment method will be created as proxy payment method.",
            "example": true,
            "nullable": false,
            "type": "boolean"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OnboardingStatus"
              }
            ],
            "description": "The current status of the onboarding process.",
            "example": "PENDING",
            "nullable": false,
            "type": "string"
          },
          "successRedirectUrl": {
            "description": "The URL to which the user will be redirected after a successful onboarding.",
            "example": "https://example.com/success",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "updatedAt": {
            "description": "The date and time when the onboarding was last updated.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user associated with the onboarding.",
            "example": "c7bf1e9e-6ea0-445c-b3ae-e814a109416b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "userId",
          "kind",
          "proxy",
          "status",
          "clientOnboardingUrl",
          "successRedirectUrl",
          "cancelRedirectUrl",
          "failureRedirectUrl",
          "metadata",
          "completedAt",
          "cancelledAt",
          "failedAt",
          "expiresAt",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "OnboardingStatus": {
        "description": "The current status of the onboarding process.",
        "enum": [
          "PENDING",
          "COMPLETED",
          "FAILED",
          "CANCELLED"
        ],
        "type": "string"
      },
      "PaginatePaymentTransactionImportsQueryFilterClientIdDTO": {
        "properties": {
          "eq": {
            "example": "backoffice-importer",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "backoffice-importer",
              "dkv-settlement-importer"
            ],
            "items": {
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionImportsQueryFilterCreatedAtDTO": {
        "properties": {
          "gte": {
            "description": "Only imports created at or after this point in time.",
            "example": "2026-07-01T00:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "lte": {
            "description": "Only imports created at or before this point in time.",
            "example": "2026-07-31T23:59:59.999Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionImportsQueryFilterDTO": {
        "properties": {
          "clientId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionImportsQueryFilterClientIdDTO"
              }
            ],
            "description": "Filter imports by the client that submitted them.",
            "nullable": false,
            "type": "object"
          },
          "createdAt": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionImportsQueryFilterCreatedAtDTO"
              }
            ],
            "description": "Filter imports by when they were created.",
            "nullable": false,
            "type": "object"
          },
          "status": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionImportsQueryFilterStatusDTO"
              }
            ],
            "description": "Filter imports by status.",
            "nullable": false,
            "type": "object"
          },
          "userId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionImportsQueryFilterUserIdDTO"
              }
            ],
            "description": "Filter imports by the user the imported transactions belong to.",
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionImportsQueryFilterStatusDTO": {
        "properties": {
          "eq": {
            "enum": [
              "COMPLETED",
              "PARTIAL",
              "FAILED"
            ],
            "example": "PARTIAL",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "PARTIAL",
              "FAILED"
            ],
            "items": {
              "enum": [
                "COMPLETED",
                "PARTIAL",
                "FAILED"
              ],
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionImportsQueryFilterUserIdDTO": {
        "properties": {
          "eq": {
            "description": "The unique identifier of the user the imported transactions belong to.",
            "example": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionImportsQueryPageDTO": {
        "properties": {
          "number": {
            "default": 0,
            "description": "The page number to return.",
            "example": 0,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "size": {
            "default": 10,
            "description": "The number of imports to return per page.",
            "example": 10,
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "maximum": 50,
            "minimum": 1,
            "nullable": false,
            "type": "integer"
          }
        },
        "required": [
          "number",
          "size"
        ],
        "type": "object"
      },
      "PaginatePaymentTransactionImportsResponseDTO": {
        "properties": {
          "data": {
            "description": "The page of imports.",
            "items": {
              "$ref": "#/components/schemas/PaymentTransactionImportDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryCartIdFilterDTO": {
        "properties": {
          "eq": {
            "example": "1b73357c-fede-4e5f-9a0e-1999b31d5022",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterAuthorizationTypeDTO": {
        "properties": {
          "eq": {
            "enum": [
              "PARTIAL",
              "FINAL"
            ],
            "example": "PARTIAL",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterClientIdDTO": {
        "properties": {
          "eq": {
            "example": "drive-app-ios",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "drive-app-ios",
              "drive-app-android"
            ],
            "items": {
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterDTO": {
        "properties": {
          "authorizationType": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterAuthorizationTypeDTO"
              }
            ],
            "description": "Filter payment transactions by authorization type.",
            "nullable": false,
            "type": "object"
          },
          "cartId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryCartIdFilterDTO"
              }
            ],
            "description": "Filter payment transactions by cart ID.",
            "nullable": false,
            "type": "object"
          },
          "clientId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterClientIdDTO"
              }
            ],
            "description": "Filter payment transactions by the ID of the client that authorized them.",
            "nullable": false,
            "type": "object"
          },
          "id": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterIdDTO"
              }
            ],
            "description": "Filter payment transactions by ID.",
            "nullable": false,
            "type": "object"
          },
          "importId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterImportIdDTO"
              }
            ],
            "description": "Filter payment transactions by the import that created them. Only imported transactions have one.",
            "nullable": false,
            "type": "object"
          },
          "kind": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterKindDTO"
              }
            ],
            "description": "Filter payment transactions by the kind of the payment method they were paid with.",
            "nullable": false,
            "type": "object"
          },
          "origin": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterOriginDTO"
              }
            ],
            "description": "Filter payment transactions by origin. Without it, transactions of every origin are returned.",
            "nullable": false,
            "type": "object"
          },
          "paymentMethodId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterPaymentMethodIdDTO"
              }
            ],
            "description": "Filter payment transactions by payment method ID.",
            "nullable": false,
            "type": "object"
          },
          "poiId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterPoiIdDTO"
              }
            ],
            "description": "Filter payment transactions by the ID of the point of interaction they took place at.",
            "nullable": false,
            "type": "object"
          },
          "products": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsDTO"
              }
            ],
            "description": "Filter payment transactions by products.",
            "nullable": false,
            "type": "object"
          },
          "proxy": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProxyDTO"
              }
            ],
            "description": "Filter payment transactions by proxy flag.",
            "nullable": false,
            "type": "object"
          },
          "status": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterStatusDTO"
              }
            ],
            "description": "Filter payment transactions by status.",
            "nullable": false,
            "type": "object"
          },
          "userId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterUserIdDTO"
              }
            ],
            "description": "Filter payment transactions by the ID of the user who paid for them.",
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterIdDTO": {
        "properties": {
          "eq": {
            "example": "2bddafa9-f68e-49d9-81b6-6779548be8f6",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "dfe18fab-67ae-4218-954a-b3fdc79d59af",
              "99b8d67c-7443-45b7-8865-79706837cdfe"
            ],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterImportIdDTO": {
        "properties": {
          "eq": {
            "example": "9b1c0f4e-2f3a-4c5d-8e6f-7a8b9c0d1e2f",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterKindDTO": {
        "properties": {
          "eq": {
            "example": "DKV",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "DKV",
              "HOYER"
            ],
            "items": {
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterOriginDTO": {
        "properties": {
          "eq": {
            "enum": [
              "PLATFORM",
              "IMPORTED"
            ],
            "example": "IMPORTED",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "PLATFORM",
              "IMPORTED"
            ],
            "items": {
              "enum": [
                "PLATFORM",
                "IMPORTED"
              ],
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterPaymentMethodIdDTO": {
        "properties": {
          "eq": {
            "example": "39b6ca0f-c2d3-49ac-ad08-df97c06b452e",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterPoiIdDTO": {
        "properties": {
          "eq": {
            "example": "154e01ae-557a-48b3-a68a-609f1507db1d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProductsDTO": {
        "properties": {
          "every": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "none": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "some": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProductsFilterBuyerIdDTO": {
        "properties": {
          "eq": {
            "example": "e60605ae-5164-4a5f-8452-4cf95a568817",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProductsFilterContractIdDTO": {
        "properties": {
          "eq": {
            "example": "a7d657e3-563a-47f2-a864-decbe96cc1ae",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProductsFilterDTO": {
        "properties": {
          "buyerId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterBuyerIdDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "contractId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterContractIdDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "supplierId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterSupplierIdDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          },
          "type": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterTypeDTO"
              }
            ],
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProductsFilterSupplierIdDTO": {
        "properties": {
          "eq": {
            "example": "bf3df0d7-f880-4508-8c3c-d5071949b5cf",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProductsFilterTypeDTO": {
        "properties": {
          "eq": {
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "FUELING",
              "WASHING"
            ],
            "items": {
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "not": {
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProxyDTO": {
        "properties": {
          "eq": {
            "example": true,
            "nullable": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterStatusDTO": {
        "properties": {
          "eq": {
            "enum": [
              "AUTHORIZING",
              "AUTHORIZING_ACTIONS_REQUIRED",
              "AUTHORIZING_FAILED",
              "AUTHORIZING_CANCELLED",
              "AUTHORIZED",
              "AUTHORIZED_CANCELLING",
              "AUTHORIZED_CANCELLING_FAILED",
              "AUTHORIZED_CANCELLED",
              "CAPTURING",
              "CAPTURING_FAILED",
              "CAPTURING_CANCELLED",
              "CAPTURED"
            ],
            "example": "AUTHORIZED",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "example": [
              "AUTHORIZING_FAILED",
              "CAPTURING_FAILED",
              "AUTHORIZED_CANCELLING_FAILED"
            ],
            "items": {
              "enum": [
                "AUTHORIZING",
                "AUTHORIZING_ACTIONS_REQUIRED",
                "AUTHORIZING_FAILED",
                "AUTHORIZING_CANCELLED",
                "AUTHORIZED",
                "AUTHORIZED_CANCELLING",
                "AUTHORIZED_CANCELLING_FAILED",
                "AUTHORIZED_CANCELLED",
                "CAPTURING",
                "CAPTURING_FAILED",
                "CAPTURING_CANCELLED",
                "CAPTURED"
              ],
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterUserIdDTO": {
        "properties": {
          "eq": {
            "example": "cb760b7d-6bcb-4a3c-9d2a-b4cf3594194c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryPageDTO": {
        "properties": {
          "number": {
            "default": 0,
            "description": "The page number to return.",
            "example": 10,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "size": {
            "default": 10,
            "description": "The number of items to return per page.",
            "example": 10,
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "maximum": 50,
            "minimum": 1,
            "nullable": false,
            "type": "integer"
          }
        },
        "required": [
          "number",
          "size"
        ],
        "type": "object"
      },
      "PaginatePaymentTransactionsResponseDTO": {
        "properties": {
          "data": {
            "description": "The page of payment transactions. The shape of each entry depends on its `origin`.",
            "discriminator": {
              "mapping": {
                "IMPORTED": "#/components/schemas/ImportedPaymentTransactionDTO",
                "PLATFORM": "#/components/schemas/PlatformPaymentTransactionDTO"
              },
              "propertyName": "origin"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PlatformPaymentTransactionDTO"
                },
                {
                  "$ref": "#/components/schemas/ImportedPaymentTransactionDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PaymentMethodDTO": {
        "properties": {
          "createdAt": {
            "description": "The date and time when the payment method was created.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "expiresAt": {
            "description": "The date and time when the payment method will expire.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "icons": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodIconsDTO"
              }
            ],
            "description": "The icons to use for this payment method.",
            "nullable": false,
            "type": "object"
          },
          "id": {
            "description": "The unique identifier for the payment method.",
            "example": "40d8d9b4-ed3a-4a21-9745-5d86279a1dcd",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "implicit": {
            "description": "A boolean indicating whether the payment method is implicit. Implicit payment methods are not onboarded by the user but rather the system during authorization.",
            "example": true,
            "nullable": false,
            "type": "boolean"
          },
          "kind": {
            "description": "The kind of the payment method.",
            "example": "FUEL_CARD_PROVIDER",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the payment method kind.",
            "example": "Fuel Card Provider",
            "nullable": false,
            "type": "string"
          },
          "lastUsedAt": {
            "description": "The date and time when the payment method was last used to capture a payment transaction.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "An optional object containing additional metadata for the payment method.",
            "nullable": true,
            "type": "object"
          },
          "name": {
            "description": "A human-readable name for the payment method.",
            "example": "XYZ ending in 1234",
            "nullable": false,
            "type": "string"
          },
          "onboardingId": {
            "description": "The unique identifier of the onboarding through which the payment method was created. This is null if the payment method was not created through an onboarding process.",
            "example": "28da8789-53c8-4801-814c-db62a40d34df",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "proxy": {
            "description": "A boolean indicating whether the payment method is a proxy payment method.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "restrictions": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodRestrictionsDTO"
              }
            ],
            "description": "The restrictions that constrain how the payment method may be used.",
            "nullable": false,
            "type": "object"
          },
          "shareCount": {
            "description": "The number of users this payment method is currently actively shared with.",
            "example": 12,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "shared": {
            "description": "A boolean indicating whether the payment method is shared by other user.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "updatedAt": {
            "description": "The date and time when the payment method was last updated.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user associated with the payment method.",
            "example": "f0fa68e4-674d-4145-a2a2-189816caf7af",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "userId",
          "onboardingId",
          "kind",
          "label",
          "name",
          "proxy",
          "implicit",
          "shared",
          "shareCount",
          "icons",
          "restrictions",
          "metadata",
          "expiresAt",
          "lastUsedAt",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "PaymentMethodIconsDTO": {
        "properties": {
          "dark": {
            "description": "An optional URL of the dark theme icon for the payment method.",
            "example": "https://example.com/icons/payment-methods/example-dark.svg",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "default": {
            "description": "The URL of the default icon for the payment method.",
            "example": "https://example.com/icons/payment-methods/example-light.svg",
            "format": "uri",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "default",
          "dark"
        ],
        "type": "object"
      },
      "PaymentMethodKindDTO": {
        "properties": {
          "icons": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodKindIconsDTO"
              }
            ],
            "description": "The icons associated with the payment method kind.",
            "nullable": false,
            "type": "object"
          },
          "implicit": {
            "description": "A boolean indicating whether the payment method kind is implicit. Implicit payment method kinds are not onboarded by the user but rather the system during authorization.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "label": {
            "description": "The localized label of the payment method kind.",
            "example": "Fuel Card Provider",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the payment method kind.",
            "example": "FUEL_CARD_PROVIDER",
            "nullable": false,
            "type": "string"
          },
          "twoFactorAuthentication": {
            "description": "A boolean indicating whether the payment method kind requires two-factor authentication.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "label",
          "icons",
          "twoFactorAuthentication",
          "implicit"
        ],
        "type": "object"
      },
      "PaymentMethodKindIconsDTO": {
        "properties": {
          "dark": {
            "description": "The URL of the dark icon for the payment method kind, if applicable.",
            "example": "https://cdn.pace.cloud/fuel-card-provider/dark.png",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "default": {
            "description": "The URL of the default icon for the payment method kind.",
            "example": "https://cdn.pace.cloud/fuel-card-provider/default.png",
            "format": "uri",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "default",
          "dark"
        ],
        "type": "object"
      },
      "PaymentMethodRestrictionsDTO": {
        "properties": {
          "allowedFuelTypes": {
            "description": "The fuel types the payment method may be used to pay for. `null` if unrestricted.",
            "example": [
              "DIESEL",
              "RON95_E10"
            ],
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array",
            "uniqueItems": true
          },
          "allowedProducts": {
            "description": "The product categories the payment method may be used for. `null` if unrestricted.",
            "example": [
              "FUELING",
              "WASHING"
            ],
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array",
            "uniqueItems": true
          },
          "maxProducts": {
            "description": "The maximum number of products that may be in a cart for an authorization. `null` if unrestricted.",
            "example": 3,
            "exclusiveMinimum": false,
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          },
          "maximumAuthorizeAmount": {
            "description": "The maximum amount the payment method may be authorized for. `null` if unrestricted.",
            "example": "150.00",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "allowedFuelTypes",
          "allowedProducts",
          "maximumAuthorizeAmount",
          "maxProducts"
        ],
        "type": "object"
      },
      "PaymentMethodShareDTO": {
        "properties": {
          "createdAt": {
            "description": "The date and time when the payment method share was created.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "expiresAt": {
            "description": "The date and time when the share expires. After this time the share is no longer valid. Omit for no expiration.",
            "example": "2025-12-31T23:59:59.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the payment method share.",
            "example": "92e5ec38-2a2c-4040-8158-f053b1f45054",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "paymentMethodId": {
            "description": "The unique identifier of the payment method that was shared.",
            "example": "45981481-b14d-4075-a8bc-d9626979a3ba",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "updatedAt": {
            "description": "The date and time when the payment method share was last updated.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user the payment method is shared with.",
            "example": "9d38dbaa-3f65-4453-b6f3-53673bd1a413",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "paymentMethodId",
          "userId",
          "expiresAt",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "PaymentTokenLanguage": {
        "description": "The preferred language for user-facing content during the payment token flow. Defaults to EN if omitted.",
        "enum": [
          "DA",
          "DE",
          "EN",
          "CS",
          "ES",
          "FR",
          "IT",
          "NL",
          "PL",
          "PT",
          "RO",
          "RU"
        ],
        "type": "string"
      },
      "PaymentTransactionImportCountsDTO": {
        "properties": {
          "failed": {
            "description": "The number of records that were rejected.",
            "example": 1,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "imported": {
            "description": "The number of records that created a transaction.",
            "example": 1,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "skipped": {
            "description": "The number of records whose external id was already imported and that were left unchanged.",
            "example": 1,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "total": {
            "description": "The number of records that were submitted.",
            "example": 3,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          }
        },
        "required": [
          "total",
          "imported",
          "skipped",
          "failed"
        ],
        "type": "object"
      },
      "PaymentTransactionImportDTO": {
        "properties": {
          "clientId": {
            "description": "The identifier of the client that submitted the import, read from its access token.",
            "example": "backoffice-importer",
            "nullable": false,
            "type": "string"
          },
          "counts": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionImportCountsDTO"
              }
            ],
            "description": "How many records ended up with which result.",
            "nullable": false,
            "type": "object"
          },
          "createdAt": {
            "description": "When the import was created.",
            "example": "2026-07-20T10:15:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the import.",
            "example": "9b1c0f4e-2f3a-4c5d-8e6f-7a8b9c0d1e2f",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "items": {
            "description": "The result of every submitted record, ordered by position. Only present when requested via the `include` query parameter.",
            "items": {
              "$ref": "#/components/schemas/PaymentTransactionImportItemDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "status": {
            "description": "The summary of the record results. COMPLETED: no record failed (skipped records count as success). PARTIAL: some records failed, the others were imported or skipped. FAILED: every record failed. Imports are processed synchronously, so there is no in-progress value.",
            "enum": [
              "COMPLETED",
              "PARTIAL",
              "FAILED"
            ],
            "example": "PARTIAL",
            "nullable": false,
            "type": "string"
          },
          "updatedAt": {
            "description": "When the import was last updated.",
            "example": "2026-07-20T10:15:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user the imported transactions belong to.",
            "example": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "clientId",
          "userId",
          "status",
          "counts",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "PaymentTransactionImportItemDTO": {
        "properties": {
          "externalId": {
            "description": "The identifier the importing system assigned to the record.",
            "example": "dkv:TXN-2024-0009182",
            "nullable": false,
            "type": "string"
          },
          "failureCode": {
            "description": "Why the record was rejected; null unless the result is FAILED. PAYMENT_METHOD_NOT_FOUND: the payment method is not one of the import user's, which covers a method the payment integration does not know and one that belongs to somebody else.",
            "example": "PAYMENT_METHOD_NOT_FOUND",
            "nullable": true,
            "type": "string"
          },
          "position": {
            "description": "The 0-based index of the record in the submitted `transactions` array.",
            "example": 0,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "result": {
            "description": "What became of the record. IMPORTED: a transaction was created. SKIPPED: the external id was already imported, the existing transaction is left unchanged. FAILED: the record was rejected, see `failureCode`.",
            "enum": [
              "IMPORTED",
              "SKIPPED",
              "FAILED"
            ],
            "example": "IMPORTED",
            "nullable": false,
            "type": "string"
          },
          "transactionId": {
            "description": "The transaction the record refers to: the one this import created (IMPORTED), the one that already carried the external id (SKIPPED), or null (FAILED).",
            "example": "6fc2acbd-3afd-4df3-9967-836a7929b13f",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "position",
          "externalId",
          "result",
          "transactionId",
          "failureCode"
        ],
        "type": "object"
      },
      "PaymentTransactionPoiAddressDTO": {
        "properties": {
          "city": {
            "description": "The city of the POI address.",
            "example": "Karlsruhe",
            "nullable": false,
            "type": "string"
          },
          "country": {
            "description": "The country of the POI address.",
            "example": "DE",
            "nullable": false,
            "type": "string"
          },
          "houseNumber": {
            "description": "The house number of the POI address.",
            "example": "18",
            "nullable": true,
            "type": "string"
          },
          "postalCode": {
            "description": "The postal code of the POI address.",
            "example": "76131",
            "nullable": false,
            "type": "string"
          },
          "street": {
            "description": "The street name of the POI address.",
            "example": "Haid-und-Neu-Straße",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "street",
          "houseNumber",
          "postalCode",
          "city",
          "country"
        ],
        "type": "object"
      },
      "PaymentTransactionPoiDTO": {
        "properties": {
          "address": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionPoiAddressDTO"
              }
            ],
            "description": "The address of the point of interest (POI) associated with the payment transaction.",
            "nullable": false,
            "type": "object"
          },
          "id": {
            "description": "The unique identifier of the point of interest (POI) associated with the payment transaction.",
            "example": "154e01ae-557a-48b3-a68a-609f1507db1d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the point of interest (POI).",
            "example": "PACE Fuel Station",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "address"
        ],
        "type": "object"
      },
      "PaymentTransactionProductCancelledDTO": {
        "properties": {
          "buyerId": {
            "description": "The unique identifier of the buyer the product is associated with.",
            "example": "0151f0e1-f932-4d3a-9e2a-0f3818b8cb1c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "configurations": {
            "description": "A list of product configurations.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/ProductConfigurationInputTypeDTO",
                "LOCATION": "#/components/schemas/ProductConfigurationLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ProductConfigurationInputTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationLocationTypeDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "contractId": {
            "description": "The unique identifier of the contract the product is associated with.",
            "example": "3fc6db3b-615c-4db2-9d86-c37e9df8ae47",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the product.",
            "example": "EUR",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the product.",
            "example": "8394e4df-95f6-4b9e-87da-4982c0aaec4b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the product.",
            "example": "Fueling",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The total price of this product excluding VAT.",
            "example": "61.34",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The total price of this product including VAT.",
            "example": "72.99",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "pricePerUnitExcludingVAT": {
            "description": "The price per unit of the product excluding VAT.",
            "example": "1.596",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "pricePerUnitIncludingVAT": {
            "description": "The price per unit of the product including VAT.",
            "example": "1.899",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "quantity": {
            "description": "The quantity of the product.",
            "example": "38.62",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "enum": [
              "CANCELLED"
            ],
            "example": "CANCELLED",
            "nullable": false,
            "type": "string"
          },
          "supplierId": {
            "description": "The unique identifier of the supplier the product is associated with.",
            "example": "1dd3721c-7c7b-4acb-8adc-e027267f603c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the product.",
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "description": "The unit of the product.",
            "example": "LITER",
            "nullable": true,
            "type": "string"
          },
          "vatAmount": {
            "description": "The VAT amount of the product.",
            "example": "13.63",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "vatRate": {
            "description": "The VAT rate of the product from 0 (0%) to 1 (100%).",
            "example": "0.19",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 1,
            "minimum": 0,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "type",
          "configurations",
          "status",
          "unit",
          "quantity",
          "currency",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatRate",
          "vatAmount",
          "contractId",
          "supplierId",
          "buyerId"
        ],
        "type": "object"
      },
      "PaymentTransactionProductConfiguredDTO": {
        "properties": {
          "buyerId": {
            "description": "The unique identifier of the buyer the product is associated with.",
            "example": "0151f0e1-f932-4d3a-9e2a-0f3818b8cb1c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "configurations": {
            "description": "A list of product configurations.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/ProductConfigurationInputTypeDTO",
                "LOCATION": "#/components/schemas/ProductConfigurationLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ProductConfigurationInputTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationLocationTypeDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "contractId": {
            "description": "The unique identifier of the contract the product is associated with.",
            "example": "3fc6db3b-615c-4db2-9d86-c37e9df8ae47",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the product.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the product.",
            "example": "8394e4df-95f6-4b9e-87da-4982c0aaec4b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the product.",
            "example": "Fueling",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The total price of this product excluding VAT.",
            "example": "61.34",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The total price of this product including VAT.",
            "example": "72.99",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitExcludingVAT": {
            "description": "The price per unit of the product excluding VAT.",
            "example": "1.596",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitIncludingVAT": {
            "description": "The price per unit of the product including VAT.",
            "example": "1.899",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "quantity": {
            "description": "The quantity of the product.",
            "example": "38.62",
            "exclusiveMinimum": true,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "status": {
            "enum": [
              "CONFIGURED"
            ],
            "example": "CONFIGURED",
            "nullable": false,
            "type": "string"
          },
          "supplierId": {
            "description": "The unique identifier of the supplier the product is associated with.",
            "example": "1dd3721c-7c7b-4acb-8adc-e027267f603c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the product.",
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "description": "The unit of the product.",
            "example": "LITER",
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The VAT amount of the product.",
            "example": "13.63",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatRate": {
            "description": "The VAT rate of the product from 0 (0%) to 1 (100%).",
            "example": "0.19",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 1,
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "type",
          "configurations",
          "status",
          "unit",
          "quantity",
          "currency",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatRate",
          "vatAmount",
          "contractId",
          "supplierId",
          "buyerId"
        ],
        "type": "object"
      },
      "PaymentTransactionProductConfiguringDTO": {
        "properties": {
          "buyerId": {
            "description": "The unique identifier of the buyer the product is associated with.",
            "example": "0151f0e1-f932-4d3a-9e2a-0f3818b8cb1c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "configurations": {
            "description": "A list of product configurations.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/ProductConfigurationInputTypeDTO",
                "LOCATION": "#/components/schemas/ProductConfigurationLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ProductConfigurationInputTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationSingleSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationMultiSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationLocationTypeDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "contractId": {
            "description": "The unique identifier of the contract the product is associated with.",
            "example": "3fc6db3b-615c-4db2-9d86-c37e9df8ae47",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the product.",
            "example": "8394e4df-95f6-4b9e-87da-4982c0aaec4b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the product.",
            "example": "Fueling",
            "nullable": false,
            "type": "string"
          },
          "status": {
            "enum": [
              "CONFIGURING"
            ],
            "example": "CONFIGURING",
            "nullable": false,
            "type": "string"
          },
          "supplierId": {
            "description": "The unique identifier of the supplier the product is associated with.",
            "example": "1dd3721c-7c7b-4acb-8adc-e027267f603c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the product.",
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "type",
          "configurations",
          "status",
          "contractId",
          "supplierId",
          "buyerId"
        ],
        "type": "object"
      },
      "PaymentTransactionSummaryDTO": {
        "properties": {
          "currency": {
            "description": "The currency of the transaction. This value matches the currency of each product in the transaction.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "totalAmountExcludingVAT": {
            "description": "The total transaction amount excluding VAT.",
            "example": "88.90",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "totalAmountIncludingVAT": {
            "description": "The total transaction amount including VAT.",
            "example": "104.84",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The total VAT amount for the transaction.",
            "example": "15.94",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "currency",
          "totalAmountExcludingVAT",
          "totalAmountIncludingVAT",
          "vatAmount"
        ],
        "type": "object"
      },
      "PlatformPaymentTransactionDTO": {
        "properties": {
          "authorizationType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthorizationType"
              }
            ],
            "description": "The type of the authorization for the transaction. Either PENDING if the authorized amount is a temporary hold on the user's funds, or FINAL if the authorized amount is the final amount that will be charged to the user.",
            "example": "PARTIAL",
            "nullable": false,
            "type": "string"
          },
          "authorizedAmount": {
            "description": "The amount that was authorized from the payment transaction. This is the amount that was requested to be charged to the user.",
            "example": "120.00",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "authorizedAt": {
            "description": "The date and time when the payment transaction was authorized",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "cancelledAt": {
            "description": "The timestamp when the transaction was cancelled. This field is only set if the transaction was cancelled.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "capturedAmount": {
            "description": "The amount that was captured from the payment transaction. This is the amount that was actually charged to the user.",
            "example": "46.87",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "capturedAt": {
            "description": "The date and time when the payment transaction was captured",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "cartId": {
            "description": "The unique identifier of the cart associated with the payment transaction.",
            "example": "317643aa-b684-44de-873c-a72d9ed766ee",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "clientId": {
            "description": "The identifier of the client that created the payment transaction: the one that authorized it for a platform transaction, the one that imported it for an imported one.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          },
          "createdAt": {
            "description": "The date and time when the payment transaction was created",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the transaction.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "failedAt": {
            "description": "The timestamp when the transaction failed. This field is only set if the transaction failed.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failureCode": {
            "description": "The failure code of the transaction. This field is only set if the transaction failed.",
            "enum": [
              "PAYMENT_METHOD_EXPIRED",
              "INVALID_CARD_NUMBER",
              "INSUFFICIENT_FUNDS",
              "FRAUD_DETECTED",
              "RESTRICTED_CARD",
              "WITHDRAWAL_LIMIT_EXCEEDED",
              "WITHDRAWAL_FREQUENCY_LIMIT_EXCEEDED",
              "DECLINED_BY_ISSUER",
              "TERMINAL_NOT_AVAILABLE",
              "PROVIDER_ERROR",
              "INVALID_METADATA",
              "PROVIDER_NOT_AVAILABLE",
              "PROVIDER_NOT_ENABLED",
              "UNKNOWN"
            ],
            "example": "INSUFFICIENT_FUNDS",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the payment transaction",
            "example": "6fc2acbd-3afd-4df3-9967-836a7929b13f",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "kind": {
            "description": "The kind of the payment method used for this transaction.",
            "example": "FUEL_CARD_PROVIDER",
            "nullable": false,
            "type": "string"
          },
          "origin": {
            "description": "The origin of the transaction. PLATFORM: authorized and captured through this service.",
            "enum": [
              "PLATFORM"
            ],
            "example": "PLATFORM",
            "nullable": false,
            "type": "string"
          },
          "paymentMethodId": {
            "description": "The unique identifier of the payment method used for the transaction",
            "example": "b4fd81c9-8969-4323-98b7-855a7d7f0d60",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "poi": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionPoiDTO"
              }
            ],
            "description": "The point of interaction (POI) where the transaction took place.",
            "nullable": false,
            "type": "object"
          },
          "products": {
            "description": "A list of products that are part of the transaction. Useful for reporting purposes like receipts.",
            "discriminator": {
              "mapping": {
                "CANCELLED": "#/components/schemas/PaymentTransactionProductCancelledDTO",
                "CONFIGURED": "#/components/schemas/PaymentTransactionProductConfiguredDTO",
                "CONFIGURING": "#/components/schemas/PaymentTransactionProductConfiguringDTO"
              },
              "propertyName": "status"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaymentTransactionProductConfiguringDTO"
                },
                {
                  "$ref": "#/components/schemas/PaymentTransactionProductConfiguredDTO"
                },
                {
                  "$ref": "#/components/schemas/PaymentTransactionProductCancelledDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "proxy": {
            "description": "Determines whether the payment transaction is a proxy transaction.",
            "example": true,
            "nullable": false,
            "type": "boolean"
          },
          "status": {
            "description": "The current status of the payment transaction. An imported transaction is always CAPTURED: it records money that already moved.",
            "enum": [
              "AUTHORIZING",
              "AUTHORIZING_ACTIONS_REQUIRED",
              "AUTHORIZING_FAILED",
              "AUTHORIZING_CANCELLED",
              "AUTHORIZED",
              "AUTHORIZED_CANCELLING",
              "AUTHORIZED_CANCELLING_FAILED",
              "AUTHORIZED_CANCELLED",
              "CAPTURING",
              "CAPTURING_FAILED",
              "CAPTURING_CANCELLED",
              "CAPTURED"
            ],
            "example": "CAPTURED",
            "nullable": false,
            "type": "string"
          },
          "summary": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentTransactionSummaryDTO"
              }
            ],
            "description": "The summary of the transaction, including the total amounts from each product.",
            "nullable": true,
            "type": "object"
          },
          "updatedAt": {
            "description": "The date and time when the payment transaction was last updated",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user associated with the payment transaction.",
            "example": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "clientId",
          "paymentMethodId",
          "userId",
          "kind",
          "status",
          "currency",
          "authorizedAmount",
          "authorizedAt",
          "capturedAmount",
          "capturedAt",
          "summary",
          "createdAt",
          "updatedAt",
          "origin",
          "cartId",
          "proxy",
          "authorizationType",
          "cancelledAt",
          "failedAt",
          "failureCode",
          "poi",
          "products"
        ],
        "type": "object"
      },
      "ProductConfigurationInputTypeDTO": {
        "properties": {
          "label": {
            "description": "The localized label of the product configuration.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the product configuration.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "enum": [
              "INPUT"
            ],
            "example": "INPUT",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The value of the input configuration",
            "example": "100.00",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "type",
          "value"
        ],
        "type": "object"
      },
      "ProductConfigurationLocationTypeDTO": {
        "properties": {
          "label": {
            "description": "The localized label of the product configuration.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "latitude": {
            "description": "The latitude of the location",
            "example": "52.5200",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 90,
            "minimum": -90,
            "nullable": false,
            "type": "string"
          },
          "longitude": {
            "description": "The longitude of the location",
            "example": "13.4050",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 180,
            "minimum": -180,
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the product configuration.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "enum": [
              "LOCATION"
            ],
            "example": "LOCATION",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "type",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ProductConfigurationMultiSelectTypeDTO": {
        "properties": {
          "label": {
            "description": "The localized label of the product configuration.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the product configuration.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "options": {
            "description": "The selected configuration options for the product.",
            "discriminator": {
              "mapping": {
                "PRICED": "#/components/schemas/ProductConfigurationPricedSelectOptionDTO",
                "SIMPLE": "#/components/schemas/ProductConfigurationSelectOptionDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ProductConfigurationSelectOptionDTO"
                },
                {
                  "$ref": "#/components/schemas/ProductConfigurationPricedSelectOptionDTO"
                }
              ]
            },
            "minItems": 1,
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "enum": [
              "MULTI_SELECT"
            ],
            "example": "MULTI_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "type",
          "options"
        ],
        "type": "object"
      },
      "ProductConfigurationPricedSelectOptionDTO": {
        "properties": {
          "currency": {
            "description": "The currency in which the configuration option is priced.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the product configuration selection.",
            "example": "1",
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitExcludingVAT": {
            "description": "The price per unit of the configuration option excluding VAT.",
            "example": "1.529",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitIncludingVAT": {
            "description": "The price per unit of the configuration option including VAT.",
            "example": "1.819",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the product configuration select option.",
            "enum": [
              "PRICED"
            ],
            "example": "PRICED",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "description": "The unit of measurement for the configuration option.",
            "example": "LITER",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The configuration selection value.",
            "example": "947a06c0-7c23-41d6-9b5a-44be6194dbd2",
            "nullable": false,
            "type": "string"
          },
          "vatRate": {
            "description": "The VAT rate applied to the configuration option.",
            "example": "0.19",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "type",
          "label",
          "value",
          "currency",
          "unit",
          "vatRate",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT"
        ],
        "type": "object"
      },
      "ProductConfigurationSelectOptionDTO": {
        "properties": {
          "label": {
            "description": "The localized label of the product configuration selection.",
            "example": "1",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the product configuration select option.",
            "enum": [
              "SIMPLE"
            ],
            "example": "SIMPLE",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The configuration selection value.",
            "example": "947a06c0-7c23-41d6-9b5a-44be6194dbd2",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "type",
          "label",
          "value"
        ],
        "type": "object"
      },
      "ProductConfigurationSingleSelectTypeDTO": {
        "properties": {
          "label": {
            "description": "The localized label of the product configuration.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the product configuration.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "option": {
            "description": "The selected configuration option for the product.",
            "discriminator": {
              "mapping": {
                "PRICED": "#/components/schemas/ProductConfigurationPricedSelectOptionDTO",
                "SIMPLE": "#/components/schemas/ProductConfigurationSelectOptionDTO"
              },
              "propertyName": "type"
            },
            "nullable": false,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProductConfigurationSelectOptionDTO"
              },
              {
                "$ref": "#/components/schemas/ProductConfigurationPricedSelectOptionDTO"
              }
            ],
            "type": "object"
          },
          "type": {
            "enum": [
              "SINGLE_SELECT"
            ],
            "example": "SINGLE_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "type",
          "option"
        ],
        "type": "object"
      },
      "ReceiptDownloadDTO": {
        "properties": {
          "downloadURL": {
            "description": "The download URL of the receipt.",
            "example": "https://example.com/receipt.pdf",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "expiresAt": {
            "description": "The date and time when the download URL expires.",
            "example": "2026-01-29T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "downloadURL",
          "expiresAt"
        ],
        "type": "object"
      },
      "SharePaymentMethodBodyDTO": {
        "properties": {
          "clientId": {
            "description": "The identifier of the client the shares belong to. Required if not requesting with the :authenticated scope, which defaults it to the requesting client and allows no other.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          },
          "expiresAt": {
            "description": "The date and time when all created shares expire. Omit for no expiration.",
            "example": "2025-12-31T23:59:59.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userIds": {
            "description": "The IDs of the users to share the payment method with.",
            "example": [
              "263ca0fd-60a4-4369-80d6-52f55e9617c8",
              "b0c2b734-7ec7-4404-a7bb-a0262c80c81c"
            ],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "required": [
          "userIds"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "scopes": {
              "payment:onboardings:create:authenticated": "Allows creating an onboarding for the authenticated user.",
              "payment:onboardings:create:one": "Allows creating an onboarding for a given user.",
              "payment:payment-method-kinds:read:all": "Allows reading all payment method kinds.",
              "payment:payment-method-kinds:read:authenticated": "Allows reading payment method kinds for the authenticated client.",
              "payment:payment-method-shares:create:authenticated": "Allows sharing authenticated user's payment methods with other users.",
              "payment:payment-method-shares:create:one": "Allows sharing a payment method with other users.",
              "payment:payment-method-shares:delete:authenticated": "Allows deleting a payment method share for the authenticated user.",
              "payment:payment-method-shares:delete:one": "Allows deleting a payment method share.",
              "payment:payment-method-shares:read:all": "Allows reading all payment method shares.",
              "payment:payment-method-shares:read:authenticated": "Allows reading payment method shares for the authenticated user.",
              "payment:payment-methods:delete:authenticated": "Allows deleting a payment method for the authenticated user.",
              "payment:payment-methods:delete:one": "Allows deleting a payment method.",
              "payment:payment-methods:read:all": "Allows reading all payment methods.",
              "payment:payment-methods:read:authenticated": "Allows reading payment methods for the authenticated user.",
              "payment:payment-methods:read:one": "Allows reading one payment method.",
              "payment:payment-methods:verify:authenticated": "Allows verifying a payment method for the authenticated user.",
              "payment:payment-methods:verify:one": "Allows verifying a payment method.",
              "payment:payment-transaction-imports:create:authenticated": "Allows importing payment transactions for the authenticated user.",
              "payment:payment-transaction-imports:create:one": "Allows importing payment transactions for any user.",
              "payment:payment-transaction-imports:delete:authenticated": "Allows rolling back the payment transaction imports of the authenticated user.",
              "payment:payment-transaction-imports:delete:one": "Allows rolling back any payment transaction import.",
              "payment:payment-transaction-imports:read:all": "Allows reading all payment transaction imports.",
              "payment:payment-transaction-imports:read:authenticated": "Allows reading the payment transaction imports of the authenticated user.",
              "payment:payment-transaction-imports:read:one": "Allows reading one payment transaction import.",
              "payment:payment-transactions:read:all": "Allows reading all payment transactions.",
              "payment:payment-transactions:read:authenticated": "Allows reading payment transactions for the authenticated user.",
              "payment:payment-transactions:read:one": "Allows reading one payment transaction."
            },
            "authorizationUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/auth",
            "refreshUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token",
            "tokenUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Onboardings",
      "description": "Endpoints related to payment method onboardings."
    },
    {
      "name": "Payment Method Kinds",
      "description": "Endpoints for retrieving payment method kinds."
    },
    {
      "name": "Payment Method Shares",
      "description": "Endpoints for sharing payment methods with other users."
    },
    {
      "name": "Payment Methods",
      "description": "Endpoints for managing payment methods."
    },
    {
      "name": "Payment Transactions",
      "description": "Endpoints for managing payment transactions."
    },
    {
      "name": "Payment Transaction Imports",
      "description": "Endpoints for importing payment transactions settled outside the platform."
    }
  ],
  "openapi": "3.0.0",
  "servers": [
    {
      "description": "PACE Payment Service",
      "url": "https://api.pace.cloud/payment"
    }
  ]
}