{
  "info": {
    "version": "2026-2",
    "contact": {},
    "description": "Platform payment service responsible for handling payment transactions.",
    "title": "Platform Payment Service"
  },
  "openapi": "3.0.0",
  "servers": [
    {
      "description": "PACE Payment Service",
      "url": "https://api.pace.cloud/payment"
    }
  ],
  "paths": {
    "/2026-2/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-2/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-2/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-2/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-2/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."
          },
          "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:create:one"
            ]
          },
          {
            "oauth2": [
              "payment:payment-method-shares:create:authenticated"
            ]
          }
        ],
        "summary": "Creates payment method shares (bulk).",
        "tags": [
          "Payment Method Shares"
        ],
        "x-beta": true
      }
    },
    "/2026-2/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-2/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-2/payment-transactions": {
      "get": {
        "description": "Paginate through all payment transactions that are available based in the current authentication context.",
        "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-2/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": {
              "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."
          },
          "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": {
              "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."
          },
          "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-2/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": {
              "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."
          },
          "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": {
              "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."
          },
          "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
      }
    }
  },
  "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."
    }
  ],
  "components": {
    "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-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"
          }
        }
      }
    },
    "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
          }
        },
        "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"
          },
          "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
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CreateReceiptDownloadResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReceiptDownloadDTO"
              }
            ],
            "description": "The download details for the receipt.",
            "nullable": false
          }
        },
        "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": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodKindsQueryFilterClientIdDTO"
              }
            ],
            "description": "Filter payment method kinds by client ID.",
            "nullable": false
          }
        },
        "type": "object"
      },
      "GetPaymentMethodKindsResponseDTO": {
        "properties": {
          "data": {
            "description": "The list of payment method kinds.",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodKindDTO"
            },
            "nullable": false,
            "type": "array"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetPaymentMethodResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDTO"
              }
            ],
            "description": "The user payment method that was retrieved.",
            "nullable": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetPaymentMethodSharesResponseDTO": {
        "properties": {
          "data": {
            "description": "A list of payment method shares.",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodShareDTO"
            },
            "nullable": false,
            "type": "array"
          }
        },
        "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": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterClientIdDTO"
              }
            ],
            "description": "Filter payment methods by client ID.",
            "nullable": false
          },
          "implicit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterImplicitDTO"
              }
            ],
            "nullable": false
          },
          "onboardingId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterOnboardingIdDTO"
              }
            ],
            "nullable": false
          },
          "proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterProxyDTO"
              }
            ],
            "nullable": false
          },
          "userId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetPaymentMethodsQueryFilterUserIdDTO"
              }
            ],
            "nullable": false
          }
        },
        "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"
          }
        },
        "required": [
          "data"
        ],
        "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
          },
          "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"
      },
      "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"
      },
      "PaginatePaymentTransactionsQueryFilterDTO": {
        "properties": {
          "authorizationType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterAuthorizationTypeDTO"
              }
            ],
            "description": "Filter payment transactions by authorization type.",
            "nullable": false
          },
          "cartId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryCartIdFilterDTO"
              }
            ],
            "description": "Filter payment transactions by cart ID.",
            "nullable": false
          },
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterIdDTO"
              }
            ],
            "description": "Filter payment transactions by ID.",
            "nullable": false
          },
          "paymentMethodId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterPaymentMethodIdDTO"
              }
            ],
            "description": "Filter payment transactions by payment method ID.",
            "nullable": false
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsDTO"
              }
            ],
            "description": "Filter payment transactions by products.",
            "nullable": false
          },
          "proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProxyDTO"
              }
            ],
            "description": "Filter payment transactions by proxy flag.",
            "nullable": false
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterStatusDTO"
              }
            ],
            "description": "Filter payment transactions by status.",
            "nullable": false
          },
          "userId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterUserIdDTO"
              }
            ],
            "description": "Filter payment transactions by user ID.",
            "nullable": false
          }
        },
        "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"
      },
      "PaginatePaymentTransactionsQueryFilterPaymentMethodIdDTO": {
        "properties": {
          "eq": {
            "example": "39b6ca0f-c2d3-49ac-ad08-df97c06b452e",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatePaymentTransactionsQueryFilterProductsDTO": {
        "properties": {
          "every": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterDTO"
              }
            ],
            "nullable": false
          },
          "none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterDTO"
              }
            ],
            "nullable": false
          },
          "some": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterDTO"
              }
            ],
            "nullable": false
          }
        },
        "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": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterBuyerIdDTO"
              }
            ],
            "nullable": false
          },
          "contractId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterContractIdDTO"
              }
            ],
            "nullable": false
          },
          "supplierId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterSupplierIdDTO"
              }
            ],
            "nullable": false
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatePaymentTransactionsQueryFilterProductsFilterTypeDTO"
              }
            ],
            "nullable": false
          }
        },
        "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",
            "items": {
              "$ref": "#/components/schemas/PaymentTransactionDTO"
            },
            "nullable": false,
            "type": "array"
          }
        },
        "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
          },
          "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"
          },
          "shareCount": {
            "description": "The number of shares for the payment method with other users.",
            "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",
          "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
          },
          "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"
      },
      "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"
      },
      "PaymentTransactionDTO": {
        "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
          },
          "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 authorized the payment transaction.",
            "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",
              "INVALID_METADATA",
              "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"
          },
          "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
          },
          "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"
          },
          "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.",
            "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
          },
          "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",
          "cartId",
          "kind",
          "status",
          "proxy",
          "authorizationType",
          "authorizedAmount",
          "authorizedAt",
          "currency",
          "capturedAmount",
          "capturedAt",
          "cancelledAt",
          "failedAt",
          "failureCode",
          "poi",
          "products",
          "summary",
          "createdAt",
          "updatedAt"
        ],
        "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
          },
          "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": 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": 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",
          "contractId",
          "supplierId",
          "buyerId",
          "label",
          "type",
          "configurations",
          "status",
          "unit",
          "quantity",
          "currency",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatRate",
          "vatAmount"
        ],
        "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",
          "contractId",
          "supplierId",
          "buyerId",
          "label",
          "type",
          "configurations",
          "status",
          "unit",
          "quantity",
          "currency",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatRate",
          "vatAmount"
        ],
        "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",
          "contractId",
          "supplierId",
          "buyerId",
          "label",
          "type",
          "configurations",
          "status"
        ],
        "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"
      },
      "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"
          },
          "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": {
            "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": {
          "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"
      }
    }
  }
}