{
  "info": {
    "version": "2026-4",
    "contact": {},
    "description": "API for managing carts, products, and items.",
    "title": "Cart Service API"
  },
  "paths": {
    "/2026-4/carts": {
      "get": {
        "description": "Returns a paginated list of carts.",
        "operationId": "PaginateCarts",
        "parameters": [
          {
            "description": "Filter for the carts.",
            "explode": true,
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginateCartsQueryFilterDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          {
            "description": "The pagination details for the list of carts.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginateCartsQueryPageDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginateCartsResponseDTO"
                }
              }
            },
            "description": "Successfully retrieved the list of carts."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:carts:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:carts:read:authenticated"
            ]
          }
        ],
        "summary": "Returns a paginated list of carts.",
        "tags": [
          "Carts"
        ],
        "x-beta": true
      },
      "post": {
        "description": "Creates a new cart for a user and client.",
        "operationId": "CreateCart",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCartBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCartResponseDTO"
                }
              }
            },
            "description": "Successfully created a new cart"
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified POI was not found."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:carts:create:one"
            ]
          },
          {
            "oauth2": [
              "cart:carts:create:authenticated"
            ]
          }
        ],
        "summary": "Create a new cart.",
        "tags": [
          "Carts"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}": {
      "get": {
        "description": "Retrieves a specific cart.",
        "operationId": "GetCart",
        "parameters": [
          {
            "description": "The unique identifier of the cart to retrieve.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "16b99f34-6ad0-4f46-9e46-c6ffe6e4f135",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCartResponseDTO"
                }
              }
            },
            "description": "The cart with the specified ID."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart was not found."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:carts:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:carts:read:one"
            ]
          },
          {
            "oauth2": [
              "cart:carts:read:authenticated"
            ]
          }
        ],
        "summary": "Get a cart.",
        "tags": [
          "Carts"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/items": {
      "get": {
        "description": "Retrieves all items in a specified cart, including their details and configurations.",
        "operationId": "GetCartItems",
        "parameters": [
          {
            "description": "The unique identifier of the cart to retrieve the items for.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCartItemsResponseDTO"
                }
              }
            },
            "description": "A list of cart items with their details and configurations."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:read:authenticated"
            ]
          }
        ],
        "summary": "Get all cart items for a specific cart",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      },
      "post": {
        "description": "Adds a new item to the specified cart, allowing the user to configure and check out a product.",
        "operationId": "CreateCartItem",
        "parameters": [
          {
            "description": "The unique identifier of the cart to add the item to.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCartItemBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCartItemResponseDTO"
                }
              }
            },
            "description": "The cart item has been successfully created."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart or product was not found."
          },
          "409": {
            "description": "The cart has reached its maximum number of items."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:create:one"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:create:authenticated"
            ]
          }
        ],
        "summary": "Create a new cart item",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/items/{cartItemId}": {
      "delete": {
        "description": "Deletes a specific item in the cart, removing it from the cart.",
        "operationId": "DeleteCartItem",
        "parameters": [
          {
            "description": "The unique identifier of the cart the item belongs to.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the cart item to delete.",
            "in": "path",
            "name": "cartItemId",
            "required": true,
            "schema": {
              "example": "8576a377-5a1b-4d04-8051-36cb996e9f6e",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The cart item has been successfully deleted."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart item was not found in the specified cart."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:delete:one"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:delete:authenticated"
            ]
          }
        ],
        "summary": "Delete a cart item",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      },
      "get": {
        "description": "Retrieves a specific item in a specified cart, including its details and configurations.",
        "operationId": "GetCartItem",
        "parameters": [
          {
            "description": "The unique identifier of the cart the item belongs to.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the cart item to retrieve.",
            "in": "path",
            "name": "cartItemId",
            "required": true,
            "schema": {
              "example": "8576a377-5a1b-4d04-8051-36cb996e9f6e",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCartItemResponseDTO"
                }
              }
            },
            "description": "The cart item for the given identifier."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart item was not found in the specified cart."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:read:one"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:read:authenticated"
            ]
          }
        ],
        "summary": "Get a cart item",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/items/{cartItemId}/cancel": {
      "post": {
        "description": "Cancels a specific item in the cart, marking it as no longer needed.",
        "operationId": "CancelCartItem",
        "parameters": [
          {
            "description": "The unique identifier of the cart the item belongs to.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the cart item to cancel.",
            "in": "path",
            "name": "cartItemId",
            "required": true,
            "schema": {
              "example": "8576a377-5a1b-4d04-8051-36cb996e9f6e",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelCartItemResponseDTO"
                }
              }
            },
            "description": "The cart item has been successfully cancelled."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart item was not found in the specified cart."
          },
          "409": {
            "description": "The cart item has not been checked out yet, or its checkout is already completed."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:cancel:one"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:cancel:authenticated"
            ]
          }
        ],
        "summary": "Cancel a cart item",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/items/{cartItemId}/configure": {
      "post": {
        "description": "Configure a specific item in the cart, submitting the user provided configuration value.",
        "operationId": "ConfigureCartItem",
        "parameters": [
          {
            "description": "The unique identifier of the cart the item belongs to.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the cart item to configure.",
            "in": "path",
            "name": "cartItemId",
            "required": true,
            "schema": {
              "example": "8576a377-5a1b-4d04-8051-36cb996e9f6e",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfigureCartItemBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigureCartItemResponseDTO"
                }
              }
            },
            "description": "The cart item has been successfully configured."
          },
          "400": {
            "description": "The request parameters are missing or invalid, or the provider rejected the configuration."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart item was not found in the specified cart."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:configure:one"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:configure:authenticated"
            ]
          }
        ],
        "summary": "Configure a cart item",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/items/{cartItemId}/status": {
      "get": {
        "description": "Poll the cart item status to either retrieve the current status or the new status when changed.",
        "operationId": "PollCartItemStatus",
        "parameters": [
          {
            "description": "The unique identifier of the cart the item belongs to.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the cart item to poll.",
            "in": "path",
            "name": "cartItemId",
            "required": true,
            "schema": {
              "example": "599a7db8-21c8-487b-b1c4-f939995ac570",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The last known cart item status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "enum": [
                "CONFIGURING",
                "CONFIGURED",
                "PROCESSING",
                "COMPLETED",
                "CANCELLED",
                "FAILED"
              ],
              "example": "CONFIGURING",
              "nullable": false,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCartItemStatusResponseDTO"
                }
              }
            },
            "description": "The status for the specified cart item."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart item was not found in the specified cart."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:read:one"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:read:authenticated"
            ]
          }
        ],
        "summary": "Poll the cart item status",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/items/{cartItemId}/undo": {
      "post": {
        "description": "Reverts the most recently submitted configuration step for a cart item, allowing the user to step back in the configuration wizard without restarting it.",
        "operationId": "UndoCartItem",
        "parameters": [
          {
            "description": "The unique identifier of the cart the item belongs to.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the cart item to undo.",
            "in": "path",
            "name": "cartItemId",
            "required": true,
            "schema": {
              "example": "8576a377-5a1b-4d04-8051-36cb996e9f6e",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UndoCartItemResponseDTO"
                }
              }
            },
            "description": "The cart item has been reverted to its previous configuration step."
          },
          "400": {
            "description": "The cart item has no prior configuration step to revert to, or the cart is in a state that does not allow undoing."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart item was not found in the specified cart."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-items:configure:one"
            ]
          },
          {
            "oauth2": [
              "cart:cart-items:configure:authenticated"
            ]
          }
        ],
        "summary": "Undo the last configuration step of a cart item",
        "tags": [
          "Cart Items"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/payment-method": {
      "post": {
        "description": "Selects one of the cart's payment methods, freezing the contract it resolves to on the cart's items so subsequent reads and the checkout use the contract's prices. The payment method must be usable. Adding, configuring or removing an item clears the selection again.",
        "operationId": "SetPaymentMethod",
        "parameters": [
          {
            "description": "The unique identifier of the cart to select the payment method for.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "9239a6a6-de5b-4ccc-ba58-40ede174a5a0",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPaymentMethodBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetPaymentMethodResponseDTO"
                }
              }
            },
            "description": "The payment method was selected for the cart."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart or payment method was not found."
          },
          "409": {
            "description": "The payment method is not usable for the cart, the cart has an ongoing or completed checkout, or the cart is currently being modified."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:carts:update:one"
            ]
          },
          {
            "oauth2": [
              "cart:carts:update:authenticated"
            ]
          }
        ],
        "summary": "Select a payment method for a cart.",
        "tags": [
          "Carts"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/payment-methods": {
      "get": {
        "description": "Retrieves all available payment methods for the specified cart, including details about each cart item.",
        "operationId": "GetCartPaymentMethods",
        "parameters": [
          {
            "description": "The unique identifier of the cart to retrieve the available payment methods for.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCartPaymentMethodsResponseDTO"
                }
              }
            },
            "description": "Successfully retrieved payment methods for the cart."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart was not found."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-payment-methods:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:cart-payment-methods:read:authenticated"
            ]
          }
        ],
        "summary": "Get all payment methods for a specific cart",
        "tags": [
          "Cart Payment Methods"
        ],
        "x-beta": true
      }
    },
    "/2026-4/carts/{cartId}/products": {
      "get": {
        "description": "Returns a list of all available products for the specified cart.",
        "operationId": "GetCartProducts",
        "parameters": [
          {
            "description": "The unique identifier of the cart to retrieve the available products for.",
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Filter for the products for the specified cart.",
            "explode": true,
            "in": "query",
            "name": "filter",
            "required": true,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GetCartProductsQueryFilterDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCartProductsResponseDTO"
                }
              }
            },
            "description": "The list of available products for the specified cart."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart was not found."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:cart-products:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:cart-products:read:authenticated"
            ]
          }
        ],
        "summary": "Get all available products for a cart.",
        "tags": [
          "Cart Products"
        ],
        "x-beta": true
      }
    },
    "/2026-4/checkouts": {
      "get": {
        "description": "Returns a paginated list of checkouts, optionally filtered by cart.",
        "operationId": "PaginateCheckouts",
        "parameters": [
          {
            "description": "Filter for the checkouts.",
            "explode": true,
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginateCheckoutsQueryFilterDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          {
            "description": "The pagination details for the list of checkouts.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PaginateCheckoutsQueryPageDTO"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginateCheckoutsResponseDTO"
                }
              }
            },
            "description": "Successfully retrieved the list of checkouts."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:checkouts:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:checkouts:read:authenticated"
            ]
          }
        ],
        "summary": "Returns a paginated list of checkouts.",
        "tags": [
          "Checkouts"
        ],
        "x-beta": true
      },
      "post": {
        "description": "Creates a checkout attempt for a cart using the payment method currently selected on it. Select one via `POST /carts/{cartId}/payment-method` first; retrying with a different payment method means selecting that method and creating another checkout.",
        "operationId": "CreateCheckout",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCheckoutBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCheckoutResponseDTO"
                }
              }
            },
            "description": "The checkout has been successfully created."
          },
          "400": {
            "description": "The request parameters are missing or invalid, or the cart has no payment method selected."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified cart was not found."
          },
          "409": {
            "description": "The cart already has a checkout in progress, has already completed a checkout, is being modified concurrently, or has reached its checkout attempt limit."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:checkouts:create:one"
            ]
          },
          {
            "oauth2": [
              "cart:checkouts:create:authenticated"
            ]
          }
        ],
        "summary": "Create a checkout.",
        "tags": [
          "Checkouts"
        ],
        "x-beta": true
      }
    },
    "/2026-4/checkouts/{checkoutId}": {
      "get": {
        "description": "Retrieves a specific checkout.",
        "operationId": "GetCheckout",
        "parameters": [
          {
            "description": "The unique identifier of the checkout to retrieve.",
            "in": "path",
            "name": "checkoutId",
            "required": true,
            "schema": {
              "example": "f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCheckoutResponseDTO"
                }
              }
            },
            "description": "The checkout with the specified ID."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified checkout was not found."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:checkouts:read:all"
            ]
          },
          {
            "oauth2": [
              "cart:checkouts:read:one"
            ]
          },
          {
            "oauth2": [
              "cart:checkouts:read:authenticated"
            ]
          }
        ],
        "summary": "Get a checkout.",
        "tags": [
          "Checkouts"
        ],
        "x-beta": true
      }
    },
    "/2026-4/checkouts/{checkoutId}/actions": {
      "post": {
        "description": "Submits the actions required to complete a checkout. Render each INPUT action according to its `format` and validate the value against its `format`, `pattern`, `minimum` and `maximum` before submitting.",
        "operationId": "SubmitCheckoutActions",
        "parameters": [
          {
            "description": "The unique identifier of the checkout to submit actions for.",
            "in": "path",
            "name": "checkoutId",
            "required": true,
            "schema": {
              "example": "f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitCheckoutActionsBodyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitCheckoutActionsResponseDTO"
                }
              }
            },
            "description": "The checkout actions were successfully submitted."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified checkout was not found."
          },
          "409": {
            "description": "The checkout is not currently awaiting actions."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:checkouts:create:one"
            ]
          },
          {
            "oauth2": [
              "cart:checkouts:create:authenticated"
            ]
          }
        ],
        "summary": "Submit checkout actions.",
        "tags": [
          "Checkouts"
        ],
        "x-beta": true
      }
    },
    "/2026-4/checkouts/{checkoutId}/cancel": {
      "post": {
        "description": "Cancels a checkout that is awaiting actions, abandoning the attempt. The payment authorization is released in the background, and the cart becomes editable again so a further checkout can be created.",
        "operationId": "CancelCheckout",
        "parameters": [
          {
            "description": "The unique identifier of the checkout to cancel.",
            "in": "path",
            "name": "checkoutId",
            "required": true,
            "schema": {
              "example": "f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d",
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelCheckoutResponseDTO"
                }
              }
            },
            "description": "The checkout has been successfully cancelled."
          },
          "400": {
            "description": "The request parameters are missing or invalid."
          },
          "401": {
            "description": "Client authentication failed."
          },
          "403": {
            "description": "Missing one or more required scopes."
          },
          "404": {
            "description": "The specified checkout was not found."
          },
          "409": {
            "description": "The checkout is not awaiting actions, or its cart is being modified concurrently."
          },
          "500": {
            "description": "An unexpected error occurred."
          }
        },
        "security": [
          {
            "oauth2": [
              "cart:checkouts:cancel:one"
            ]
          },
          {
            "oauth2": [
              "cart:checkouts:cancel:authenticated"
            ]
          }
        ],
        "summary": "Cancel a checkout.",
        "tags": [
          "Checkouts"
        ],
        "x-beta": true
      }
    }
  },
  "components": {
    "schemas": {
      "CancelCartItemResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemDTO"
              }
            ],
            "description": "The cart item that has been cancelled.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CancelCheckoutResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutDTO"
              }
            ],
            "description": "The cancelled checkout.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CartCheckoutDTO": {
        "properties": {
          "cancelledAt": {
            "description": "The timestamp when the cart checkout was cancelled.",
            "example": "2023-05-15T14:30:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "completedAt": {
            "description": "The timestamp when the cart checkout was completed.",
            "example": "2023-05-15T15:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failedAt": {
            "description": "The timestamp when the cart checkout failed.",
            "example": "2023-05-15T14:30:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failureCode": {
            "description": "The failure code of the cart checkout. Free-form: new codes are introduced without a version change, so treat an unrecognized value as an unspecified failure.",
            "example": "INSUFFICIENT_FUNDS",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the checkout.",
            "example": "f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "startedAt": {
            "description": "The timestamp when the cart checkout was started.",
            "example": "2023-05-15T14:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "status": {
            "description": "The status of the cart checkout.",
            "enum": [
              "PROCESSING",
              "ACTIONS_REQUIRED",
              "COMPLETED",
              "CANCELLED",
              "FAILED"
            ],
            "example": "PROCESSING",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "startedAt",
          "completedAt",
          "cancelledAt",
          "failedAt",
          "failureCode"
        ],
        "type": "object"
      },
      "CartDTO": {
        "properties": {
          "checkout": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartCheckoutDTO"
              }
            ],
            "description": "A minimal summary of the cart's latest checkout attempt, or null if no checkout has been created yet.",
            "nullable": true,
            "type": "object"
          },
          "clientId": {
            "description": "The unique identifier of the client through which this cart was created.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          },
          "createdAt": {
            "description": "The timestamp when the cart was created.",
            "example": "2023-05-15T14:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "expiresAt": {
            "description": "The timestamp at which the cart lapses if nothing interacts with it before then. Every interaction with the cart pushes it further out, so read the current value rather than assuming a fixed window. It is null once the checkout has completed.",
            "example": "2023-05-16T14:30:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the cart.",
            "example": "ae1b58ef-ba5c-4240-b130-51fcf067d40d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "paymentMethodId": {
            "description": "The unique identifier of the payment method selected for this cart, or null while none is selected. Adding, configuring or removing an item clears the selection.",
            "example": "ecbec75f-7ca4-4017-a485-6a4836de5d25",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "poiId": {
            "description": "The unique identifier of the POI associated with this cart.",
            "example": "96a939ea-28d4-4228-b45c-192904ba91d7",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "status": {
            "description": "The current status of the cart.",
            "enum": [
              "OPEN",
              "PROCESSING",
              "COMPLETED",
              "CANCELLED",
              "FAILED",
              "EXHAUSTED",
              "EXPIRED"
            ],
            "example": "OPEN",
            "nullable": false,
            "type": "string"
          },
          "summary": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartSummaryDTO"
              }
            ],
            "description": "A post-settlement aggregate of the cart's totals, or null until every non-cancelled item has settled.",
            "nullable": true,
            "type": "object"
          },
          "updatedAt": {
            "description": "The timestamp when the cart was last updated.",
            "example": "2023-05-15T14:15:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The unique identifier of the user who owns this cart.",
            "example": "e9166a60-1f92-4a5d-a192-c2f6b662e9d9",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "userId",
          "poiId",
          "clientId",
          "paymentMethodId",
          "status",
          "checkout",
          "summary",
          "expiresAt",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "CartItemAuthorizationDTO": {
        "properties": {
          "amount": {
            "description": "The amount to be authorized. Either provided by the user or the server.",
            "example": "120",
            "format": "decimal",
            "nullable": false,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the authorization.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "type": "object"
      },
      "CartItemCheckoutDTO": {
        "properties": {
          "cancelledAt": {
            "description": "The date and time when the checkout process was cancelled, if applicable.",
            "example": "2024-01-01T12:03:00Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "completedAt": {
            "description": "The date and time when the checkout process completed, if applicable.",
            "example": "2024-01-01T12:05:00Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failedAt": {
            "description": "The date and time when the checkout process failed, if applicable.",
            "example": "2024-01-01T12:04:00Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failureCode": {
            "description": "The failure code of the cart item checkout process, if any. Free-form: new codes are introduced without a version change, so treat an unrecognized value as an unspecified failure.",
            "example": "UNKNOWN",
            "nullable": true,
            "type": "string"
          },
          "startedAt": {
            "description": "The date and time when the checkout process started.",
            "example": "2024-01-01T12:00:00Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "status": {
            "description": "The status of the cart item checkout process.",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED",
              "CANCELLED"
            ],
            "example": "COMPLETED",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "status",
          "startedAt",
          "completedAt",
          "cancelledAt",
          "failedAt",
          "failureCode"
        ],
        "type": "object"
      },
      "CartItemConfigurationInputTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the configuration item.",
            "enum": [
              "INPUT"
            ],
            "example": "INPUT",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The value for this configuration.",
            "example": "100",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "value"
        ],
        "type": "object"
      },
      "CartItemConfigurationLocationTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "latitude": {
            "description": "The latitude for the location.",
            "example": "37.7749",
            "format": "decimal",
            "nullable": false,
            "type": "string"
          },
          "longitude": {
            "description": "The longitude for the location.",
            "example": "-122.4194",
            "format": "decimal",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the configuration item.",
            "enum": [
              "LOCATION"
            ],
            "example": "LOCATION",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "CartItemConfigurationMultiSelectTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "options": {
            "description": "The selected option for this configuration.",
            "discriminator": {
              "mapping": {
                "PRICED": "#/components/schemas/CartItemConfigurationSelectOptionPricedDTO",
                "SIMPLE": "#/components/schemas/CartItemConfigurationSelectOptionSimpleDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CartItemConfigurationSelectOptionSimpleDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemConfigurationSelectOptionPricedDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "description": "The type of the configuration item.",
            "enum": [
              "MULTI_SELECT"
            ],
            "example": "MULTI_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CartItemConfigurationPeriodPricingNoneDTO": {
        "properties": {
          "endedAt": {
            "description": "The date and time when this period ended.",
            "example": "2026-09-24T18:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "pricing": {
            "description": "How this period is priced.",
            "enum": [
              "NONE"
            ],
            "example": "NONE",
            "nullable": false,
            "type": "string"
          },
          "startedAt": {
            "description": "The date and time when this period started.",
            "example": "2026-09-24T17:10:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "pricing",
          "startedAt",
          "endedAt"
        ],
        "type": "object"
      },
      "CartItemConfigurationPeriodPricingTotalDTO": {
        "properties": {
          "currency": {
            "description": "The currency of this period's fee.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "endedAt": {
            "description": "The date and time when this period ended.",
            "example": "2026-09-24T18:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The fee for this period excluding VAT.",
            "example": "9.92",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The fee for this period including VAT.",
            "example": "11.80",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricing": {
            "description": "How this period is priced.",
            "enum": [
              "TOTAL"
            ],
            "example": "TOTAL",
            "nullable": false,
            "type": "string"
          },
          "startedAt": {
            "description": "The date and time when this period started.",
            "example": "2026-09-24T17:10:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The VAT amount of this period.",
            "example": "1.88",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatRate": {
            "description": "The VAT rate of this period from 0 (0%) to 1 (100%).",
            "example": "0.19",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 1,
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "pricing",
          "startedAt",
          "endedAt",
          "currency",
          "vatRate",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatAmount"
        ],
        "type": "object"
      },
      "CartItemConfigurationPeriodPricingUnitDTO": {
        "properties": {
          "currency": {
            "description": "The currency of this period's fee.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "endedAt": {
            "description": "The date and time when this period ended.",
            "example": "2026-09-24T18:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The fee for this period excluding VAT.",
            "example": "9.92",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The fee for this period including VAT.",
            "example": "11.80",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitExcludingVAT": {
            "description": "The price per unit of this period excluding VAT.",
            "example": "0.4958",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitIncludingVAT": {
            "description": "The price per unit of this period including VAT.",
            "example": "0.5900",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricing": {
            "description": "How this period is priced.",
            "enum": [
              "UNIT"
            ],
            "example": "UNIT",
            "nullable": false,
            "type": "string"
          },
          "quantity": {
            "description": "The quantity delivered during this period.",
            "example": "20",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "startedAt": {
            "description": "The date and time when this period started.",
            "example": "2026-09-24T17:10:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "enum": [
                  "ITEM",
                  "LITER",
                  "KILOGRAM",
                  "KWH"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ],
            "description": "The unit of this period's quantity.",
            "example": "KWH",
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The VAT amount of this period.",
            "example": "1.88",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatRate": {
            "description": "The VAT rate of this period from 0 (0%) to 1 (100%).",
            "example": "0.19",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 1,
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "pricing",
          "startedAt",
          "endedAt",
          "currency",
          "vatRate",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatAmount",
          "unit",
          "quantity",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT"
        ],
        "type": "object"
      },
      "CartItemConfigurationPeriodsTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "periods": {
            "description": "The chronological, non-overlapping periods. `ENERGY` allows `UNIT` periods, `PARKING` allows `NONE` and `TOTAL` periods.",
            "discriminator": {
              "mapping": {
                "NONE": "#/components/schemas/CartItemConfigurationPeriodPricingNoneDTO",
                "TOTAL": "#/components/schemas/CartItemConfigurationPeriodPricingTotalDTO",
                "UNIT": "#/components/schemas/CartItemConfigurationPeriodPricingUnitDTO"
              },
              "propertyName": "pricing"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CartItemConfigurationPeriodPricingNoneDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemConfigurationPeriodPricingTotalDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemConfigurationPeriodPricingUnitDTO"
                }
              ]
            },
            "minItems": 1,
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "description": "The type of the configuration item.",
            "enum": [
              "PERIODS"
            ],
            "example": "PERIODS",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "periods"
        ],
        "type": "object"
      },
      "CartItemConfigurationSelectOptionPricedDTO": {
        "properties": {
          "currency": {
            "description": "The currency in which the configuration option is priced.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "description": {
            "description": "The description of the configuration option.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the configuration option.",
            "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 configuration option.",
            "enum": [
              "PRICED"
            ],
            "example": "PRICED",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "enum": [
                  "ITEM",
                  "LITER",
                  "KILOGRAM",
                  "KWH"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ],
            "description": "The unit of measurement for the configuration option.",
            "example": "LITER",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The technical identifier for the configuration option.",
            "example": "081482d5-f3fd-4971-b6c6-dc49d0832df9",
            "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": [
          "label",
          "value",
          "description",
          "type",
          "currency",
          "unit",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "vatRate"
        ],
        "type": "object"
      },
      "CartItemConfigurationSelectOptionSimpleDTO": {
        "properties": {
          "description": {
            "description": "The description of the configuration option.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the configuration option.",
            "example": "1",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the configuration option.",
            "enum": [
              "SIMPLE"
            ],
            "example": "SIMPLE",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The technical identifier for the configuration option.",
            "example": "081482d5-f3fd-4971-b6c6-dc49d0832df9",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "label",
          "value",
          "description",
          "type"
        ],
        "type": "object"
      },
      "CartItemConfigurationSingleSelectTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "option": {
            "description": "The selected option for this configuration.",
            "discriminator": {
              "mapping": {
                "PRICED": "#/components/schemas/CartItemConfigurationSelectOptionPricedDTO",
                "SIMPLE": "#/components/schemas/CartItemConfigurationSelectOptionSimpleDTO"
              },
              "propertyName": "type"
            },
            "nullable": false,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CartItemConfigurationSelectOptionSimpleDTO"
              },
              {
                "$ref": "#/components/schemas/CartItemConfigurationSelectOptionPricedDTO"
              }
            ],
            "type": "object"
          },
          "type": {
            "description": "The type of the configuration item.",
            "enum": [
              "SINGLE_SELECT"
            ],
            "example": "SINGLE_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "option"
        ],
        "type": "object"
      },
      "CartItemDTO": {
        "properties": {
          "authorization": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemAuthorizationDTO"
              }
            ],
            "description": "The authorization details for the cart item.",
            "nullable": true,
            "type": "object"
          },
          "cancelledAt": {
            "description": "The date and time when the cart item processing was cancelled.",
            "example": "2025-03-15T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "cartId": {
            "description": "The unique identifier for the cart to which this item belongs.",
            "example": "71597ea2-e7e7-4eb5-b5c5-01eec9c1d81b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "checkout": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemCheckoutDTO"
              }
            ],
            "description": "The checkout details for the cart item.",
            "nullable": true,
            "type": "object"
          },
          "completedAt": {
            "description": "The date and time when the cart item has completed processing.",
            "example": "2025-03-15T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "configurations": {
            "description": "The configurations applied to the cart item.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CartItemConfigurationInputTypeDTO",
                "LOCATION": "#/components/schemas/CartItemConfigurationLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/CartItemConfigurationMultiSelectTypeDTO",
                "PERIODS": "#/components/schemas/CartItemConfigurationPeriodsTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/CartItemConfigurationSingleSelectTypeDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CartItemConfigurationInputTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemConfigurationSingleSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemConfigurationMultiSelectTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemConfigurationLocationTypeDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemConfigurationPeriodsTypeDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "configuredAt": {
            "description": "The date and time when the cart item was configured.",
            "example": "2025-03-15T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "createdAt": {
            "description": "The date and time when the cart item was created.",
            "example": "2025-03-15T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "failedAt": {
            "description": "The date and time when the cart item failed processing.",
            "example": "2025-03-15T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the cart item.",
            "example": "c7b3d2af-4046-4711-8fbf-36ce1b5f31d3",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "Optional metadata associated with the cart item. This may vary depending on the product and provider.",
            "nullable": false,
            "type": "object"
          },
          "next": {
            "description": "The next configuration that needs to be applied to the cart item.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CartItemNextConfigurationInputTypeDTO",
                "LOCATION": "#/components/schemas/CartItemNextConfigurationLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/CartItemNextConfigurationMultiSelectTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/CartItemNextConfigurationSingleSelectTypeDTO",
                "USER_ACTION": "#/components/schemas/CartItemNextConfigurationUserActionTypeDTO"
              },
              "propertyName": "type"
            },
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CartItemNextConfigurationInputTypeDTO"
              },
              {
                "$ref": "#/components/schemas/CartItemNextConfigurationSingleSelectTypeDTO"
              },
              {
                "$ref": "#/components/schemas/CartItemNextConfigurationMultiSelectTypeDTO"
              },
              {
                "$ref": "#/components/schemas/CartItemNextConfigurationLocationTypeDTO"
              },
              {
                "$ref": "#/components/schemas/CartItemNextConfigurationUserActionTypeDTO"
              }
            ],
            "type": "object"
          },
          "product": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartProductDTO"
              }
            ],
            "description": "The product details associated with the cart item.",
            "nullable": false,
            "type": "object"
          },
          "status": {
            "description": "The current status of the cart item.",
            "enum": [
              "CONFIGURING",
              "CONFIGURED",
              "PROCESSING",
              "COMPLETED",
              "CANCELLED",
              "FAILED"
            ],
            "example": "CONFIGURING",
            "nullable": false,
            "type": "string"
          },
          "summary": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemSummaryDTO"
              }
            ],
            "description": "The summary details for the cart item.",
            "nullable": true,
            "type": "object"
          },
          "transactionId": {
            "description": "The unique identifier of the transaction at the product service that fulfills this cart item, which can be used to fetch details directly from that service.",
            "example": "9c2f1e7a-3b4d-4f8a-9c1e-2d6b8a0f5e3c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "updatedAt": {
            "description": "The date and time when the cart item was last updated.",
            "example": "2025-03-16T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "cartId",
          "transactionId",
          "status",
          "product",
          "authorization",
          "checkout",
          "summary",
          "configurations",
          "next",
          "configuredAt",
          "completedAt",
          "cancelledAt",
          "failedAt",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "CartItemNextConfigurationInputTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the next configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the next configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the next configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "pattern": {
            "description": "An optional regular expression pattern that the input must match.",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of the next configuration item.",
            "enum": [
              "INPUT"
            ],
            "example": "INPUT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "pattern"
        ],
        "type": "object"
      },
      "CartItemNextConfigurationLocationTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the next configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the next configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the next configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the next configuration item.",
            "enum": [
              "LOCATION"
            ],
            "example": "LOCATION",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type"
        ],
        "type": "object"
      },
      "CartItemNextConfigurationMultiSelectTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the next configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the next configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the next configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "options": {
            "description": "The available options for the next configuration item.",
            "discriminator": {
              "mapping": {
                "PRICED": "#/components/schemas/CartItemNextConfigurationSelectOptionPricedDTO",
                "SIMPLE": "#/components/schemas/CartItemNextConfigurationSelectOptionSimpleDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionSimpleDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionPricedDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "description": "The type of the next configuration item.",
            "enum": [
              "MULTI_SELECT"
            ],
            "example": "MULTI_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CartItemNextConfigurationSelectOptionPricedDTO": {
        "properties": {
          "currency": {
            "description": "The currency in which the configuration option is priced.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "description": {
            "description": "The description of the configuration option.",
            "nullable": true,
            "type": "string"
          },
          "disabled": {
            "description": "Indicates whether the configuration option is disabled for selection.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "label": {
            "description": "The localized label for the configuration option.",
            "example": "1",
            "nullable": false,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "The metadata for the configuration select option. This may vary depending on the product and provider.",
            "nullable": true,
            "type": "object"
          },
          "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 configuration option.",
            "enum": [
              "PRICED"
            ],
            "example": "PRICED",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "enum": [
                  "ITEM",
                  "LITER",
                  "KILOGRAM",
                  "KWH"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ],
            "description": "The unit of measurement for the configuration option.",
            "example": "LITER",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The technical identifier for the configuration option.",
            "example": "081482d5-f3fd-4971-b6c6-dc49d0832df9",
            "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": [
          "label",
          "value",
          "description",
          "type",
          "currency",
          "unit",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "vatRate",
          "disabled",
          "metadata"
        ],
        "type": "object"
      },
      "CartItemNextConfigurationSelectOptionSimpleDTO": {
        "properties": {
          "description": {
            "description": "The description of the configuration option.",
            "nullable": true,
            "type": "string"
          },
          "disabled": {
            "description": "Indicates whether the configuration option is disabled for selection.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "label": {
            "description": "The localized label for the configuration option.",
            "example": "1",
            "nullable": false,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "The metadata for the configuration select option. This may vary depending on the product and provider.",
            "nullable": true,
            "type": "object"
          },
          "type": {
            "description": "The type of the configuration option.",
            "enum": [
              "SIMPLE"
            ],
            "example": "SIMPLE",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The technical identifier for the configuration option.",
            "example": "081482d5-f3fd-4971-b6c6-dc49d0832df9",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "label",
          "value",
          "description",
          "type",
          "disabled",
          "metadata"
        ],
        "type": "object"
      },
      "CartItemNextConfigurationSingleSelectTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the next configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the next configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the next configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "options": {
            "description": "The available options for the next configuration item.",
            "discriminator": {
              "mapping": {
                "PRICED": "#/components/schemas/CartItemNextConfigurationSelectOptionPricedDTO",
                "SIMPLE": "#/components/schemas/CartItemNextConfigurationSelectOptionSimpleDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionSimpleDTO"
                },
                {
                  "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionPricedDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "description": "The type of the next configuration item.",
            "enum": [
              "SINGLE_SELECT"
            ],
            "example": "SINGLE_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CartItemNextConfigurationUserActionTypeDTO": {
        "properties": {
          "description": {
            "description": "The description of the next configuration item.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label for the next configuration item.",
            "example": "Pump Number",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the next configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The type of the next configuration item.",
            "enum": [
              "USER_ACTION"
            ],
            "example": "USER_ACTION",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "label",
          "description",
          "type"
        ],
        "type": "object"
      },
      "CartItemStatusDTO": {
        "properties": {
          "id": {
            "description": "The unique identifier for the cart item.",
            "example": "c7b3d2af-4046-4711-8fbf-36ce1b5f31d3",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "status": {
            "description": "The current status of the cart item.",
            "enum": [
              "CONFIGURING",
              "CONFIGURED",
              "PROCESSING",
              "COMPLETED",
              "CANCELLED",
              "FAILED"
            ],
            "example": "CONFIGURED",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "status"
        ],
        "type": "object"
      },
      "CartItemSummaryDTO": {
        "properties": {
          "currency": {
            "description": "The currency of the checkout.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The total price of the cart item, excluding VAT.",
            "example": "61.26",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The total price of the cart item, including VAT.",
            "example": "72.90",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitExcludingVAT": {
            "description": "The price per unit of the cart item, Excluding VAT.",
            "example": "1.419",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "pricePerUnitIncludingVAT": {
            "description": "The price per unit of the cart item, including VAT.",
            "example": "1.689",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "quantity": {
            "description": "The consumed quantity of the cart item.",
            "example": "43.17",
            "format": "decimal",
            "nullable": false,
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "enum": [
                  "ITEM",
                  "LITER",
                  "KILOGRAM",
                  "KWH"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ],
            "description": "The unit of measurement for the cart item quantity.",
            "example": "LITER",
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The total amount of VAT applied to the cart item.",
            "example": "8.23",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatRate": {
            "description": "The vat rate applied to the cart item.",
            "example": "0.19",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "currency",
          "quantity",
          "unit",
          "pricePerUnitExcludingVAT",
          "pricePerUnitIncludingVAT",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatRate",
          "vatAmount"
        ],
        "type": "object"
      },
      "CartPaymentMethodDTO": {
        "properties": {
          "createdAt": {
            "description": "The date and time when the user payment method was created.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "expectedActions": {
            "description": "The actions a checkout with this payment method is expected to request, or an empty list when none are expected. A hint that lets the client collect the values before the checkout, matched by name to the checkout's actions, which stay authoritative.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CartPaymentMethodExpectedActionInputDTO",
                "MULTI_SELECT": "#/components/schemas/CartPaymentMethodExpectedActionMultiSelectDTO",
                "ONE_OF": "#/components/schemas/CartPaymentMethodExpectedActionOneOfDTO",
                "SINGLE_SELECT": "#/components/schemas/CartPaymentMethodExpectedActionSingleSelectDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CartPaymentMethodExpectedActionInputDTO"
                },
                {
                  "$ref": "#/components/schemas/CartPaymentMethodExpectedActionOneOfDTO"
                },
                {
                  "$ref": "#/components/schemas/CartPaymentMethodExpectedActionSingleSelectDTO"
                },
                {
                  "$ref": "#/components/schemas/CartPaymentMethodExpectedActionMultiSelectDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "expiresAt": {
            "description": "The date and time when the user payment method will expire.",
            "example": "2025-12-31T23:59:59.999Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "icons": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartPaymentMethodIconsDTO"
              }
            ],
            "description": "The icons associated with the user payment method.",
            "nullable": false,
            "type": "object"
          },
          "id": {
            "description": "The unique identifier of the user payment method.",
            "example": "86192f0f-9359-415d-b465-3cfadf0130a3",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "implicit": {
            "description": "Determines whether the user payment method has been onboarded.",
            "example": true,
            "nullable": false,
            "type": "boolean"
          },
          "items": {
            "description": "The payment method item info for each cart item.",
            "items": {
              "$ref": "#/components/schemas/CartPaymentMethodItemDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "kind": {
            "description": "The payment method kind of the user 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 user payment method was last used.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "Optional metadata associated with the user payment method.",
            "nullable": true,
            "type": "object"
          },
          "name": {
            "description": "The name of the user payment method.",
            "example": "(MASTERCARD) ... 0640",
            "nullable": false,
            "type": "string"
          },
          "onboardingId": {
            "description": "The unique identifier of the onboarding through which the user payment method was created or null if the payment method was not created through an onboarding process.",
            "example": "a0a99fe0-11b0-47d1-9b07-e7e83e6b0b1d",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "reasonCode": {
            "description": "The reason why the payment method cannot check out the cart as a whole, or null when it is usable.",
            "example": "AMOUNT_LIMIT_EXCEEDED",
            "nullable": true,
            "type": "string"
          },
          "restrictions": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartPaymentMethodRestrictionsDTO"
              }
            ],
            "description": "The constraints that limit how the payment method may be used, or null when the method has no restrictions.",
            "nullable": true,
            "type": "object"
          },
          "shareCount": {
            "description": "The number of times this user payment method is currently shared with other users.",
            "example": 12,
            "exclusiveMinimum": false,
            "minimum": 0,
            "nullable": false,
            "type": "integer"
          },
          "shared": {
            "description": "Determines whether the user payment method is shared by another user.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "updatedAt": {
            "description": "The date and time when the user payment method was last updated.",
            "example": "2023-10-01T12:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "usable": {
            "description": "Determines whether the user payment method can be used to checkout the cart.",
            "example": true,
            "nullable": false,
            "type": "boolean"
          },
          "userId": {
            "description": "The unique identifier of the user who owns the user payment method.",
            "example": "76a65fa5-c6ea-4b71-82d9-9689a00b4b8b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "userId",
          "onboardingId",
          "kind",
          "label",
          "name",
          "implicit",
          "shared",
          "shareCount",
          "metadata",
          "icons",
          "usable",
          "reasonCode",
          "items",
          "restrictions",
          "expectedActions",
          "expiresAt",
          "lastUsedAt",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "CartPaymentMethodExpectedActionInputDTO": {
        "properties": {
          "name": {
            "description": "The name of the action, matching the name of the action the checkout requests.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "INPUT"
            ],
            "example": "INPUT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "optional",
          "type"
        ],
        "type": "object"
      },
      "CartPaymentMethodExpectedActionMultiSelectDTO": {
        "properties": {
          "name": {
            "description": "The name of the action, matching the name of the action the checkout requests.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "MULTI_SELECT"
            ],
            "example": "MULTI_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "optional",
          "type"
        ],
        "type": "object"
      },
      "CartPaymentMethodExpectedActionOneOfDTO": {
        "properties": {
          "name": {
            "description": "The name of the action, matching the name of the action the checkout requests.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "options": {
            "description": "The alternatives the user can choose between.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CartPaymentMethodExpectedActionInputDTO",
                "MULTI_SELECT": "#/components/schemas/CartPaymentMethodExpectedActionMultiSelectDTO",
                "SINGLE_SELECT": "#/components/schemas/CartPaymentMethodExpectedActionSingleSelectDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CartPaymentMethodExpectedActionInputDTO"
                },
                {
                  "$ref": "#/components/schemas/CartPaymentMethodExpectedActionSingleSelectDTO"
                },
                {
                  "$ref": "#/components/schemas/CartPaymentMethodExpectedActionMultiSelectDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "ONE_OF"
            ],
            "example": "ONE_OF",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "optional",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CartPaymentMethodExpectedActionSingleSelectDTO": {
        "properties": {
          "name": {
            "description": "The name of the action, matching the name of the action the checkout requests.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "SINGLE_SELECT"
            ],
            "example": "SINGLE_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "optional",
          "type"
        ],
        "type": "object"
      },
      "CartPaymentMethodIconsDTO": {
        "properties": {
          "dark": {
            "description": "The URL to the dark theme icon for the payment method.",
            "example": "https://example.com/icons/dark.png",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "default": {
            "description": "The URL to the default icon for the payment method.",
            "example": "https://example.com/icons/light.png",
            "format": "uri",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "default",
          "dark"
        ],
        "type": "object"
      },
      "CartPaymentMethodItemContractDTO": {
        "properties": {
          "buyer": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartPaymentMethodItemContractPartnerDTO"
              }
            ],
            "description": "The party buying under the contract.",
            "nullable": false,
            "type": "object"
          },
          "id": {
            "description": "The unique identifier of the contract.",
            "example": "f844b31d-64cf-4870-912b-9d0dc15da623",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "supplier": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartPaymentMethodItemContractPartnerDTO"
              }
            ],
            "description": "The party supplying under the contract.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "id",
          "buyer",
          "supplier"
        ],
        "type": "object"
      },
      "CartPaymentMethodItemContractPartnerDTO": {
        "properties": {
          "id": {
            "description": "The unique identifier of the partner.",
            "example": "80822967-c556-4b8f-bf72-20ac8c5918d2",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The display name of the partner.",
            "example": "Acme Fuels GmbH",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "CartPaymentMethodItemDTO": {
        "properties": {
          "contract": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartPaymentMethodItemContractDTO"
              }
            ],
            "description": "The contract this cart item would be purchased under with the payment method, or null when no contract enables the payment method's kind for this cart item.",
            "nullable": true,
            "type": "object"
          },
          "id": {
            "description": "The unique identifier of the cart item.",
            "example": "0c81b3e0-0495-45ce-8df7-6f764c0ef3c5",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "purchaseable": {
            "description": "Determines if the payment method can be used to purchase this cart item.",
            "example": true,
            "nullable": false,
            "type": "boolean"
          },
          "reasonCode": {
            "description": "The reason why the payment method cannot purchase this cart item, or null when it is purchaseable.",
            "example": "PRODUCT_NOT_ALLOWED",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "purchaseable",
          "reasonCode",
          "contract"
        ],
        "type": "object"
      },
      "CartPaymentMethodRestrictionsDTO": {
        "properties": {
          "allowedFuelTypes": {
            "description": "The fuel types the payment method is allowed to purchase, or null when unrestricted.",
            "example": [
              "DIESEL",
              "RON95_E10"
            ],
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array",
            "uniqueItems": true
          },
          "allowedProducts": {
            "description": "The product categories the payment method is allowed to purchase, or null when unrestricted.",
            "example": [
              "FUELING",
              "WASHING"
            ],
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array",
            "uniqueItems": true
          },
          "maxProducts": {
            "description": "The maximum number of products that may be in a cart for a single authorization, or null when unrestricted.",
            "example": 3,
            "exclusiveMinimum": false,
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          },
          "maximumAuthorizeAmount": {
            "description": "The maximum amount the payment method is allowed to authorize, or null when unrestricted.",
            "example": "150.00",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "allowedProducts",
          "allowedFuelTypes",
          "maximumAuthorizeAmount",
          "maxProducts"
        ],
        "type": "object"
      },
      "CartProductDTO": {
        "properties": {
          "id": {
            "description": "The unique identifier for the cart product.",
            "example": "88dd01e3-c300-44af-83e6-86b362c8fa39",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "A human-readable label for the cart product.",
            "example": "Fueling",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "anyOf": [
              {
                "enum": [
                  "FUELING",
                  "WASHING",
                  "CHARGING"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ],
            "description": "The type of the cart product.",
            "example": "FUELING",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "label"
        ],
        "type": "object"
      },
      "CartSummaryDTO": {
        "properties": {
          "currency": {
            "description": "The currency of the cart total.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "priceExcludingVAT": {
            "description": "The total price of the cart, excluding VAT.",
            "example": "61.26",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "priceIncludingVAT": {
            "description": "The total price of the cart, including VAT.",
            "example": "72.90",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          },
          "vatAmount": {
            "description": "The total amount of VAT applied to the cart.",
            "example": "11.64",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "currency",
          "priceExcludingVAT",
          "priceIncludingVAT",
          "vatAmount"
        ],
        "type": "object"
      },
      "CheckoutActionInputDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or null if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "default": {
            "description": "The default value of the action if no value is provided.",
            "example": "7495345",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the action that is required for the cart checkout.",
            "example": "The car mileage is required to complete the cart checkout.",
            "nullable": true,
            "type": "string"
          },
          "format": {
            "description": "The expected format of the input value.",
            "enum": [
              "TEXT",
              "DECIMAL",
              "EMAIL"
            ],
            "example": "TEXT",
            "nullable": false,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the action.",
            "example": "Car Mileage",
            "nullable": false,
            "type": "string"
          },
          "maximum": {
            "description": "The inclusive maximum value of the action when the format is DECIMAL. Ignored for other formats.",
            "example": "100.00",
            "format": "decimal",
            "nullable": true,
            "type": "string"
          },
          "minimum": {
            "description": "The inclusive minimum value of the action when the format is DECIMAL. Ignored for other formats.",
            "example": "10.00",
            "format": "decimal",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "The name of the action that is required for the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "pattern": {
            "description": "The regular expression pattern that the action value must match. May be combined with any format.",
            "example": "^[0-9]+$",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "INPUT"
            ],
            "example": "INPUT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "cartItemId",
          "label",
          "description",
          "optional",
          "type",
          "format",
          "pattern",
          "default",
          "minimum",
          "maximum"
        ],
        "type": "object"
      },
      "CheckoutActionMultiSelectDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or null if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the action that is required for the cart checkout.",
            "example": "The car mileage is required to complete the cart checkout.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the action.",
            "example": "Car Mileage",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the action that is required for the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "options": {
            "description": "The available options for the action.",
            "items": {
              "$ref": "#/components/schemas/CheckoutActionSelectOptionDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "MULTI_SELECT"
            ],
            "example": "MULTI_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "cartItemId",
          "label",
          "description",
          "optional",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CheckoutActionOneOfDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or null if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the action that is required for the cart checkout.",
            "example": "The car mileage is required to complete the cart checkout.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the action.",
            "example": "Car Mileage",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the action that is required for the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "options": {
            "description": "The alternatives the user can choose between. Exactly one of them must be answered.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CheckoutActionInputDTO",
                "MULTI_SELECT": "#/components/schemas/CheckoutActionMultiSelectDTO",
                "SINGLE_SELECT": "#/components/schemas/CheckoutActionSingleSelectDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CheckoutActionInputDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionSingleSelectDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionMultiSelectDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "type": {
            "description": "The type of the action.",
            "enum": [
              "ONE_OF"
            ],
            "example": "ONE_OF",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "cartItemId",
          "label",
          "description",
          "optional",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CheckoutActionSelectOptionDTO": {
        "properties": {
          "detail": {
            "description": "The localized detail of the option.",
            "example": "Optional additional detail",
            "nullable": true,
            "type": "string"
          },
          "disabled": {
            "description": "Whether the option is disabled and cannot be selected.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "icon": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutActionSelectOptionIconDTO"
              }
            ],
            "description": "The icon URLs for the option.",
            "nullable": true,
            "type": "object"
          },
          "text": {
            "description": "The localized text of the option.",
            "example": "Use your passport as driver ID.",
            "nullable": false,
            "type": "string"
          },
          "title": {
            "description": "The localized title of the option.",
            "example": "Passport",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "description": "The technical value of the option used for submission.",
            "example": "passport",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "value",
          "title",
          "text",
          "detail",
          "disabled",
          "icon"
        ],
        "type": "object"
      },
      "CheckoutActionSelectOptionIconDTO": {
        "properties": {
          "dark": {
            "description": "The icon URL for the option in dark mode. Falls back to the default icon if not provided.",
            "example": "https://example.com/icon-dark.png",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "default": {
            "description": "The default icon URL for the option.",
            "example": "https://example.com/icon.png",
            "format": "uri",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "default",
          "dark"
        ],
        "type": "object"
      },
      "CheckoutActionSingleSelectDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or null if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the action that is required for the cart checkout.",
            "example": "The car mileage is required to complete the cart checkout.",
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "The localized label of the action.",
            "example": "Car Mileage",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The name of the action that is required for the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "optional": {
            "description": "Whether the action is optional and does not need to be provided by the client.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "options": {
            "description": "The available options for the action.",
            "items": {
              "$ref": "#/components/schemas/CheckoutActionSelectOptionDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "SINGLE_SELECT"
            ],
            "example": "SINGLE_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "cartItemId",
          "label",
          "description",
          "optional",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CheckoutActionValueInputDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or omitted if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The action to perform on the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "INPUT"
            ],
            "example": "INPUT",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The value of the action to perform on the cart checkout.",
            "example": "74953",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "value"
        ],
        "type": "object"
      },
      "CheckoutActionValueMultiSelectDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or omitted if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The action to perform on the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "options": {
            "description": "The selected options for the action.",
            "items": {
              "$ref": "#/components/schemas/CheckoutActionValueSelectOptionDTO"
            },
            "minItems": 1,
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "MULTI_SELECT"
            ],
            "example": "MULTI_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "options"
        ],
        "type": "object"
      },
      "CheckoutActionValueOneOfDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or omitted if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The action to perform on the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "option": {
            "description": "The selected option for the action.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CheckoutActionValueInputDTO",
                "MULTI_SELECT": "#/components/schemas/CheckoutActionValueMultiSelectDTO",
                "SINGLE_SELECT": "#/components/schemas/CheckoutActionValueSingleSelectDTO"
              },
              "propertyName": "type"
            },
            "nullable": false,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CheckoutActionValueInputDTO"
              },
              {
                "$ref": "#/components/schemas/CheckoutActionValueSingleSelectDTO"
              },
              {
                "$ref": "#/components/schemas/CheckoutActionValueMultiSelectDTO"
              }
            ],
            "type": "object"
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "ONE_OF"
            ],
            "example": "ONE_OF",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "option"
        ],
        "type": "object"
      },
      "CheckoutActionValueSelectOptionDTO": {
        "properties": {
          "value": {
            "description": "The selected value of the option.",
            "example": "passport",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "CheckoutActionValueSingleSelectDTO": {
        "properties": {
          "cartItemId": {
            "description": "The unique identifier of the cart item this action is scoped to, or omitted if the action applies to the entire transaction.",
            "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The action to perform on the cart checkout.",
            "example": "CAR_MILEAGE",
            "nullable": false,
            "type": "string"
          },
          "option": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutActionValueSelectOptionDTO"
              }
            ],
            "description": "The selected option for the action.",
            "nullable": false,
            "type": "object"
          },
          "type": {
            "description": "The discriminator type of the action.",
            "enum": [
              "SINGLE_SELECT"
            ],
            "example": "SINGLE_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "option"
        ],
        "type": "object"
      },
      "CheckoutDTO": {
        "properties": {
          "actions": {
            "description": "The actions that are required to complete the checkout process.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CheckoutActionInputDTO",
                "MULTI_SELECT": "#/components/schemas/CheckoutActionMultiSelectDTO",
                "ONE_OF": "#/components/schemas/CheckoutActionOneOfDTO",
                "SINGLE_SELECT": "#/components/schemas/CheckoutActionSingleSelectDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CheckoutActionInputDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionOneOfDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionSingleSelectDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionMultiSelectDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "actionsUrl": {
            "description": "The URL which the client may follow to complete the checkout process.",
            "example": "https://example.com/checkout/actions",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "cancelledAt": {
            "description": "The timestamp when the checkout was cancelled.",
            "example": "2023-05-15T14:30:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "cartId": {
            "description": "The unique identifier of the cart this checkout pays for.",
            "example": "ae1b58ef-ba5c-4240-b130-51fcf067d40d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "completedAt": {
            "description": "The timestamp when the checkout was completed.",
            "example": "2023-05-15T14:05:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failedAt": {
            "description": "The timestamp when the checkout failed.",
            "example": "2023-05-15T14:00:05.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failureCode": {
            "description": "The failure code of the checkout, if any. Free-form: new codes are introduced without a version change, so treat an unrecognized value as an unspecified failure.",
            "example": "INSUFFICIENT_FUNDS",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the checkout.",
            "example": "f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "items": {
            "description": "The checkouts of the individual cart items within this checkout attempt, in a stable order. An item checkout is still in flight unless its status is `COMPLETED`, `FAILED` or `CANCELLED`.",
            "items": {
              "$ref": "#/components/schemas/CheckoutItemDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          },
          "payment": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutPaymentDTO"
              }
            ],
            "description": "The payment transaction for this checkout attempt.",
            "nullable": true,
            "type": "object"
          },
          "paymentMethodId": {
            "description": "The unique identifier of the payment method used for this checkout.",
            "example": "ecbec75f-7ca4-4017-a485-6a4836de5d25",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "retryable": {
            "description": "Whether a new checkout can be started for the cart after this attempt: true when it was cancelled, awaits actions, or failed for a transient reason (e.g. a provider error), and it is not the cart's last permitted attempt.",
            "example": false,
            "nullable": false,
            "type": "boolean"
          },
          "settlement": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutSettlementDTO"
              }
            ],
            "description": "The background settlement of this checkout attempt, which captures or releases the authorized payment.",
            "nullable": false,
            "type": "object"
          },
          "startedAt": {
            "description": "The timestamp when the checkout was started.",
            "example": "2023-05-15T14:00:00.000Z",
            "format": "date-time",
            "nullable": false,
            "type": "string"
          },
          "status": {
            "description": "The current status of the checkout.",
            "enum": [
              "PROCESSING",
              "ACTIONS_REQUIRED",
              "COMPLETED",
              "CANCELLED",
              "FAILED"
            ],
            "example": "PROCESSING",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "cartId",
          "paymentMethodId",
          "status",
          "actionsUrl",
          "actions",
          "payment",
          "items",
          "settlement",
          "startedAt",
          "completedAt",
          "cancelledAt",
          "failedAt",
          "failureCode",
          "retryable"
        ],
        "type": "object"
      },
      "CheckoutItemDTO": {
        "properties": {
          "cancelledAt": {
            "description": "The timestamp when the item checkout was cancelled.",
            "example": "2023-05-15T14:03:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "cartItemId": {
            "description": "The unique identifier of the cart item this item checkout belongs to.",
            "example": "9b21c7e4-5d3a-4f8b-a1c6-7e2d9f4b0a53",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "completedAt": {
            "description": "The timestamp when the item checkout completed.",
            "example": "2023-05-15T14:05:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failedAt": {
            "description": "The timestamp when the item checkout failed.",
            "example": "2023-05-15T14:04:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failureCode": {
            "description": "The failure code of the item checkout, if any. Free-form: new codes are introduced without a version change, so treat an unrecognized value as an unspecified failure.",
            "example": "UNKNOWN",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the item checkout.",
            "example": "3f8a1c2d-4e5b-4a6c-8d7e-9f0a1b2c3d4e",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "startedAt": {
            "description": "The timestamp when the item checkout started.",
            "example": "2023-05-15T14:00:02.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The status of the item checkout. It stays `PROCESSING` until the product integration reports the item as finished, which may happen after the checkout itself has completed.",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED",
              "CANCELLED"
            ],
            "example": "COMPLETED",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "id",
          "cartItemId",
          "status",
          "startedAt",
          "completedAt",
          "cancelledAt",
          "failedAt",
          "failureCode"
        ],
        "type": "object"
      },
      "CheckoutPaymentDTO": {
        "properties": {
          "authorizedAmount": {
            "description": "The authorized amount of the payment transaction, or null if not yet authorized.",
            "example": "45.00",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "authorizedAt": {
            "description": "The timestamp when the payment was authorized.",
            "example": "2023-05-15T14:00:05.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "cancelledAt": {
            "description": "The timestamp when the payment was cancelled.",
            "example": "2023-05-15T14:30:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "capturedAmount": {
            "description": "The captured amount of the payment transaction, or null if not yet captured.",
            "example": "45.00",
            "exclusiveMinimum": false,
            "format": "decimal",
            "minimum": 0,
            "nullable": true,
            "type": "string"
          },
          "capturedAt": {
            "description": "The timestamp when the payment was captured.",
            "example": "2023-05-15T14:05:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "currency": {
            "description": "The currency of the payment transaction.",
            "example": "EUR",
            "nullable": false,
            "type": "string"
          },
          "failedAt": {
            "description": "The timestamp when the payment failed.",
            "example": "2023-05-15T14:00:05.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failureCode": {
            "description": "The failure code of the payment transaction, if any. Free-form: new codes are introduced without a version change, so treat an unrecognized value as an unspecified failure.",
            "example": "INSUFFICIENT_FUNDS",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "anyOf": [
              {
                "enum": [
                  "AUTHORIZING",
                  "AUTHORIZING_ACTIONS_REQUIRED",
                  "AUTHORIZED",
                  "CAPTURED",
                  "CANCELLED",
                  "FAILED"
                ],
                "type": "string"
              },
              {
                "type": "string"
              }
            ],
            "description": "The status of the payment transaction.",
            "example": "AUTHORIZED",
            "nullable": false,
            "type": "string"
          },
          "transactionId": {
            "description": "The public identifier of the payment transaction, which can be used to fetch payment detail directly from the payment service.",
            "example": "9c2f1e7a-3b4d-4f8a-9c1e-2d6b8a0f5e3c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "transactionId",
          "status",
          "authorizedAmount",
          "capturedAmount",
          "currency",
          "failureCode",
          "authorizedAt",
          "capturedAt",
          "cancelledAt",
          "failedAt"
        ],
        "type": "object"
      },
      "CheckoutSettlementDTO": {
        "properties": {
          "completedAt": {
            "description": "The timestamp when the settlement completed.",
            "example": "2023-05-15T14:10:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failedAt": {
            "description": "The timestamp of the most recent failed settlement run. A run that failed while retries remain is retried in the background, so this may be set while the status is still `PROCESSING`.",
            "example": "2023-05-15T14:09:30.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "startedAt": {
            "description": "The timestamp when the settlement started.",
            "example": "2023-05-15T14:09:00.000Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The status of the background settlement.",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED",
              "CANCELLED"
            ],
            "example": "PENDING",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "status",
          "startedAt",
          "completedAt",
          "failedAt"
        ],
        "type": "object"
      },
      "ConfigureCartItemBodyDTO": {
        "properties": {
          "configuration": {
            "description": "The configuration to apply, discriminated by its type.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/ConfigureCartItemBodyInputTypeDTO",
                "LOCATION": "#/components/schemas/ConfigureCartItemBodyLocationTypeDTO",
                "MULTI_SELECT": "#/components/schemas/ConfigureCartItemBodyMultiSelectTypeDTO",
                "SINGLE_SELECT": "#/components/schemas/ConfigureCartItemBodySingleSelectTypeDTO"
              },
              "propertyName": "type"
            },
            "nullable": false,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ConfigureCartItemBodyInputTypeDTO"
              },
              {
                "$ref": "#/components/schemas/ConfigureCartItemBodySingleSelectTypeDTO"
              },
              {
                "$ref": "#/components/schemas/ConfigureCartItemBodyMultiSelectTypeDTO"
              },
              {
                "$ref": "#/components/schemas/ConfigureCartItemBodyLocationTypeDTO"
              }
            ],
            "type": "object"
          }
        },
        "required": [
          "configuration"
        ],
        "type": "object"
      },
      "ConfigureCartItemBodyInputTypeDTO": {
        "properties": {
          "name": {
            "description": "The unique identifier of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The discriminator for the input type configuration.",
            "enum": [
              "INPUT"
            ],
            "example": "INPUT",
            "nullable": false,
            "type": "string"
          },
          "value": {
            "description": "The input value from the user for this configuration.",
            "example": "100",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "value"
        ],
        "type": "object"
      },
      "ConfigureCartItemBodyLocationTypeDTO": {
        "properties": {
          "latitude": {
            "description": "The user provided latitude for the location.",
            "example": "37.7749",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 90,
            "minimum": -90,
            "nullable": false,
            "type": "string"
          },
          "longitude": {
            "description": "The user provided longitude for the location.",
            "example": "-122.4194",
            "exclusiveMaximum": false,
            "exclusiveMinimum": false,
            "format": "decimal",
            "maximum": 180,
            "minimum": -180,
            "nullable": false,
            "type": "string"
          },
          "name": {
            "description": "The unique identifier of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "type": {
            "description": "The discriminator for the location type configuration.",
            "enum": [
              "LOCATION"
            ],
            "example": "LOCATION",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ConfigureCartItemBodyMultiSelectTypeDTO": {
        "properties": {
          "name": {
            "description": "The unique identifier of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "options": {
            "description": "The selected configuration options.",
            "items": {
              "$ref": "#/components/schemas/ConfigureCartItemBodySelectOptionDTO"
            },
            "minItems": 1,
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          },
          "type": {
            "description": "The discriminator for the multi select type configuration.",
            "enum": [
              "MULTI_SELECT"
            ],
            "example": "MULTI_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "options"
        ],
        "type": "object"
      },
      "ConfigureCartItemBodySelectOptionDTO": {
        "properties": {
          "value": {
            "description": "The value of the selected configuration option.",
            "example": "cb4c8180-2a0b-4a57-a2ba-a996792e5095",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "ConfigureCartItemBodySingleSelectTypeDTO": {
        "properties": {
          "name": {
            "description": "The unique identifier of the configuration item.",
            "example": "PUMP_NUMBER",
            "nullable": false,
            "type": "string"
          },
          "option": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/ConfigureCartItemBodySelectOptionDTO"
              }
            ],
            "description": "The selected configuration option.",
            "nullable": false,
            "type": "object"
          },
          "type": {
            "description": "The discriminator for the single select type configuration.",
            "enum": [
              "SINGLE_SELECT"
            ],
            "example": "SINGLE_SELECT",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "option"
        ],
        "type": "object"
      },
      "ConfigureCartItemResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemDTO"
              }
            ],
            "description": "The cart item that has been configured.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CreateCartBodyDTO": {
        "properties": {
          "clientId": {
            "description": "The client for which the cart should be created.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          },
          "poiId": {
            "description": "The poi for which the cart should be created.",
            "example": "7bf0687b-221d-49a2-a04a-4ec5614aff20",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "userId": {
            "description": "The user for which the cart should be created.",
            "example": "8fc3698e-84ed-4fb9-8898-0992d5fa703b",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "poiId"
        ],
        "type": "object"
      },
      "CreateCartItemBodyDTO": {
        "properties": {
          "productId": {
            "description": "The unique identifier of the product to be added to the cart.",
            "example": "439436d5-3079-47b5-8803-f781c61dbad8",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "productId"
        ],
        "type": "object"
      },
      "CreateCartItemResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemDTO"
              }
            ],
            "description": "The cart item that has been created.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CreateCartResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartDTO"
              }
            ],
            "description": "The cart that has been created.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "CreateCheckoutActionsDTO": {
        "properties": {
          "cancelRedirectUrl": {
            "description": "The URL to redirect the client to after cancelling the checkout actions.",
            "example": "https://example.com/actions/cancel",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "failureRedirectUrl": {
            "description": "The URL to redirect the client to after failing to complete the checkout actions.",
            "example": "https://example.com/actions/failure",
            "format": "uri",
            "nullable": false,
            "type": "string"
          },
          "successRedirectUrl": {
            "description": "The URL to redirect the client to after successfully completing the checkout actions.",
            "example": "https://example.com/actions/success",
            "format": "uri",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "successRedirectUrl",
          "cancelRedirectUrl",
          "failureRedirectUrl"
        ],
        "type": "object"
      },
      "CreateCheckoutBodyDTO": {
        "properties": {
          "actions": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCheckoutActionsDTO"
              }
            ],
            "description": "The redirect URLs the client is sent to when completing the checkout's interactive actions (e.g. 3-D Secure). All three are required together when provided.",
            "nullable": false,
            "type": "object"
          },
          "cartId": {
            "description": "The unique identifier of the cart to check out.",
            "example": "ae1b58ef-ba5c-4240-b130-51fcf067d40d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "description": "The metadata to pass to the payment service during payment authorization.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "cartId"
        ],
        "type": "object"
      },
      "CreateCheckoutResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutDTO"
              }
            ],
            "description": "The checkout that has been created.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetCartItemResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemDTO"
              }
            ],
            "description": "The cart item with for the specified cart.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetCartItemStatusResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemStatusDTO"
              }
            ],
            "description": "The last known or changed cart item status.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetCartItemsResponseDTO": {
        "properties": {
          "data": {
            "description": "The list of all cart items for a specific cart.",
            "items": {
              "$ref": "#/components/schemas/CartItemDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetCartPaymentMethodsResponseDTO": {
        "properties": {
          "data": {
            "description": "The user payment methods based on a cart, including details for each cart item.",
            "items": {
              "$ref": "#/components/schemas/CartPaymentMethodDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetCartProductsQueryFilterDTO": {
        "properties": {
          "type": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/GetCartProductsQueryFilterTypeDTO"
              }
            ],
            "description": "Filter for the type of products in the cart.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "GetCartProductsQueryFilterTypeDTO": {
        "properties": {
          "in": {
            "description": "Only return products of these types.",
            "example": [
              "FUELING",
              "WASHING"
            ],
            "items": {
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "required": [
          "in"
        ],
        "type": "object"
      },
      "GetCartProductsResponseDTO": {
        "properties": {
          "data": {
            "description": "The list of available products for the specified cart.",
            "items": {
              "$ref": "#/components/schemas/CartProductDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetCartResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartDTO"
              }
            ],
            "description": "The cart with the specified ID.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GetCheckoutResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutDTO"
              }
            ],
            "description": "The checkout with the specified ID.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PaginateCartsQueryFilterClientIdDTO": {
        "properties": {
          "eq": {
            "description": "Only return carts created through this client.",
            "example": "pace-drive-app",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginateCartsQueryFilterDTO": {
        "properties": {
          "clientId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginateCartsQueryFilterClientIdDTO"
              }
            ],
            "description": "Filter for the client ID.",
            "nullable": false,
            "type": "object"
          },
          "poiId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginateCartsQueryFilterPoiIdDTO"
              }
            ],
            "description": "Filter for the POI ID.",
            "nullable": false,
            "type": "object"
          },
          "status": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginateCartsQueryFilterStatusDTO"
              }
            ],
            "description": "Filter for the status.",
            "nullable": false,
            "type": "object"
          },
          "userId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginateCartsQueryFilterUserIdDTO"
              }
            ],
            "description": "Filter for the user ID.",
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "PaginateCartsQueryFilterPoiIdDTO": {
        "properties": {
          "eq": {
            "description": "Only return carts at this POI.",
            "example": "f31d0350-6b99-40ee-b7cc-4cdc7a79a905",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginateCartsQueryFilterStatusDTO": {
        "properties": {
          "eq": {
            "description": "Only return carts with this status.",
            "enum": [
              "OPEN",
              "PROCESSING",
              "COMPLETED",
              "CANCELLED",
              "FAILED",
              "EXHAUSTED",
              "EXPIRED"
            ],
            "example": "OPEN",
            "nullable": false,
            "type": "string"
          },
          "in": {
            "description": "Only return carts with one of these statuses.",
            "example": [
              "COMPLETED",
              "CANCELLED"
            ],
            "items": {
              "enum": [
                "OPEN",
                "PROCESSING",
                "COMPLETED",
                "CANCELLED",
                "FAILED",
                "EXHAUSTED",
                "EXPIRED"
              ],
              "type": "string"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "type": "object"
      },
      "PaginateCartsQueryFilterUserIdDTO": {
        "properties": {
          "eq": {
            "description": "Only return carts of this user.",
            "example": "877e8dc9-2838-4f6f-a4a6-76b4c4cf0f2c",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginateCartsQueryPageDTO": {
        "properties": {
          "number": {
            "default": 0,
            "description": "The page number to return.",
            "example": 0,
            "minimum": 0,
            "type": "integer"
          },
          "size": {
            "default": 10,
            "description": "Number of items to return per page.",
            "example": 10,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PaginateCartsResponseDTO": {
        "properties": {
          "data": {
            "description": "The list of carts for the current page.",
            "items": {
              "$ref": "#/components/schemas/CartDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PaginateCheckoutsQueryFilterCartIdDTO": {
        "properties": {
          "eq": {
            "description": "Only return checkouts of this cart.",
            "example": "ae1b58ef-ba5c-4240-b130-51fcf067d40d",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "eq"
        ],
        "type": "object"
      },
      "PaginateCheckoutsQueryFilterDTO": {
        "properties": {
          "cartId": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginateCheckoutsQueryFilterCartIdDTO"
              }
            ],
            "description": "Filter for the cart ID.",
            "nullable": false,
            "type": "object"
          }
        },
        "type": "object"
      },
      "PaginateCheckoutsQueryPageDTO": {
        "properties": {
          "number": {
            "default": 0,
            "description": "The page number to return.",
            "example": 0,
            "minimum": 0,
            "type": "integer"
          },
          "size": {
            "default": 10,
            "description": "Number of items to return per page.",
            "example": 10,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PaginateCheckoutsResponseDTO": {
        "properties": {
          "data": {
            "description": "The list of checkouts for the current page.",
            "items": {
              "$ref": "#/components/schemas/CheckoutDTO"
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": false
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "SetPaymentMethodBodyDTO": {
        "properties": {
          "paymentMethodId": {
            "description": "The unique identifier of the payment method to select for the cart. It must be one of the cart's payment methods and it must be usable.",
            "example": "f90731f2-3628-4194-a628-6a36b7058405",
            "format": "uuid",
            "nullable": false,
            "type": "string"
          }
        },
        "required": [
          "paymentMethodId"
        ],
        "type": "object"
      },
      "SetPaymentMethodResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartDTO"
              }
            ],
            "description": "The cart the payment method has been selected for.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "SubmitCheckoutActionsBodyDTO": {
        "properties": {
          "actions": {
            "description": "The actions to submit for the cart checkout.",
            "discriminator": {
              "mapping": {
                "INPUT": "#/components/schemas/CheckoutActionValueInputDTO",
                "MULTI_SELECT": "#/components/schemas/CheckoutActionValueMultiSelectDTO",
                "ONE_OF": "#/components/schemas/CheckoutActionValueOneOfDTO",
                "SINGLE_SELECT": "#/components/schemas/CheckoutActionValueSingleSelectDTO"
              },
              "propertyName": "type"
            },
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CheckoutActionValueInputDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionValueOneOfDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionValueSingleSelectDTO"
                },
                {
                  "$ref": "#/components/schemas/CheckoutActionValueMultiSelectDTO"
                }
              ]
            },
            "nullable": false,
            "type": "array",
            "uniqueItems": true
          }
        },
        "required": [
          "actions"
        ],
        "type": "object"
      },
      "SubmitCheckoutActionsResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckoutDTO"
              }
            ],
            "description": "The checkout with the submitted actions.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UndoCartItemResponseDTO": {
        "properties": {
          "data": {
            "additionalProperties": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/CartItemDTO"
              }
            ],
            "description": "The cart item whose last configuration step has been reverted.",
            "nullable": false,
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "scopes": {
              "cart:cart-items:cancel:authenticated": "Allows cancelling cart items for the authenticated user.",
              "cart:cart-items:cancel:one": "Allows cancelling a cart item.",
              "cart:cart-items:configure:authenticated": "Allows configuring a cart item for the authenticated user.",
              "cart:cart-items:configure:one": "Allows configuring a cart item.",
              "cart:cart-items:create:authenticated": "Allows creating a cart item for the authenticated user.",
              "cart:cart-items:create:one": "Allows creating a cart item.",
              "cart:cart-items:delete:authenticated": "Allows deleting cart items for the authenticated user.",
              "cart:cart-items:delete:one": "Allows deleting a cart item.",
              "cart:cart-items:read:all": "Allows reading all cart items.",
              "cart:cart-items:read:authenticated": "Allows reading cart items for the authenticated user.",
              "cart:cart-items:read:one": "Allows reading a cart item.",
              "cart:cart-payment-methods:read:all": "Allows reading all cart payment methods.",
              "cart:cart-payment-methods:read:authenticated": "Allows reading cart payment methods for the authenticated user.",
              "cart:cart-products:read:all": "Allows reading all available cart products.",
              "cart:cart-products:read:authenticated": "Allows reading available cart products for the authenticated user.",
              "cart:carts:create:authenticated": "Allows creating a cart for the authenticated user.",
              "cart:carts:create:one": "Allows creating a cart.",
              "cart:carts:read:all": "Allows reading all carts.",
              "cart:carts:read:authenticated": "Allows reading carts for the authenticated user.",
              "cart:carts:read:one": "Allows reading a cart.",
              "cart:carts:update:authenticated": "Allows updating a cart for the authenticated user.",
              "cart:carts:update:one": "Allows updating a cart.",
              "cart:checkouts:cancel:authenticated": "Allows cancelling checkouts for the authenticated user.",
              "cart:checkouts:cancel:one": "Allows cancelling a checkout.",
              "cart:checkouts:create:authenticated": "Allows creating a checkout for the authenticated user.",
              "cart:checkouts:create:one": "Allows creating a checkout.",
              "cart:checkouts:read:all": "Allows reading all checkouts.",
              "cart:checkouts:read:authenticated": "Allows reading checkouts for the authenticated user.",
              "cart:checkouts:read:one": "Allows reading a checkout."
            },
            "authorizationUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/auth",
            "refreshUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token",
            "tokenUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Carts",
      "description": "Endpoints for creating, reading, and managing carts."
    },
    {
      "name": "Cart Products",
      "description": "Endpoints for checking available products for a specific cart."
    },
    {
      "name": "Cart Items",
      "description": "Endpoints for creating, configuring, and managing items within a specific cart."
    },
    {
      "name": "Cart Payment Methods",
      "description": "Endpoints for retrieving user payment methods for a specific cart."
    },
    {
      "name": "Checkouts",
      "description": "Endpoints for creating and managing checkout attempts for a cart."
    }
  ],
  "openapi": "3.0.0",
  "servers": [
    {
      "description": "PACE Cloud API",
      "url": "https://api.pace.cloud/cart"
    }
  ]
}