{
    "info": {
        "version": "2025-3",
        "contact": {},
        "description": "API for managing carts, products, and items.",
        "title": "Cart Service API"
    },
    "paths": {
        "/2025-3/cart-items": {
            "get": {
                "description": "Retrieves all items in a specified cart, including their details and configurations.",
                "operationId": "GetCartItems",
                "parameters": [
                    {
                        "explode": true,
                        "in": "query",
                        "name": "filter",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/GetCartItemsQueryFilterDTO"
                        },
                        "style": "deepObject"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GetCartItemsResponseDTO"
                                }
                            }
                        },
                        "description": "A list of cart items with their details and configurations."
                    },
                    "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": [],
                "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."
                    },
                    "401": {
                        "description": "Client authentication failed."
                    },
                    "403": {
                        "description": "Missing one or more required scopes."
                    },
                    "404": {
                        "description": "The specified cart or product was not found."
                    },
                    "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
            }
        },
        "/2025-3/cart-items/{cartItemId}": {
            "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 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 with for the specified cart."
                    },
                    "401": {
                        "description": "Client authentication failed."
                    },
                    "403": {
                        "description": "Missing one or more required scopes."
                    },
                    "404": {
                        "description": "The specified cart item was not found."
                    },
                    "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
            }
        },
        "/2025-3/cart-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 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."
                    },
                    "401": {
                        "description": "Client authentication failed."
                    },
                    "403": {
                        "description": "Missing one or more required scopes."
                    },
                    "404": {
                        "description": "The specified cart item was not found."
                    },
                    "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
            }
        },
        "/2025-3/cart-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 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."
                    },
                    "401": {
                        "description": "Client authentication failed."
                    },
                    "403": {
                        "description": "Missing one or more required scopes."
                    },
                    "404": {
                        "description": "The specified cart item was not found."
                    },
                    "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
            }
        },
        "/2025-3/cart-payment-methods": {
            "get": {
                "description": "Retrieves all available payment methods for the specified cart, including details about each cart item.",
                "operationId": "GetCartPaymentMethods",
                "parameters": [
                    {
                        "description": "Filter for the cart payment methods.",
                        "explode": true,
                        "in": "query",
                        "name": "filter",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/GetCartPaymentMethodsQueryFilterDTO"
                        },
                        "style": "deepObject"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GetCartPaymentMethodsResponseDTO"
                                }
                            }
                        },
                        "description": "Successfully retrieved payment methods for the cart."
                    },
                    "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
            }
        },
        "/2025-3/cart-products": {
            "get": {
                "description": "Returns a list of all available products for the specified cart.",
                "operationId": "GetCartProducts",
                "parameters": [
                    {
                        "description": "Filter for the products for the specified cart.",
                        "explode": true,
                        "in": "query",
                        "name": "filter",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/GetCartProductsQueryFilterDTO"
                        },
                        "style": "deepObject"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GetCartProductsResponseDTO"
                                }
                            }
                        },
                        "description": "The list of available products for the specified cart."
                    },
                    "401": {
                        "description": "Client authentication failed."
                    },
                    "403": {
                        "description": "Missing one or more required scopes."
                    },
                    "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
            }
        },
        "/2025-3/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": {
                            "$ref": "#/components/schemas/PaginateCartsQueryFilterDTO"
                        },
                        "style": "deepObject"
                    },
                    {
                        "description": "The pagination details for the list of carts.",
                        "explode": true,
                        "in": "query",
                        "name": "page",
                        "required": false,
                        "schema": {
                            "$ref": "#/components/schemas/PaginateCartsQueryPageDTO"
                        },
                        "style": "deepObject"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaginateCartsResponseDTO"
                                }
                            }
                        },
                        "description": "Successfully retrieved the list of carts."
                    },
                    "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"
                    },
                    "401": {
                        "description": "Client authentication failed."
                    },
                    "403": {
                        "description": "Missing one or more required scopes."
                    },
                    "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
            }
        },
        "/2025-3/carts/{cartId}/checkout": {
            "post": {
                "description": "Checks out all items in the specific cart.",
                "operationId": "CheckoutCart",
                "parameters": [
                    {
                        "description": "The unique identifier of the cart to checkout.",
                        "in": "path",
                        "name": "cartId",
                        "required": true,
                        "schema": {
                            "example": "9239a6a6-de5b-4ccc-ba58-40ede174a5a0",
                            "format": "uuid",
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CheckoutCartResponseDTO"
                                }
                            }
                        },
                        "description": "The checkout process has either been completed or has failed."
                    },
                    "202": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CheckoutCartResponseDTO"
                                }
                            }
                        },
                        "description": "The checkout process has been initiated and is being processed."
                    },
                    "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:checkout:authenticated"
                        ]
                    }
                ],
                "summary": "Checkout a cart.",
                "tags": [
                    "Carts"
                ],
                "x-beta": true
            }
        },
        "/2025-3/carts/{cartId}/payment-method": {
            "post": {
                "description": "Sets a payment method for a cart.",
                "operationId": "SetPaymentMethod",
                "parameters": [
                    {
                        "description": "The unique identifier of the cart to set 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 successfully set for the cart."
                    },
                    "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:update:one"
                        ]
                    },
                    {
                        "oauth2": [
                            "cart:carts:update:authenticated"
                        ]
                    }
                ],
                "summary": "Set a payment method for a cart.",
                "tags": [
                    "Carts"
                ],
                "x-beta": true
            }
        }
    },
    "components": {
        "schemas": {
            "CancelCartItemResponseDTO": {
                "properties": {
                    "data": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartItemDTO"
                            }
                        ],
                        "description": "The cart item that has been cancelled.",
                        "nullable": false
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "CartDTO": {
                "properties": {
                    "cancelledAt": {
                        "description": "The timestamp when the cart was cancelled.",
                        "example": "2023-05-15T14:30:00.000Z",
                        "format": "date-time",
                        "nullable": true,
                        "type": "string"
                    },
                    "clientId": {
                        "description": "The unique identifier of the client through which this cart was created.",
                        "example": "0feb6be6-7314-469b-83ac-5b9b7e4b4a4e",
                        "format": "uuid",
                        "nullable": false,
                        "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"
                    },
                    "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 when the cart will expire.",
                        "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 selected payment method for this cart.",
                        "example": "ecbec75f-7ca4-4017-a485-6a4836de5d25",
                        "format": "uuid",
                        "nullable": true,
                        "type": "string"
                    },
                    "poiId": {
                        "description": "The unique identifier of the Point of interest 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": [
                            "PENDING",
                            "CANCELLED",
                            "CHECKOUT_PROCESSING",
                            "CHECKOUT_FAILED",
                            "CHECKOUT_COMPLETED",
                            "CHECKOUT_CANCELLED"
                        ],
                        "example": "PENDING",
                        "nullable": false,
                        "type": "string"
                    },
                    "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",
                    "poiId",
                    "userId",
                    "clientId",
                    "paymentMethodId",
                    "status",
                    "completedAt",
                    "cancelledAt",
                    "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": {
                    "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"
                    },
                    "status": {
                        "description": "The status of the cart item regarding the checkout process.",
                        "enum": [
                            "PENDING",
                            "PROCESSING",
                            "COMPLETED",
                            "FAILED",
                            "CANCELLED"
                        ],
                        "example": "PENDING",
                        "nullable": false,
                        "type": "string"
                    },
                    "unit": {
                        "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": [
                    "status",
                    "currency",
                    "quantity",
                    "unit",
                    "pricePerUnitExcludingVAT",
                    "pricePerUnitIncludingVAT",
                    "priceExcludingVAT",
                    "priceIncludingVAT",
                    "vatRate",
                    "vatAmount"
                ],
                "type": "object"
            },
            "CartItemConfigurationInputTypeDTO": {
                "properties": {
                    "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.",
                        "example": "INPUT",
                        "nullable": false,
                        "type": "string"
                    },
                    "value": {
                        "description": "The value for this configuration.",
                        "example": "100",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "label",
                    "value"
                ],
                "type": "object"
            },
            "CartItemConfigurationLocationTypeDTO": {
                "properties": {
                    "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.",
                        "example": "LOCATION",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "label",
                    "latitude",
                    "longitude"
                ],
                "type": "object"
            },
            "CartItemConfigurationMultiSelectTypeDTO": {
                "properties": {
                    "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.",
                        "items": {
                            "oneOf": [
                                {
                                    "$ref": "#/components/schemas/CartItemConfigurationSelectOptionSimpleDTO"
                                },
                                {
                                    "$ref": "#/components/schemas/CartItemConfigurationSelectOptionPricedDTO"
                                }
                            ]
                        },
                        "nullable": false,
                        "type": "array"
                    },
                    "type": {
                        "description": "The type of the configuration item.",
                        "example": "MULTI_SELECT",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "label",
                    "options"
                ],
                "type": "object"
            },
            "CartItemConfigurationSelectOptionPricedDTO": {
                "properties": {
                    "currency": {
                        "description": "The currency in which the configuration option is priced.",
                        "example": "EUR",
                        "nullable": false,
                        "type": "string"
                    },
                    "description": {
                        "description": "An optional description for the configuration option.",
                        "example": "This is a sample 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.",
                        "example": "PRICED",
                        "nullable": false,
                        "type": "string"
                    },
                    "unit": {
                        "description": "The unit of measurement for the configuration option.",
                        "example": "LITER",
                        "nullable": false,
                        "type": "string"
                    },
                    "value": {
                        "description": "The 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": [
                    "type",
                    "label",
                    "value",
                    "description",
                    "currency",
                    "unit",
                    "pricePerUnitIncludingVAT",
                    "pricePerUnitExcludingVAT",
                    "vatRate"
                ],
                "type": "object"
            },
            "CartItemConfigurationSelectOptionSimpleDTO": {
                "properties": {
                    "description": {
                        "description": "An optional description for the configuration option.",
                        "example": "This is a sample 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.",
                        "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": [
                    "type",
                    "label",
                    "value",
                    "description"
                ],
                "type": "object"
            },
            "CartItemConfigurationSingleSelectTypeDTO": {
                "properties": {
                    "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.",
                        "nullable": false,
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CartItemConfigurationSelectOptionSimpleDTO"
                            },
                            {
                                "$ref": "#/components/schemas/CartItemConfigurationSelectOptionPricedDTO"
                            }
                        ]
                    },
                    "type": {
                        "description": "The type of the configuration item.",
                        "example": "SINGLE_SELECT",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "label",
                    "option"
                ],
                "type": "object"
            },
            "CartItemDTO": {
                "properties": {
                    "authorization": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartItemAuthorizationDTO"
                            }
                        ],
                        "description": "The authorization details for the cart item.",
                        "nullable": true
                    },
                    "cancelledAt": {
                        "description": "The date and time when the cart item 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": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartItemCheckoutDTO"
                            }
                        ],
                        "description": "The checkout details for the cart item.",
                        "nullable": true
                    },
                    "configurations": {
                        "description": "The configurations applied to the cart item.",
                        "items": {
                            "oneOf": [
                                {
                                    "$ref": "#/components/schemas/CartItemConfigurationInputTypeDTO"
                                },
                                {
                                    "$ref": "#/components/schemas/CartItemConfigurationSingleSelectTypeDTO"
                                },
                                {
                                    "$ref": "#/components/schemas/CartItemConfigurationMultiSelectTypeDTO"
                                },
                                {
                                    "$ref": "#/components/schemas/CartItemConfigurationLocationTypeDTO"
                                }
                            ]
                        },
                        "nullable": false,
                        "type": "array"
                    },
                    "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"
                    },
                    "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.",
                        "nullable": true,
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CartItemNextConfigurationInputTypeDTO"
                            },
                            {
                                "$ref": "#/components/schemas/CartItemNextConfigurationSingleSelectTypeDTO"
                            },
                            {
                                "$ref": "#/components/schemas/CartItemNextConfigurationMultiSelectTypeDTO"
                            },
                            {
                                "$ref": "#/components/schemas/CartItemNextConfigurationLocationTypeDTO"
                            }
                        ]
                    },
                    "product": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartProductDTO"
                            }
                        ],
                        "description": "The product details associated with the cart item.",
                        "nullable": false
                    },
                    "status": {
                        "description": "The current status of the cart item.",
                        "enum": [
                            "CONFIGURING",
                            "CONFIGURED",
                            "CANCELLED"
                        ],
                        "example": "CONFIGURING",
                        "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",
                    "status",
                    "product",
                    "authorization",
                    "checkout",
                    "configurations",
                    "next",
                    "configuredAt",
                    "cancelledAt",
                    "createdAt",
                    "updatedAt"
                ],
                "type": "object"
            },
            "CartItemNextConfigurationInputTypeDTO": {
                "properties": {
                    "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": {
                        "example": "INPUT",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "label",
                    "type",
                    "pattern"
                ],
                "type": "object"
            },
            "CartItemNextConfigurationLocationTypeDTO": {
                "properties": {
                    "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": {
                        "example": "LOCATION",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "label",
                    "type"
                ],
                "type": "object"
            },
            "CartItemNextConfigurationMultiSelectTypeDTO": {
                "properties": {
                    "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.",
                        "items": {
                            "oneOf": [
                                {
                                    "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionSimpleDTO"
                                },
                                {
                                    "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionPricedDTO"
                                }
                            ]
                        },
                        "nullable": false,
                        "type": "array"
                    },
                    "type": {
                        "example": "MULTI_SELECT",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "label",
                    "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": "An optional description for the configuration option.",
                        "example": "This is a sample 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"
                    },
                    "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.",
                        "example": "PRICED",
                        "nullable": false,
                        "type": "string"
                    },
                    "unit": {
                        "description": "The unit of measurement for the configuration option.",
                        "example": "LITER",
                        "nullable": false,
                        "type": "string"
                    },
                    "value": {
                        "description": "The 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": [
                    "type",
                    "label",
                    "value",
                    "description",
                    "currency",
                    "unit",
                    "pricePerUnitIncludingVAT",
                    "pricePerUnitExcludingVAT",
                    "vatRate",
                    "disabled"
                ],
                "type": "object"
            },
            "CartItemNextConfigurationSelectOptionSimpleDTO": {
                "properties": {
                    "description": {
                        "description": "An optional description for the configuration option.",
                        "example": "This is a sample 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"
                    },
                    "type": {
                        "description": "The type of the configuration option.",
                        "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": [
                    "type",
                    "label",
                    "value",
                    "description",
                    "disabled"
                ],
                "type": "object"
            },
            "CartItemNextConfigurationSingleSelectTypeDTO": {
                "properties": {
                    "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.",
                        "items": {
                            "oneOf": [
                                {
                                    "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionSimpleDTO"
                                },
                                {
                                    "$ref": "#/components/schemas/CartItemNextConfigurationSelectOptionPricedDTO"
                                }
                            ]
                        },
                        "nullable": false,
                        "type": "array"
                    },
                    "type": {
                        "example": "SINGLE_SELECT",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "label",
                    "type",
                    "options"
                ],
                "type": "object"
            },
            "CartPaymentMethodDTO": {
                "properties": {
                    "alias": {
                        "description": "An optional user provided alias for the payment method.",
                        "example": "My Payment Method",
                        "nullable": true,
                        "type": "string"
                    },
                    "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"
                    },
                    "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": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartPaymentMethodIconsDTO"
                            }
                        ],
                        "description": "The icons associated with the user payment method.",
                        "nullable": false
                    },
                    "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"
                    },
                    "kind": {
                        "description": "The payment method kind of the user payment method.",
                        "example": "FUEL_CARD_PROVIDER",
                        "nullable": false,
                        "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"
                    },
                    "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"
                    }
                },
                "required": [
                    "id",
                    "kind",
                    "name",
                    "alias",
                    "implicit",
                    "shared",
                    "metadata",
                    "icons",
                    "usable",
                    "items",
                    "expiresAt",
                    "createdAt",
                    "updatedAt"
                ],
                "type": "object"
            },
            "CartPaymentMethodIconsDTO": {
                "properties": {
                    "dark": {
                        "description": "The URL to the dark theme icon for the payment method.",
                        "example": "https://example.com/icons/light.png",
                        "format": "uri",
                        "nullable": true,
                        "type": "string"
                    },
                    "default": {
                        "description": "The URL to the default icon for the payment method.",
                        "example": "https://example.com/icons/default.png",
                        "format": "uri",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "default",
                    "dark"
                ],
                "type": "object"
            },
            "CartPaymentMethodItemDTO": {
                "properties": {
                    "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"
                    }
                },
                "required": [
                    "id",
                    "purchaseable"
                ],
                "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": "PACE Connected Fueling",
                        "nullable": false,
                        "type": "string"
                    },
                    "type": {
                        "description": "The type of the cart product.",
                        "example": "FUELING",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "type",
                    "label"
                ],
                "type": "object"
            },
            "CheckoutCartResponseDTO": {
                "properties": {
                    "data": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartDTO"
                            }
                        ],
                        "description": "The cart that has been checked out.",
                        "nullable": false
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "ConfigureCartItemBodyDTO": {
                "properties": {
                    "configuration": {
                        "nullable": false,
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/ConfigureCartItemBodyInputTypeDTO"
                            },
                            {
                                "$ref": "#/components/schemas/ConfigureCartItemBodySingleSelectTypeDTO"
                            },
                            {
                                "$ref": "#/components/schemas/ConfigureCartItemBodyMultiSelectTypeDTO"
                            },
                            {
                                "$ref": "#/components/schemas/ConfigureCartItemBodyLocationTypeDTO"
                            }
                        ]
                    }
                },
                "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 type of configuration item.",
                        "nullable": false,
                        "type": "string"
                    },
                    "value": {
                        "description": "The input value from the user for this configuration.",
                        "example": "100",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "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 type of configuration item.",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "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"
                    },
                    "type": {
                        "description": "The type of configuration item.",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "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": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ConfigureCartItemBodySelectOptionDTO"
                            }
                        ],
                        "description": "The selected configuration option.",
                        "nullable": false
                    },
                    "type": {
                        "description": "The type of configuration item.",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "name",
                    "option"
                ],
                "type": "object"
            },
            "ConfigureCartItemResponseDTO": {
                "properties": {
                    "data": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartItemDTO"
                            }
                        ],
                        "description": "The cart item that has been configured.",
                        "nullable": false
                    }
                },
                "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": {
                    "cartId": {
                        "description": "The unique identifier of the cart to add the item to.",
                        "example": "3682ea8c-4ca4-45d2-bc1e-e6e4dc597ffb",
                        "format": "uuid",
                        "nullable": false,
                        "type": "string"
                    },
                    "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": [
                    "cartId",
                    "productId"
                ],
                "type": "object"
            },
            "CreateCartItemResponseDTO": {
                "properties": {
                    "data": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartItemDTO"
                            }
                        ],
                        "description": "The cart item that has been created.",
                        "nullable": false
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "CreateCartResponseDTO": {
                "properties": {
                    "data": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartDTO"
                            }
                        ],
                        "description": "The cart that has been created.",
                        "nullable": false
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "GetCartItemResponseDTO": {
                "properties": {
                    "data": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartItemDTO"
                            }
                        ],
                        "description": "The cart item with for the specified cart.",
                        "nullable": false
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "GetCartItemsQueryFilterCartIdDTO": {
                "properties": {
                    "eq": {
                        "example": "25b85035-d83f-44fa-bde9-9a7d5dab990c",
                        "format": "uuid",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "eq"
                ],
                "type": "object"
            },
            "GetCartItemsQueryFilterDTO": {
                "properties": {
                    "cartId": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/GetCartItemsQueryFilterCartIdDTO"
                            }
                        ],
                        "nullable": false
                    }
                },
                "required": [
                    "cartId"
                ],
                "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"
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "GetCartPaymentMethodsQueryFilterCartIdDTO": {
                "properties": {
                    "eq": {
                        "description": "Filter for the cart payment methods by a specific cart ID.",
                        "example": "2ea2c446-0cef-4dc2-bf87-65c3b4ecb702",
                        "format": "uuid",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "eq"
                ],
                "type": "object"
            },
            "GetCartPaymentMethodsQueryFilterDTO": {
                "properties": {
                    "cartId": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/GetCartPaymentMethodsQueryFilterCartIdDTO"
                            }
                        ],
                        "description": "Filter for the cart payment methods by cart ID.",
                        "nullable": false
                    }
                },
                "required": [
                    "cartId"
                ],
                "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"
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "GetCartProductsQueryFilterCartIdDTO": {
                "properties": {
                    "eq": {
                        "example": "c450f432-d078-475e-a1b4-a6e3aec21dcb",
                        "format": "uuid",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "eq"
                ],
                "type": "object"
            },
            "GetCartProductsQueryFilterDTO": {
                "properties": {
                    "cartId": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/GetCartProductsQueryFilterCartIdDTO"
                            }
                        ],
                        "description": "Filter for the cart ID.",
                        "nullable": false
                    },
                    "type": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/GetCartProductsQueryFilterTypeDTO"
                            }
                        ],
                        "description": "Filter for the type of products in the cart.",
                        "nullable": false
                    }
                },
                "required": [
                    "cartId",
                    "type"
                ],
                "type": "object"
            },
            "GetCartProductsQueryFilterTypeDTO": {
                "properties": {
                    "in": {
                        "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"
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            },
            "PaginateCartsQueryFilterClientIdDTO": {
                "properties": {
                    "eq": {
                        "example": "pace-drive-app",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "PaginateCartsQueryFilterDTO": {
                "properties": {
                    "clientId": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/PaginateCartsQueryFilterClientIdDTO"
                            }
                        ],
                        "description": "Filter for the client ID.",
                        "nullable": false
                    },
                    "poiId": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/PaginateCartsQueryFilterPoiIdDTO"
                            }
                        ],
                        "description": "Filter for the POI ID.",
                        "nullable": false
                    },
                    "status": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/PaginateCartsQueryFilterStatusDTO"
                            }
                        ],
                        "description": "Filter for the status.",
                        "nullable": false
                    },
                    "userId": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/PaginateCartsQueryFilterUserIdDTO"
                            }
                        ],
                        "description": "Filter for the user ID.",
                        "nullable": false
                    }
                },
                "type": "object"
            },
            "PaginateCartsQueryFilterPoiIdDTO": {
                "properties": {
                    "eq": {
                        "example": "f31d0350-6b99-40ee-b7cc-4cdc7a79a905",
                        "format": "uuid",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "PaginateCartsQueryFilterStatusDTO": {
                "properties": {
                    "eq": {
                        "enum": [
                            "PENDING",
                            "CANCELLED",
                            "CHECKOUT_PROCESSING",
                            "CHECKOUT_FAILED",
                            "CHECKOUT_COMPLETED",
                            "CHECKOUT_CANCELLED"
                        ],
                        "example": "PENDING",
                        "nullable": false,
                        "type": "string"
                    },
                    "in": {
                        "example": [
                            "CHECKOUT_COMPLETED",
                            "CHECKOUT_FAILED",
                            "CHECKOUT_CANCELLED"
                        ],
                        "items": {
                            "enum": [
                                "PENDING",
                                "CANCELLED",
                                "CHECKOUT_PROCESSING",
                                "CHECKOUT_FAILED",
                                "CHECKOUT_COMPLETED",
                                "CHECKOUT_CANCELLED"
                            ],
                            "type": "string"
                        },
                        "nullable": false,
                        "type": "array",
                        "uniqueItems": true
                    }
                },
                "type": "object"
            },
            "PaginateCartsQueryFilterUserIdDTO": {
                "properties": {
                    "eq": {
                        "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"
                    },
                    "page": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/PaginateCartsResponsePageDTO"
                            }
                        ],
                        "description": "The pagination details for the list of carts.",
                        "nullable": false
                    }
                },
                "required": [
                    "data",
                    "page"
                ],
                "type": "object"
            },
            "PaginateCartsResponsePageDTO": {
                "properties": {
                    "count": {
                        "description": "Number of items on the current page.",
                        "example": 7,
                        "type": "integer"
                    },
                    "number": {
                        "description": "Current page number.",
                        "example": 0,
                        "type": "integer"
                    },
                    "size": {
                        "description": "Number of items per page.",
                        "example": 10,
                        "type": "integer"
                    },
                    "total": {
                        "description": "Total number of items across all pages.",
                        "example": 13,
                        "type": "integer"
                    }
                },
                "required": [
                    "number",
                    "size",
                    "count",
                    "total"
                ],
                "type": "object"
            },
            "SetPaymentMethodBodyDTO": {
                "properties": {
                    "paymentMethodId": {
                        "description": "The unique identifier of the payment method to set for the cart.",
                        "example": "f90731f2-3628-4194-a628-6a36b7058405",
                        "format": "uuid",
                        "nullable": false,
                        "type": "string"
                    }
                },
                "required": [
                    "paymentMethodId"
                ],
                "type": "object"
            },
            "SetPaymentMethodResponseDTO": {
                "properties": {
                    "data": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/CartDTO"
                            }
                        ],
                        "description": "The cart that has been updated.",
                        "nullable": false
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            }
        },
        "securitySchemes": {
            "oauth2": {
                "flows": {
                    "authorizationCode": {
                        "authorizationUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/auth",
                        "refreshUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token",
                        "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: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-payment-methods:select:authenticated": "Allows selecting a cart payment method for the authenticated user.",
                            "cart:cart-payment-methods:select:one": "Allows selecting a cart payment method.",
                            "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:checkout:authenticated": "Allows checking out carts 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:update:authenticated": "Allows updating a cart for the authenticated user.",
                            "cart:carts:update:one": "Allows updating a cart."
                        },
                        "tokenUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token"
                    }
                },
                "type": "oauth2"
            }
        }
    },
    "openapi": "3.0.0",
    "servers": [
        {
            "description": "PACE Development API",
            "url": "https://api.dev.pace.cloud/cart"
        },
        {
            "description": "PACE Sandbox API",
            "url": "https://api.sandbox.pace.cloud/cart"
        },
        {
            "description": "PACE Production API",
            "url": "https://api.pace.cloud/cart"
        }
    ],
    "tags": [
        {
            "description": "Endpoints for creating, reading, and managing carts.",
            "name": "Carts"
        },
        {
            "description": "Endpoints for checking available products for a specific cart.",
            "name": "Cart Products"
        },
        {
            "description": "Endpoints for creating, configuring, and managing items within a specific cart.",
            "name": "Cart Items"
        },
        {
            "description": "Endpoints for retrieving user payment methods for a specific cart.",
            "name": "Cart Payment Methods"
        }
    ]
}