{
  "openapi": "3.0.3",
  "info": {
    "title": "PACE Fueling API",
    "description": "The PACE Fueling API is responsible for managing fueling related actions.",
    "termsOfService": "https://legal.pace.cloud/",
    "contact": {
      "name": "PACE Developer Support",
      "url": "https://developer.pace.cloud",
      "email": "api-access@pace.car"
    },
    "version": "2022-1"
  },
  "servers": [
    {
      "url": "https://api.pace.cloud/fueling/2022-1",
      "description": "Production server (stable release 2022-1)"
    }
  ],
  "x-anchors": {
    "fuel": {
      "type": "string",
      "description": "Fuel type for cars, based on the EU fuel marking",
      "enum": [
        "ron98",
        "ron98e5",
        "ron95e10",
        "diesel",
        "e85",
        "ron91",
        "ron95e5",
        "ron100",
        "dieselGtl",
        "dieselB7",
        "dieselB15",
        "dieselPremium",
        "lpg",
        "cng",
        "lng",
        "h2",
        "truckDiesel",
        "adBlue",
        "truckAdBlue",
        "truckDieselPremium",
        "truckLpg",
        "heatingOil"
      ],
      "example": "ron95e10"
    },
    "fuelPrice": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Fuel price",
          "enum": [
            "fuelPrice"
          ]
        },
        "id": {
          "type": "string",
          "description": "Fuel Price ID",
          "example": "2a1319c3-c136-495d-b59a-47b3246d08af"
        },
        "attributes": {
          "type": "object",
          "properties": {
            "fuelType": {
              "type": "string",
              "description": "Fuel type for cars, based on the EU fuel marking",
              "enum": [
                "ron98",
                "ron98e5",
                "ron95e10",
                "diesel",
                "e85",
                "ron91",
                "ron95e5",
                "ron100",
                "dieselGtl",
                "dieselB7",
                "dieselB15",
                "dieselPremium",
                "lpg",
                "cng",
                "lng",
                "h2",
                "truckDiesel",
                "adBlue",
                "truckAdBlue",
                "truckDieselPremium",
                "truckLpg",
                "heatingOil"
              ],
              "example": "ron95e10"
            },
            "price": {
              "type": "number",
              "format": "decimal",
              "description": "Price in currency/unit",
              "example": 1.379
            },
            "unit": {
              "type": "string",
              "description": "Fuel measurement unit. Eg: `liter`, `us-gallon`, `uk-gallon`, `kilogram`",
              "example": "liter"
            },
            "currency": {
              "type": "string",
              "example": "EUR",
              "description": "Currency as specified in ISO-4217.",
              "pattern": "^[A-Z]{3}$"
            },
            "productName": {
              "type": "string",
              "example": "Super E10"
            }
          }
        }
      }
    },
    "pumpStatus": {
      "type": "string",
      "description": "Current pump status.\n* `free` the pump is free, fueling possible (nozzle not lifted), possible transitions *inUse*, *locked*, *outOfOrder*. Note: A transition from *free* to *locked* may implies the pump was pre-authorization was canceled.\n* `inUse` the pump is fueling, possible transitions *readyToPay*, *locked*, *outOfOrder*\n* `readyToPay` the pump can be payed using the post pay process, possible transitions *free*, *locked*, *outOfOrder*. Note: A transition from *readyToPay* to *free* implies the pump was paid.\n* `locked` the pump required a pre-authorization, possible transitions *free*, *inTransaction*, *outOfOrder*. Note: A transition from *locked* to *free* implies the pre-authorization was successful.\n* `inTransaction` the pump is in use by another user using the pre-authorization process, possible transitions *locked*, *outOfOrder*\n* `outOfOrder` the pump has a technical problem, this can only be resolved by the gas station staff on site, possible transitions *free*, *locked*. Note: The customer has to pay in the shop\n",
      "enum": [
        "free",
        "inUse",
        "readyToPay",
        "locked",
        "inTransaction",
        "outOfOrder"
      ]
    },
    "pump": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type",
          "enum": [
            "pump"
          ]
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Pump ID",
          "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
        },
        "attributes": {
          "type": "object",
          "properties": {
            "identifier": {
              "type": "string",
              "description": "Pump identifier",
              "example": "2"
            },
            "fuelingProcess": {
              "type": "string",
              "enum": [
                "postPay",
                "preAuth",
                "preAuthWithFuelType"
              ],
              "description": "The fueling process that has to be followed\n* `postPay` the pump is *free* and needs to be [paid](#operation/ProcessPayment) after fueling\n* `preAuth` the pump is *locked* and has to be [unlocked](#operation/ProcessPayment)\n* `preAuthWithFuelType` the pump is *locked* and has to be [unlocked](#operation/ProcessPayment), the `carFuelType` is required\n",
              "example": "postPay"
            },
            "status": {
              "type": "string",
              "description": "Current pump status.\n* `free` the pump is free, fueling possible (nozzle not lifted), possible transitions *inUse*, *locked*, *outOfOrder*. Note: A transition from *free* to *locked* may implies the pump was pre-authorization was canceled.\n* `inUse` the pump is fueling, possible transitions *readyToPay*, *locked*, *outOfOrder*\n* `readyToPay` the pump can be payed using the post pay process, possible transitions *free*, *locked*, *outOfOrder*. Note: A transition from *readyToPay* to *free* implies the pump was paid.\n* `locked` the pump required a pre-authorization, possible transitions *free*, *inTransaction*, *outOfOrder*. Note: A transition from *locked* to *free* implies the pre-authorization was successful.\n* `inTransaction` the pump is in use by another user using the pre-authorization process, possible transitions *locked*, *outOfOrder*\n* `outOfOrder` the pump has a technical problem, this can only be resolved by the gas station staff on site, possible transitions *free*, *locked*. Note: The customer has to pay in the shop\n",
              "enum": [
                "free",
                "inUse",
                "readyToPay",
                "locked",
                "inTransaction",
                "outOfOrder"
              ]
            },
            "fuelType": {
              "type": "string",
              "example": "ron95e10"
            },
            "productName": {
              "type": "string",
              "example": "Super E10"
            },
            "fuelAmount": {
              "type": "number",
              "format": "decimal",
              "description": "Fuel amount in units",
              "example": 44.3
            },
            "pricePerUnit": {
              "type": "number",
              "format": "decimal",
              "description": "Fuel price in currency/unit",
              "example": 1.359
            },
            "unit": {
              "type": "string",
              "description": "Fuel measurement unit. Eg: `liter`, `us-gallon`, `uk-gallon`, `kilogram`",
              "example": "liter"
            },
            "VAT": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "number",
                  "format": "decimal",
                  "example": 9.72
                },
                "rate": {
                  "type": "number",
                  "format": "decimal",
                  "example": 0.19
                }
              }
            },
            "purposePRNs": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Only if status is locked or readyToPay: PRNs required for creating a token for payment at this gas station",
              "example": [
                "prn:poi:gas-stations:93db55b6-a9ab-4597-a253-49a1718cea0a",
                "prn:cms:fuels:ron95e5"
              ]
            },
            "priceWithoutVAT": {
              "type": "number",
              "format": "decimal",
              "example": 51.37
            },
            "priceIncludingVAT": {
              "type": "number",
              "format": "decimal",
              "example": 61.09
            },
            "currency": {
              "type": "string",
              "example": "EUR",
              "description": "Currency as specified in ISO-4217.",
              "pattern": "^[A-Z]{3}$"
            },
            "transactionId": {
              "type": "string",
              "format": "uuid",
              "example": "e809fcfc-5fdd-4fba-9d3c-2b56c22d643c",
              "description": "Provided if the user pre-authorized the pump"
            },
            "transaction": {
              "$ref": "#/components/schemas/Transaction"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/gas-stations/{gasStationId}/approaching": {
      "post": {
        "tags": [
          "Fueling"
        ],
        "operationId": "ApproachingAtTheForecourt",
        "security": [
          {
            "OAuth2": [
              "fueling:gas-stations:approaching",
              "fueling:transactions:read"
            ]
          },
          {
            "OIDC": [
              "fueling:gas-stations:approaching",
              "fueling:transactions:read"
            ]
          }
        ],
        "summary": "Gather information when approaching at the forecourt\n",
        "description": "This request will:\n* Return a list of paymentMethods of the user which can be used at the\n  gas station.\n\n* Return up-to-date price information (price structure) at the gas\n  station.\n\n* Return a list of pumps available at the gas station together with the\n  current status (free, inUse, readyToPay, outOfOrder). No pumps might\n  be returned if the list of payment methods is empty.\n\nThe approaching is a necessary first api call for connected fueling. Without a valid approaching the [get pump](#operation/GetPump) and [wait for status change](#operation/WaitOnPumpStatusChange) calls may be answered with a `403 Forbidden` status code. An approaching is valid for one fueling only and can't be reused. If a long (not further disclosed time) has passed, the approaching is also invalidated. So if the client is receiving a `403 Forbidden` on the above mentioned calls, a new approaching has to be issued, this can be done transparent to the user.\nOther than authorization, the most common error states encountered should be:\n  * 404, if the gas station does not exist or ConnectedFueling is not available at this station\n  * 502, if there was a communication failure with a third party (e.g. the gas station in question fails to respond). Retry is possible\n  * 503, if ConnectedFueling is available, but the site is offline\n",
        "parameters": [
          {
            "in": "path",
            "name": "gasStationId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Gas station ID",
            "example": "93db55b6-a9ab-4597-a253-49a1718cea0a"
          },
          {
            "in": "query",
            "name": "compile[openingHours]",
            "schema": {
              "type": "boolean",
              "enum": [
                true,
                false
              ]
            },
            "example": true,
            "description": "Reduces the opening hours rules. After compilation, only rules with the action open will remain in the response."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/ApproachingResponse"
                    },
                    "included": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "$ref": "#/components/schemas/GasStation"
                          },
                          {
                            "$ref": "#/components/schemas/GasStationNote"
                          },
                          {
                            "$ref": "#/components/schemas/FuelPrice"
                          },
                          {
                            "$ref": "#/components/schemas/Pump"
                          },
                          {
                            "$ref": "#/components/schemas/PaymentMethod"
                          },
                          {
                            "$ref": "#/components/schemas/PaymentMethodKind"
                          },
                          {
                            "$ref": "#/components/schemas/Transaction"
                          }
                        ]
                      }
                    }
                  }
                },
                "example": {
                  "data": {
                    "type": "approaching",
                    "id": "c3f037ea-492e-4033-9b4b-4efc7beca16c",
                    "relationships": {
                      "gasStation": {
                        "data": {
                          "type": "gasStation",
                          "id": "93db55b6-a9ab-4597-a253-49a1718cea0a"
                        }
                      },
                      "gasStationNote": {
                        "data": {
                          "type": "gasStationNote",
                          "id": "eb7a24cd-39c4-425d-8efd-36df7ef016cb"
                        }
                      },
                      "paymentMethods": {
                        "data": [
                          {
                            "type": "paymentMethod",
                            "id": "6e30ccd1-0f76-4208-bd3d-a804f810cba8"
                          }
                        ]
                      },
                      "unsupportedPaymentMethods": {
                        "data": [
                          {
                            "type": "paymentMethod",
                            "id": "38ce6b10-c515-4316-9c40-64e1382b07b3"
                          }
                        ]
                      },
                      "supportedPaymentMethodKinds": {
                        "data": [
                          {
                            "type": "paymentMethodKind",
                            "id": "sepa"
                          }
                        ]
                      }
                    }
                  },
                  "included": [
                    {
                      "type": "gasStation",
                      "id": "93db55b6-a9ab-4597-a253-49a1718cea0a",
                      "attributes": {
                        "latitude": 49.013,
                        "longitude": 8.425,
                        "stationName": "PACE Station",
                        "address": {
                          "street": "Haid-und-Neu-Str.",
                          "houseNo": "18",
                          "postalCode": "76131",
                          "city": "Karlsruhe",
                          "countryCode": "DE"
                        },
                        "openingHours": {
                          "timezone": "+01:00",
                          "rules": [
                            {
                              "days": [
                                "monday",
                                "tuesday",
                                "wednesday",
                                "thursday",
                                "friday"
                              ],
                              "timespans": [
                                {
                                  "from": "06:00",
                                  "to": "23:00"
                                }
                              ]
                            },
                            {
                              "days": [
                                "saturday"
                              ],
                              "timespans": [
                                {
                                  "from": "07:00",
                                  "to": "23:00"
                                }
                              ]
                            },
                            {
                              "days": [
                                "sunday"
                              ],
                              "timespans": [
                                {
                                  "from": "07:00",
                                  "to": "22:00"
                                }
                              ]
                            }
                          ]
                        },
                        "amenities": [
                          "restaurant",
                          "wifi",
                          "toilets"
                        ],
                        "paymentMethods": [
                          "sepa"
                        ]
                      },
                      "relationships": {
                        "fuelPrices": {
                          "data": [
                            {
                              "type": "fuelPrice",
                              "id": "6b5bff6f-74e1-40a1-9da0-72305292d939"
                            },
                            {
                              "type": "fuelPrice",
                              "id": "f563e0ee-ba9a-4869-8fe7-42639fcf375d"
                            },
                            {
                              "type": "fuelPrice",
                              "id": "cb1afd35-f531-4606-abc8-e1cfbc1f96f5"
                            }
                          ]
                        },
                        "pumps": {
                          "data": [
                            {
                              "type": "pump",
                              "id": "cc6eb485-3f23-48bb-aa79-f995ba35b824"
                            },
                            {
                              "type": "pump",
                              "id": "689631b2-cd75-4f01-a36e-72f77cd4f007"
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "gasStationNote",
                      "id": "eb7a24cd-39c4-425d-8efd-36df7ef016cb",
                      "attributes": {
                        "name": "Hoyer CNG Notice",
                        "info": "warn",
                        "text": "CNG is not available for Connected Fueling yet!"
                      }
                    },
                    {
                      "type": "fuelPrice",
                      "id": "6b5bff6f-74e1-40a1-9da0-72305292d939",
                      "attributes": {
                        "fuelType": "ron95e5",
                        "unit": "liter",
                        "price": 1.399,
                        "currency": "EUR",
                        "productName": "Super E5"
                      }
                    },
                    {
                      "type": "fuelPrice",
                      "id": "f563e0ee-ba9a-4869-8fe7-42639fcf375d",
                      "attributes": {
                        "fuelType": "ron95e10",
                        "unit": "liter",
                        "price": 1.379,
                        "currency": "EUR",
                        "productName": "Super E10"
                      }
                    },
                    {
                      "type": "fuelPrice",
                      "id": "cb1afd35-f531-4606-abc8-e1cfbc1f96f5",
                      "attributes": {
                        "fuelType": "diesel",
                        "unit": "liter",
                        "price": 1.239,
                        "currency": "EUR",
                        "productName": "Diesel"
                      }
                    },
                    {
                      "type": "pump",
                      "id": "cc6eb485-3f23-48bb-aa79-f995ba35b824",
                      "attributes": {
                        "status": "free",
                        "identifier": "1"
                      }
                    },
                    {
                      "type": "pump",
                      "id": "689631b2-cd75-4f01-a36e-72f77cd4f007",
                      "attributes": {
                        "status": "inUse",
                        "identifier": "2"
                      }
                    },
                    {
                      "type": "paymentMethod",
                      "id": "6e30ccd1-0f76-4208-bd3d-a804f810cba8",
                      "attributes": {
                        "kind": "sepa",
                        "identificationString": "DEUTSCHEBANK XX 3000",
                        "vendorPRN": "prn:cms:payment-method-vendors:3af4b4a7-33fc-4930-9c2d-6eea7e488398",
                        "twoFactor": true
                      },
                      "meta": {
                        "merchantName": "PACE"
                      }
                    },
                    {
                      "type": "paymentMethod",
                      "id": "38ce6b10-c515-4316-9c40-64e1382b07b3",
                      "attributes": {
                        "kind": "sepa",
                        "identificationString": "ING-DiBa XX 1337"
                      }
                    },
                    {
                      "type": "paymentMethodKind",
                      "id": "sepa",
                      "attributes": {}
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "410": {
            "$ref": "#/components/responses/Gone"
          },
          "415": {
            "$ref": "#/components/responses/UnsupportedMediaType"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/OfflineGasStation"
          }
        },
        "deprecated": true
      }
    },
    "/gas-stations/{gasStationId}/pumps": {
      "get": {
        "tags": [
          "Fueling"
        ],
        "operationId": "GetPumps",
        "security": [
          {
            "OAuth2": [
              "fueling:pumps:read"
            ]
          },
          {
            "OIDC": [
              "fueling:pumps:read"
            ]
          }
        ],
        "summary": "Return pump information on all pumps of the gas station",
        "description": "Returns the current pump status (free, inUse, readyToPay, outOfOrder, locked) and identifier. If the status is readyToPay, the result also contains fuelType, productName, fuelAmount, VAT (amount & rate), priceWithoutVAT, priceIncludingVAT, currency.\n<br><br>\nOnly use after approaching, otherwise returns `403 Forbidden`.\n",
        "parameters": [
          {
            "in": "path",
            "name": "gasStationId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Gas station ID",
            "example": "583ad807-6a08-4d5a-b3f6-8861b0e355df"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/GetPumpsResponse"
                    },
                    "included": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "$ref": "#/components/schemas/Pump"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "410": {
            "$ref": "#/components/responses/Gone"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "deprecated": true
      }
    },
    "/gas-stations/{gasStationId}/pumps/{pumpId}": {
      "get": {
        "tags": [
          "Fueling"
        ],
        "operationId": "GetPump",
        "security": [
          {
            "OAuth2": [
              "fueling:pumps:read",
              "fueling:transactions:read"
            ]
          },
          {
            "OIDC": [
              "fueling:pumps:read",
              "fueling:transactions:read"
            ]
          }
        ],
        "summary": "Return current pump information",
        "description": "Returns the current pump status (free, inUse, readyToPay, outOfOrder) and identifier. If the status is readyToPay, the result also contains fuelType, productName, fuelAmount, VAT (amount & rate), priceWithoutVAT, priceIncludingVAT, currency.\n<br><br>\nOnly use after approaching, otherwise returns `403 Forbidden`.\n",
        "parameters": [
          {
            "in": "path",
            "name": "gasStationId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Gas station ID",
            "example": "583ad807-6a08-4d5a-b3f6-8861b0e355df"
          },
          {
            "in": "path",
            "name": "pumpId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Pump ID",
            "example": "a4373543-4083-4f0c-a4a9-4bc458b598fd"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/PumpResponse"
                    }
                  }
                },
                "example": {
                  "data": {
                    "type": "pump",
                    "id": "baca9c76-82bf-44e7-b8b0-8af44fa4998b",
                    "attributes": {
                      "identifier": "3",
                      "fuelingProcess": "preAuth",
                      "status": "readyToPay",
                      "fuelType": "ron95e10",
                      "productName": "Super E10",
                      "fuelAmount": 44.3,
                      "pricePerUnit": 1.379,
                      "unit": "liter",
                      "VAT": {
                        "amount": 9.72,
                        "rate": 0.19
                      },
                      "priceWithoutVAT": 51.37,
                      "priceIncludingVAT": 61.09,
                      "currency": "EUR",
                      "transactionId": "93947b05-8486-44d0-822b-c02e1a1eeed7"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "410": {
            "$ref": "#/components/responses/Gone"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "deprecated": true
      }
    },
    "/gas-stations/{gasStationId}/pumps/{pumpId}/discounts": {
      "post": {
        "tags": [
          "Discount"
        ],
        "operationId": "InquireDiscountsForPump",
        "security": [
          {
            "OAuth2": [
              "fueling:discounts:inquiry"
            ]
          },
          {
            "OIDC": [
              "fueling:discounts:inquiry"
            ]
          }
        ],
        "summary": "Inquires discounts from discount providers",
        "description": "The request inquires about discounts for a specific pump and needs to be used before authorizing the payment token. After a discount offer was given the token can be authorized with the discount id in order to activate the discount.\nThis request is not idempotent and can return a different result on the second invocation.\nOnly use this if the pump status is ready to pay, otherwise returns `403 Forbidden`.\n",
        "parameters": [
          {
            "in": "path",
            "name": "gasStationId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Gas station ID",
            "example": "583ad807-6a08-4d5a-b3f6-8861b0e355df"
          },
          {
            "in": "path",
            "name": "pumpId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Pump ID",
            "example": "a4373543-4083-4f0c-a4a9-4bc458b598fd"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/DiscountInquiry"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Discounts"
                    }
                  }
                },
                "example": {
                  "data": [
                    {
                      "type": "discount",
                      "id": "a166d498-a8d6-49f0-83ef-50a42dcf7748",
                      "attributes": {
                        "title": "Giropay discount campaign",
                        "amount": 1.5,
                        "provider": "Giropay"
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "deprecated": true
      }
    },
    "/gas-stations/{gasStationId}/pumps/{pumpId}/wait-for-status-change": {
      "get": {
        "tags": [
          "Fueling"
        ],
        "operationId": "WaitOnPumpStatusChange",
        "security": [
          {
            "OAuth2": [
              "fueling:pumps:read"
            ]
          },
          {
            "OIDC": [
              "fueling:pumps:read"
            ]
          }
        ],
        "summary": "Wait for a status change on a given pump",
        "description": "Uses **long polling** to wait for a status change on a given pump. Returns as soon as the status has changed or after the number of seconds provided by the optional `timeout` query parameter (default timeout is 30 seconds). In case of timeout (408 status code) you're safe to start the request again. Instantaneously returns if `lastStatus` was given and already changed between request. If successful, it returns the same structure as the normal status call\n<br><br>\nOnly use after approaching, otherwise returns `403 Forbidden`.\n",
        "parameters": [
          {
            "in": "path",
            "name": "gasStationId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Gas station ID",
            "example": "a6ec9bd7-cf0b-416c-b24f-9ce65ab3dfe1"
          },
          {
            "in": "path",
            "name": "pumpId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Pump ID",
            "example": "4665fddc-83fe-46bd-85ae-110d71e78357"
          },
          {
            "in": "query",
            "name": "update",
            "schema": {
              "type": "string",
              "enum": [
                "longPolling"
              ]
            },
            "description": "Use **long polling** for status updates"
          },
          {
            "in": "query",
            "name": "lastStatus",
            "schema": {
              "type": "string",
              "description": "Current pump status.\n* `free` the pump is free, fueling possible (nozzle not lifted), possible transitions *inUse*, *locked*, *outOfOrder*. Note: A transition from *free* to *locked* may implies the pump was pre-authorization was canceled.\n* `inUse` the pump is fueling, possible transitions *readyToPay*, *locked*, *outOfOrder*\n* `readyToPay` the pump can be payed using the post pay process, possible transitions *free*, *locked*, *outOfOrder*. Note: A transition from *readyToPay* to *free* implies the pump was paid.\n* `locked` the pump required a pre-authorization, possible transitions *free*, *inTransaction*, *outOfOrder*. Note: A transition from *locked* to *free* implies the pre-authorization was successful.\n* `inTransaction` the pump is in use by another user using the pre-authorization process, possible transitions *locked*, *outOfOrder*\n* `outOfOrder` the pump has a technical problem, this can only be resolved by the gas station staff on site, possible transitions *free*, *locked*. Note: The customer has to pay in the shop\n",
              "enum": [
                "free",
                "inUse",
                "readyToPay",
                "locked",
                "inTransaction",
                "outOfOrder"
              ]
            },
            "required": false,
            "description": "Pump status",
            "example": "outOfOrder"
          },
          {
            "in": "query",
            "name": "timeout",
            "schema": {
              "type": "integer"
            },
            "required": false,
            "description": "Timeout in seconds",
            "example": 20
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/PumpResponse"
                    }
                  }
                },
                "example": {
                  "data": {
                    "type": "pump",
                    "id": "baca9c76-82bf-44e7-b8b0-8af44fa4998b",
                    "attributes": {
                      "identifier": "3",
                      "status": "readyToPay",
                      "fuelType": "ron95e10",
                      "productName": "Super E10",
                      "fuelAmount": 44.3,
                      "VAT": {
                        "amount": 9.72,
                        "rate": 0.19
                      },
                      "priceWithoutVAT": 51.37,
                      "priceIncludingVAT": 61.09,
                      "currency": "EUR"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "408": {
            "$ref": "#/components/responses/RequestTimeout"
          },
          "410": {
            "$ref": "#/components/responses/Gone"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "deprecated": true
      }
    },
    "/gas-stations/{gasStationId}/transactions": {
      "post": {
        "tags": [
          "Fueling"
        ],
        "operationId": "ProcessPayment",
        "security": [
          {
            "OAuth2": [
              "fueling:transactions:create"
            ]
          },
          {
            "OIDC": [
              "fueling:transactions:create"
            ]
          }
        ],
        "summary": "Pre Auth or Post Pay",
        "description": "This call supports two different flows. The *Pre Auth* flow and the *Post Pay* flow. This call will notify the user via email with a payment receipt if transaction is finished successfully. Only use after approaching, otherwise returns `403 Forbidden`.\n### Pre Auth\nThis flow is used if a pump is having the status `locked`. A `locked` pump requires a *Pre Auth* to unlock. Only after this *Pre Auth* the pump and can be used by the user\n* `carFuelType` may be passed to only unlock a certain nozzle of the pump.\n  Not all pumps support this feature, and some require it. It is advised to\n  always pass the desired fuel type.\n\n### Post Pay\nYou can optionally provide:\n* `priceIncludingVAT` and `currency` in the request body to check if the price the user has seen is still correct.\n  If the values don't match, the status `409 Conflict` is returned.\n* `carFuelType` may be provided but has no effect.\n* The token will still be available for use in case the payment fails. It may need to be deleted by the caller\n\n### Unattended Payment\nAs an additional feature, the caller can - in case of Post Pay - opt for unattended payment. In summary, this means that when given a token with a certain authorized amount, the service will watch over the status of the fueling process and finish the transaction in the background, with no further user interaction required. This will only work if the amount fueled does not exceed the amount authorized in the token. Otherwise, an error response will be sent to the callback URL\n* `unattendedPayment` in the request body designates whether this should be done or not. Note that this is only\n  possible if a valid token has been provided\n* `callbackURL` is an optional URL that will be called with what would usually be the response to the final\n  `ProcessPayment` call after the process has finished\n* The token will still be available for use in case the payment fails. It may need to be deleted by the caller\n* This process is only available if the pump is in status `free`. Otherwise, `422` is returned.\n* The backend will wait for a grace period of 20 seconds after this call was sent before starting the process\n",
        "parameters": [
          {
            "in": "path",
            "name": "gasStationId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Gas station ID",
            "example": "a6ec9bd7-cf0b-416c-b24f-9ce65ab3dfe1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/vnd.api+json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Post Pay: Payment successful, or unattended payment enqueued",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/ProcessPaymentResponse"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Pre Auth: Pump unlocked",
            "headers": {
              "Location": {
                "description": "Location of the future payment transaction details",
                "schema": {
                  "type": "string",
                  "format": "url"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "409": {
            "$ref": "#/components/responses/PriceCheckFailed"
          },
          "415": {
            "$ref": "#/components/responses/UnsupportedMediaType"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "deprecated": true
      }
    },
    "/gas-stations/{gasStationId}/transactions/{transactionId}": {
      "delete": {
        "tags": [
          "Fueling"
        ],
        "operationId": "CancelPreAuth",
        "security": [
          {
            "OAuth2": [
              "fueling:transactions:delete"
            ]
          },
          {
            "OIDC": [
              "fueling:transactions:delete"
            ]
          }
        ],
        "summary": "Cancel an authorized transaction",
        "description": "### Pre-Auth\nCancel a Pre Auth transaction. This action is only permitted in case the user didn't already start the fueling process. Returns `403 Forbidden` in case the fueling already started.\n\n### Unattended Payments\nCancel an unattended payment process. This will only work if the payment was not already captured. Returns `404 Not Found` in case the unattended payment already went through.\n",
        "parameters": [
          {
            "in": "path",
            "name": "gasStationId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Gas station ID",
            "example": "a6ec9bd7-cf0b-416c-b24f-9ce65ab3dfe1"
          },
          {
            "in": "path",
            "name": "transactionId",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true,
            "description": "Transaction ID (for pre auth transactions).",
            "example": "c3f037ea-492e-4033-9b4b-4efc7beca16c"
          }
        ],
        "responses": {
          "204": {
            "description": "Canceled"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "deprecated": true
      }
    },
    "/notifications": {
      "post": {
        "tags": [
          "Notification"
        ],
        "operationId": "CreateNotification",
        "security": [
          {
            "OAuth2": [
              "fueling:notifications:create"
            ]
          },
          {
            "OIDC": [
              "fueling:notifications:create"
            ]
          }
        ],
        "summary": "Deliver notification\n",
        "description": "Delivers a notification from a partner system to the PACE fueling system.\n\n  * `406` is returned in case the vendor format is not unknown\n  * `400` is returned in case the vendor format is not valid when comparing against the provided input (request body)\n",
        "parameters": [
          {
            "in": "query",
            "name": "vendor",
            "schema": {
              "type": "string"
            },
            "example": "example",
            "description": "Name of the vendor providing the notification. This will enforce a certain format depending on the vendor."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "The content depends on the vendor.",
          "content": {
            "application/json": {}
          }
        },
        "responses": {
          "201": {
            "description": "Notification was successfully delivered."
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "415": {
            "$ref": "#/components/responses/UnsupportedMediaType"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        },
        "deprecated": true
      }
    }
  },
  "components": {
    "schemas": {
      "TransactionRequest": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "type",
              "attributes"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "transaction"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Transaction ID",
                "example": "c3f037ea-492e-4033-9b4b-4efc7beca16c"
              },
              "attributes": {
                "type": "object",
                "required": [
                  "paymentToken",
                  "pumpId"
                ],
                "properties": {
                  "paymentToken": {
                    "type": "string",
                    "description": "'Value' field of the payment token (not the payment token ID)",
                    "example": "12c52345c1x34"
                  },
                  "unattendedPayment": {
                    "type": "boolean",
                    "description": "Set to 'true' if you want the payment to be cleared automatically in the background after fueling",
                    "example": false
                  },
                  "callbackURL": {
                    "type": "string",
                    "description": "A callback URL to report the status of the transaction to, once completed. Only relevant if unattendedPayment is true",
                    "example": "https://my.fueling/pace/transaction-callback"
                  },
                  "pumpId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Pump ID",
                    "example": "460ffaad-a3c1-4199-b69e-63949ccda82f"
                  },
                  "vin": {
                    "type": "string",
                    "description": "Vehicle identification number",
                    "example": "1B3EL46R36N102271"
                  },
                  "mileage": {
                    "type": "integer",
                    "description": "Current mileage in meters",
                    "minimum": 0,
                    "maximum": 9999999999,
                    "example": 66435000
                  },
                  "numberPlate": {
                    "type": "string",
                    "description": "Number plate of the Vehicle",
                    "example": "KA AM92"
                  },
                  "priceIncludingVAT": {
                    "type": "number",
                    "format": "decimal",
                    "example": 69.34
                  },
                  "currency": {
                    "type": "string",
                    "example": "EUR",
                    "description": "Currency as specified in ISO-4217.",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "carFuelType": {
                    "type": "string",
                    "description": "Fuel type for cars, based on the EU fuel marking",
                    "enum": [
                      "ron98",
                      "ron98e5",
                      "ron95e10",
                      "diesel",
                      "e85",
                      "ron91",
                      "ron95e5",
                      "ron100",
                      "dieselGtl",
                      "dieselB7",
                      "dieselB15",
                      "dieselPremium",
                      "lpg",
                      "cng",
                      "lng",
                      "h2",
                      "truckDiesel",
                      "adBlue",
                      "truckAdBlue",
                      "truckDieselPremium",
                      "truckLpg",
                      "heatingOil"
                    ],
                    "example": "ron95e10"
                  }
                }
              }
            }
          }
        }
      },
      "Pump": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type",
            "enum": [
              "pump"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Pump ID",
            "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "identifier": {
                "type": "string",
                "description": "Pump identifier",
                "example": "2"
              },
              "fuelingProcess": {
                "type": "string",
                "enum": [
                  "postPay",
                  "preAuth",
                  "preAuthWithFuelType"
                ],
                "description": "The fueling process that has to be followed\n* `postPay` the pump is *free* and needs to be [paid](#operation/ProcessPayment) after fueling\n* `preAuth` the pump is *locked* and has to be [unlocked](#operation/ProcessPayment)\n* `preAuthWithFuelType` the pump is *locked* and has to be [unlocked](#operation/ProcessPayment), the `carFuelType` is required\n",
                "example": "postPay"
              },
              "status": {
                "type": "string",
                "description": "Current pump status.\n* `free` the pump is free, fueling possible (nozzle not lifted), possible transitions *inUse*, *locked*, *outOfOrder*. Note: A transition from *free* to *locked* may implies the pump was pre-authorization was canceled.\n* `inUse` the pump is fueling, possible transitions *readyToPay*, *locked*, *outOfOrder*\n* `readyToPay` the pump can be payed using the post pay process, possible transitions *free*, *locked*, *outOfOrder*. Note: A transition from *readyToPay* to *free* implies the pump was paid.\n* `locked` the pump required a pre-authorization, possible transitions *free*, *inTransaction*, *outOfOrder*. Note: A transition from *locked* to *free* implies the pre-authorization was successful.\n* `inTransaction` the pump is in use by another user using the pre-authorization process, possible transitions *locked*, *outOfOrder*\n* `outOfOrder` the pump has a technical problem, this can only be resolved by the gas station staff on site, possible transitions *free*, *locked*. Note: The customer has to pay in the shop\n",
                "enum": [
                  "free",
                  "inUse",
                  "readyToPay",
                  "locked",
                  "inTransaction",
                  "outOfOrder"
                ]
              },
              "fuelType": {
                "type": "string",
                "example": "ron95e10"
              },
              "productName": {
                "type": "string",
                "example": "Super E10"
              },
              "fuelAmount": {
                "type": "number",
                "format": "decimal",
                "description": "Fuel amount in units",
                "example": 44.3
              },
              "pricePerUnit": {
                "type": "number",
                "format": "decimal",
                "description": "Fuel price in currency/unit",
                "example": 1.359
              },
              "unit": {
                "type": "string",
                "description": "Fuel measurement unit. Eg: `liter`, `us-gallon`, `uk-gallon`, `kilogram`",
                "example": "liter"
              },
              "VAT": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "example": 9.72
                  },
                  "rate": {
                    "type": "number",
                    "format": "decimal",
                    "example": 0.19
                  }
                }
              },
              "purposePRNs": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Only if status is locked or readyToPay: PRNs required for creating a token for payment at this gas station",
                "example": [
                  "prn:poi:gas-stations:93db55b6-a9ab-4597-a253-49a1718cea0a",
                  "prn:cms:fuels:ron95e5"
                ]
              },
              "priceWithoutVAT": {
                "type": "number",
                "format": "decimal",
                "example": 51.37
              },
              "priceIncludingVAT": {
                "type": "number",
                "format": "decimal",
                "example": 61.09
              },
              "currency": {
                "type": "string",
                "example": "EUR",
                "description": "Currency as specified in ISO-4217.",
                "pattern": "^[A-Z]{3}$"
              },
              "transactionId": {
                "type": "string",
                "format": "uuid",
                "example": "e809fcfc-5fdd-4fba-9d3c-2b56c22d643c",
                "description": "Provided if the user pre-authorized the pump"
              },
              "transaction": {
                "$ref": "#/components/schemas/Transaction"
              }
            }
          }
        }
      },
      "PumpResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type",
            "enum": [
              "pump"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Pump ID",
            "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "identifier": {
                "type": "string",
                "description": "Pump identifier",
                "example": "2"
              },
              "fuelingProcess": {
                "type": "string",
                "enum": [
                  "postPay",
                  "preAuth",
                  "preAuthWithFuelType"
                ],
                "description": "The fueling process that has to be followed\n* `postPay` the pump is *free* and needs to be [paid](#operation/ProcessPayment) after fueling\n* `preAuth` the pump is *locked* and has to be [unlocked](#operation/ProcessPayment)\n* `preAuthWithFuelType` the pump is *locked* and has to be [unlocked](#operation/ProcessPayment), the `carFuelType` is required\n",
                "example": "postPay"
              },
              "status": {
                "type": "string",
                "description": "Current pump status.\n* `free` the pump is free, fueling possible (nozzle not lifted), possible transitions *inUse*, *locked*, *outOfOrder*. Note: A transition from *free* to *locked* may implies the pump was pre-authorization was canceled.\n* `inUse` the pump is fueling, possible transitions *readyToPay*, *locked*, *outOfOrder*\n* `readyToPay` the pump can be payed using the post pay process, possible transitions *free*, *locked*, *outOfOrder*. Note: A transition from *readyToPay* to *free* implies the pump was paid.\n* `locked` the pump required a pre-authorization, possible transitions *free*, *inTransaction*, *outOfOrder*. Note: A transition from *locked* to *free* implies the pre-authorization was successful.\n* `inTransaction` the pump is in use by another user using the pre-authorization process, possible transitions *locked*, *outOfOrder*\n* `outOfOrder` the pump has a technical problem, this can only be resolved by the gas station staff on site, possible transitions *free*, *locked*. Note: The customer has to pay in the shop\n",
                "enum": [
                  "free",
                  "inUse",
                  "readyToPay",
                  "locked",
                  "inTransaction",
                  "outOfOrder"
                ]
              },
              "fuelType": {
                "type": "string",
                "example": "ron95e10"
              },
              "productName": {
                "type": "string",
                "example": "Super E10"
              },
              "fuelAmount": {
                "type": "number",
                "format": "decimal",
                "description": "Fuel amount in units",
                "example": 44.3
              },
              "pricePerUnit": {
                "type": "number",
                "format": "decimal",
                "description": "Fuel price in currency/unit",
                "example": 1.359
              },
              "unit": {
                "type": "string",
                "description": "Fuel measurement unit. Eg: `liter`, `us-gallon`, `uk-gallon`, `kilogram`",
                "example": "liter"
              },
              "VAT": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "example": 9.72
                  },
                  "rate": {
                    "type": "number",
                    "format": "decimal",
                    "example": 0.19
                  }
                }
              },
              "purposePRNs": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Only if status is locked or readyToPay: PRNs required for creating a token for payment at this gas station",
                "example": [
                  "prn:poi:gas-stations:93db55b6-a9ab-4597-a253-49a1718cea0a",
                  "prn:cms:fuels:ron95e5"
                ]
              },
              "priceWithoutVAT": {
                "type": "number",
                "format": "decimal",
                "example": 51.37
              },
              "priceIncludingVAT": {
                "type": "number",
                "format": "decimal",
                "example": 61.09
              },
              "currency": {
                "type": "string",
                "example": "EUR",
                "description": "Currency as specified in ISO-4217.",
                "pattern": "^[A-Z]{3}$"
              },
              "transactionId": {
                "type": "string",
                "format": "uuid",
                "example": "e809fcfc-5fdd-4fba-9d3c-2b56c22d643c",
                "description": "Provided if the user pre-authorized the pump"
              },
              "transaction": {
                "$ref": "#/components/schemas/Transaction"
              }
            }
          }
        }
      },
      "DiscountInquiry": {
        "type": "object",
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Type",
            "enum": [
              "discountInquiry"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Discount Inquiry id identifies the clients request uniquely",
            "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "paymentMethodId": {
                "type": "string",
                "format": "uuid",
                "description": "UUID of the payment method that is intended to be used for the payment",
                "example": "a2c93591-4ce7-42ee-8393-15bfa7239a62"
              },
              "paymentMethodKind": {
                "type": "string",
                "description": "Payment Method Kind as name.",
                "example": "paydirekt"
              }
            }
          }
        }
      },
      "Discount": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type",
            "enum": [
              "discount"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Discount ID",
            "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "Line item",
                "example": "Giropay promotion campaign"
              },
              "amount": {
                "type": "number",
                "format": "decimal",
                "description": "Amount in the currency of the pumps ready to pay amount",
                "example": 1.5
              },
              "provider": {
                "type": "string",
                "description": "Human readable name of the discount provider",
                "example": "Giropay"
              }
            }
          }
        }
      },
      "Discounts": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Discount"
        }
      },
      "FuelPrice": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Fuel price",
            "enum": [
              "fuelPrice"
            ]
          },
          "id": {
            "type": "string",
            "description": "Fuel Price ID",
            "example": "2a1319c3-c136-495d-b59a-47b3246d08af"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "fuelType": {
                "type": "string",
                "description": "Fuel type for cars, based on the EU fuel marking",
                "enum": [
                  "ron98",
                  "ron98e5",
                  "ron95e10",
                  "diesel",
                  "e85",
                  "ron91",
                  "ron95e5",
                  "ron100",
                  "dieselGtl",
                  "dieselB7",
                  "dieselB15",
                  "dieselPremium",
                  "lpg",
                  "cng",
                  "lng",
                  "h2",
                  "truckDiesel",
                  "adBlue",
                  "truckAdBlue",
                  "truckDieselPremium",
                  "truckLpg",
                  "heatingOil"
                ],
                "example": "ron95e10"
              },
              "price": {
                "type": "number",
                "format": "decimal",
                "description": "Price in currency/unit",
                "example": 1.379
              },
              "unit": {
                "type": "string",
                "description": "Fuel measurement unit. Eg: `liter`, `us-gallon`, `uk-gallon`, `kilogram`",
                "example": "liter"
              },
              "currency": {
                "type": "string",
                "example": "EUR",
                "description": "Currency as specified in ISO-4217.",
                "pattern": "^[A-Z]{3}$"
              },
              "productName": {
                "type": "string",
                "example": "Super E10"
              }
            }
          }
        }
      },
      "FuelPriceResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "Fuel price",
                "enum": [
                  "fuelPrice"
                ]
              },
              "id": {
                "type": "string",
                "description": "Fuel Price ID",
                "example": "2a1319c3-c136-495d-b59a-47b3246d08af"
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "fuelType": {
                    "type": "string",
                    "description": "Fuel type for cars, based on the EU fuel marking",
                    "enum": [
                      "ron98",
                      "ron98e5",
                      "ron95e10",
                      "diesel",
                      "e85",
                      "ron91",
                      "ron95e5",
                      "ron100",
                      "dieselGtl",
                      "dieselB7",
                      "dieselB15",
                      "dieselPremium",
                      "lpg",
                      "cng",
                      "lng",
                      "h2",
                      "truckDiesel",
                      "adBlue",
                      "truckAdBlue",
                      "truckDieselPremium",
                      "truckLpg",
                      "heatingOil"
                    ],
                    "example": "ron95e10"
                  },
                  "price": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price in currency/unit",
                    "example": 1.379
                  },
                  "unit": {
                    "type": "string",
                    "description": "Fuel measurement unit. Eg: `liter`, `us-gallon`, `uk-gallon`, `kilogram`",
                    "example": "liter"
                  },
                  "currency": {
                    "type": "string",
                    "example": "EUR",
                    "description": "Currency as specified in ISO-4217.",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "productName": {
                    "type": "string",
                    "example": "Super E10"
                  }
                }
              }
            }
          }
        }
      },
      "PaymentMethodKind": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "paymentMethodKind"
            ]
          },
          "id": {
            "type": "string",
            "description": "one of sepa, creditcard, paypal, paydirekt, dkv, applepay, ..."
          },
          "attributes": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "localized name",
                "example": "SEPA direct debit"
              },
              "currencies": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Currencies supported by payment method kind",
                "example": [
                  "EUR",
                  "PLN"
                ]
              },
              "twoFactor": {
                "type": "boolean",
                "description": "indicates if the payment method kind requires two factors later on",
                "example": true
              },
              "fuelcard": {
                "type": "boolean",
                "description": "Indicates whether the payment method is a fuel card. Fuelcard `no` means no.",
                "example": false
              },
              "implicit": {
                "type": "boolean",
                "description": "Indicates whether the payment method can be onboarded/modified. Implict `true` means no. Otherwise yes.\nMost payment method kinds are no implicit, i.e., `implicit=false`.\nThis field is optional and if not present should be assumed to indicate `implicit=false`.\n",
                "example": true
              },
              "vendorPRNs": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "PACE resource name(s) to payment method vendors",
                "example": [
                  "prn:cms:payment-method-vendors:3af4b4a7-33fc-4930-9c2d-6eea7e488398",
                  "prn:cms:payment-method-vendors:d546bbe8-e707-43ae-8345-0709e30e710f"
                ]
              },
              "dataPrivacy": {
                "type": "object",
                "description": "data privacy information",
                "properties": {
                  "hint": {
                    "type": "object",
                    "description": "Localized hint that data privacy terms apply. The hint comes formatted in multiple ways, which are all equally valid if given. Additional formats might be added in the future.",
                    "properties": {
                      "markdown": {
                        "type": "string",
                        "description": "Hint formatted as markdown. Contains only links to the reference <code>terms</code>. Does not contain other links. Other than that, only contains markdown syntax for <a href=\"https://daringfireball.net/projects/markdown/syntax#p\">Paragraphs and Line Breaks</a> and <a href=\"https://daringfireball.net/projects/markdown/syntax#em\">Emphasis</a>.",
                        "example": "Please read the [payment terms][terms] _carefully_."
                      }
                    }
                  },
                  "terms": {
                    "type": "object",
                    "description": "Localized data privacy terms. The terms come formatted in multiple ways, which are all equally valid if given. Additional formats might be added in the future.",
                    "properties": {
                      "markdown": {
                        "type": "string",
                        "description": "Terms formatted as markdown. Does not contain external resources like images.",
                        "example": "# Terms & Conditions\n\nLorem ipsum ...\n"
                      }
                    }
                  }
                }
              },
              "vendors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "ID of the payment method vendor.",
                      "example": "3af4b4a7-33fc-4930-9c2d-6eea7e488398"
                    },
                    "slug": {
                      "type": "string",
                      "example": "visa"
                    },
                    "name": {
                      "type": "string",
                      "example": "VISA"
                    },
                    "logo": {
                      "type": "object",
                      "properties": {
                        "href": {
                          "type": "string",
                          "example": "/cms/images/payment-method-vendors/visa.png"
                        },
                        "variants": {
                          "type": "array",
                          "description": "variants of the vendor's logo",
                          "items": {
                            "type": "object",
                            "properties": {
                              "href": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "x-examples": {
                        "vendorLogo-example": {
                          "href": "/cms/images/payment-method-vendors/visa.png",
                          "variants": [
                            {
                              "href": "/cms/images/payment-method-vendors/mastercard-dark.png"
                            },
                            {
                              "href": "/cms/images/payment-method-vendors/mastercard-light.png"
                            }
                          ]
                        }
                      }
                    },
                    "paymentMethodKindId": {
                      "type": "string",
                      "example": "creditcard"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "PaymentMethod": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "paymentMethod"
            ]
          },
          "id": {
            "type": "string",
            "description": "Payment Method ID",
            "example": "e2e06fb6-5dd8-47d9-a5ac-e28fad440dd1"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "description": "one of sepa, creditcard, paypal, paydirekt, dkv, applepay, ..."
              },
              "status": {
                "type": "string",
                "enum": [
                  "created",
                  "verified",
                  "pending",
                  "unacceptable"
                ],
                "example": "verified",
                "description": "The desired status for a payment method is `verified`, this means the method is ready to use.\nA payment method that has the status `created` has yet to be verified. This is the case for payment methods,\nwhich have an asynchronous verification process, e.g., paydirekt (waiting for an email).\n"
              },
              "identificationString": {
                "type": "string",
                "example": "DEUTSCHEBANK XX 3000"
              },
              "alias": {
                "type": "string",
                "description": "Customer chosen alias for the payment method",
                "example": "My wifes card"
              },
              "vendorPRN": {
                "type": "string",
                "description": "PACE resource name(s) to payment method vendor",
                "example": "prn:cms:payment-method-vendors:3af4b4a7-33fc-4930-9c2d-6eea7e488398"
              },
              "twoFactor": {
                "type": "boolean",
                "description": "indicates if the payment method kind requires two factors later on",
                "example": true
              },
              "pacePay": {
                "type": "boolean",
                "description": "Identifies if the payment method is a PACE payment method (`true`) or a broker method (`false`)",
                "example": true
              },
              "mandatoryAuthorisationAttributes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": [
                        "vin",
                        "mileage"
                      ]
                    },
                    "maxLength": {
                      "type": "integer"
                    },
                    "regex": {
                      "type": "string"
                    }
                  },
                  "description": "Mandatory transaction attribute validator",
                  "example": {
                    "maxLength": 8,
                    "regex": "[A-Z][0-9]+"
                  }
                }
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "merchantName": {
                "type": "string",
                "description": "Merchant name if the request was made in a way that a merchant name can be determined. For example if requesting payment methods for a specific gas station, it is the merchant name at that gas station.",
                "example": "PACE"
              }
            }
          }
        }
      },
      "ProcessPaymentResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "transaction"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Transaction ID",
            "example": "c3f037ea-492e-4033-9b4b-4efc7beca16c"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "paymentToken": {
                "type": "string",
                "example": "12c52345c1x34"
              },
              "gasStationId": {
                "type": "string",
                "format": "uuid",
                "example": "a6ec9bd7-cf0b-416c-b24f-9ce65ab3dfe1"
              },
              "pumpId": {
                "type": "string",
                "format": "uuid",
                "example": "460ffaad-a3c1-4199-b69e-63949ccda82f"
              },
              "vin": {
                "type": "string",
                "description": "Vehicle identification number",
                "example": "1B3EL46R36N102271"
              },
              "mileage": {
                "description": "Mileage in meters",
                "type": "integer",
                "example": 66435000
              },
              "VAT": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "example": 11.07
                  },
                  "rate": {
                    "type": "number",
                    "format": "decimal",
                    "example": 0.19
                  }
                }
              },
              "priceWithoutVAT": {
                "type": "number",
                "format": "decimal",
                "example": 58.27
              },
              "priceIncludingVAT": {
                "type": "number",
                "format": "decimal",
                "example": 69.34
              },
              "discountAmount": {
                "description": "Amount that was discounted. Only if any discounts were applied earlier.",
                "type": "number",
                "format": "decimal",
                "example": 1.27
              },
              "currency": {
                "type": "string",
                "example": "EUR",
                "description": "Currency as specified in ISO-4217.",
                "pattern": "^[A-Z]{3}$"
              }
            }
          }
        }
      },
      "GetPumpsResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "getPumps"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "request ID",
            "example": "c3f037ea-492e-4033-9b4b-4efc7beca16c"
          },
          "relationships": {
            "type": "object",
            "properties": {
              "pumps": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "pump"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Pump ID",
                          "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "ApproachingResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "approaching"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Approaching ID",
            "example": "c3f037ea-492e-4033-9b4b-4efc7beca16c"
          },
          "relationships": {
            "type": "object",
            "properties": {
              "gasStation": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "gasStation"
                        ]
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "description": "Gas Station ID",
                        "example": "93db55b6-a9ab-4597-a253-49a1718cea0a"
                      }
                    }
                  }
                }
              },
              "gasStationNote": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "gasStationNote"
                        ]
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "description": "Gas Station Note's ID",
                        "example": "eb7a24cd-39c4-425d-8efd-36df7ef016cb"
                      }
                    }
                  }
                }
              },
              "paymentMethods": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "paymentMethod"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Payment Method ID",
                          "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
                        }
                      }
                    }
                  }
                }
              },
              "unsupportedPaymentMethods": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "paymentMethod"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Payment Method ID",
                          "example": "a166d498-a8d6-49f0-83ef-50a42dcf7748"
                        }
                      }
                    }
                  }
                }
              },
              "supportedPaymentMethodKinds": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "paymentMethodKind"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "description": "Payment method kind",
                          "example": "sepa"
                        }
                      }
                    }
                  }
                }
              },
              "transactions": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "transaction"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "description": "transaction ID",
                          "example": "88b40caf-9add-47fc-a2f6-388de89a2b3a"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "GasStationNote": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "gasStationNote"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Gas Station Note's ID",
            "example": "eb7a24cd-39c4-425d-8efd-36df7ef016cb"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Hoyer CNG Notice"
              },
              "info": {
                "type": "string",
                "example": "warn"
              },
              "text": {
                "type": "string",
                "example": "CNG is not available for Connected Fueling yet!"
              }
            }
          }
        }
      },
      "Transaction": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "transaction"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Transaction ID",
            "example": "88b40caf-9add-47fc-a2f6-388de89a2b3a"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "example": "announced"
              },
              "authorizedAmount": {
                "type": "number",
                "format": "decimal",
                "example": 70
              },
              "PumpUUID": {
                "type": "string",
                "format": "uuid",
                "description": "UUID of the pump this transaction was created on",
                "example": "44b3812b-c03b-414f-8b6b-1a80fcbdc28c"
              },
              "VAT": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "example": 11.07
                  },
                  "rate": {
                    "type": "number",
                    "format": "decimal",
                    "example": 0.19
                  }
                }
              },
              "priceWithoutVAT": {
                "type": "number",
                "format": "decimal",
                "example": 58.27
              },
              "priceIncludingVAT": {
                "type": "number",
                "format": "decimal",
                "example": 69.34
              },
              "currency": {
                "type": "string",
                "example": "EUR",
                "description": "Currency as specified in ISO-4217.",
                "pattern": "^[A-Z]{3}$"
              },
              "pricePerUnit": {
                "type": "number",
                "format": "decimal",
                "example": 1.309
              },
              "unit": {
                "type": "string",
                "description": "Fuel measurement unit. Eg: `liter`, `us-gallon`, `uk-gallon`, `kilogram`",
                "example": "liter"
              },
              "fuelType": {
                "type": "string",
                "example": "ron95e5"
              },
              "fuelAmount": {
                "type": "number",
                "format": "decimal",
                "example": 52.97
              },
              "productName": {
                "type": "string",
                "example": "Super E5"
              },
              "paymentToken": {
                "type": "string",
                "example": "12c52345c1x34"
              },
              "paymentTokenRestrictions": {
                "description": "PRNs describing the restrictions (station and fuel types) for a token, if a token is provided",
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "prn:cms:fuels:diesel",
                  "prn:poi:gas-stations:93db55b6-a9ab-4597-a253-49a1718cea0a"
                ]
              }
            }
          }
        }
      },
      "GasStation": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "gasStation"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Gas Station ID",
            "example": "d7101f72-a672-453c-9d36-d5809ef0ded6"
          },
          "attributes": {
            "type": "object",
            "properties": {
              "latitude": {
                "type": "number",
                "format": "float",
                "example": 49.013
              },
              "longitude": {
                "type": "number",
                "format": "float",
                "example": 8.425
              },
              "stationName": {
                "type": "string",
                "example": "PACE Station"
              },
              "address": {
                "type": "object",
                "properties": {
                  "street": {
                    "type": "string",
                    "example": "Haid-und-Neu-Str."
                  },
                  "houseNo": {
                    "type": "string",
                    "example": "18"
                  },
                  "postalCode": {
                    "type": "string",
                    "example": "76131"
                  },
                  "city": {
                    "type": "string",
                    "example": "Karlsruhe"
                  },
                  "countryCode": {
                    "type": "string",
                    "example": "DE",
                    "description": "Country code in as specified in ISO 3166-1."
                  }
                }
              },
              "openingHours": {
                "$ref": "#/components/schemas/CommonOpeningHours"
              },
              "currency": {
                "type": "string",
                "example": "EUR",
                "description": "Currency as specified in ISO-4217.",
                "pattern": "^[A-Z]{3}$"
              },
              "amenities": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "restaurant"
                ]
              },
              "paymentMethods": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "one of sepa, creditcard, paypal, paydirekt, dkv, applepay, ..."
                },
                "example": [
                  "sepa"
                ]
              },
              "lastUpdateTime": {
                "type": "string",
                "format": "date-time",
                "description": "Time of last update of this gas station's fuel prices",
                "example": "2020-01-01T00:00:00"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "fuelPrices": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "fuelPrice"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Fuel Price ID",
                          "example": "486e1b37-10b5-4089-aa21-15dea6f0e01e"
                        }
                      }
                    }
                  }
                }
              },
              "pumps": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "pump"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Pump ID",
                          "example": "c4bb2c5e-71fd-42ed-a664-471984e28f1f"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "CommonOpeningHours": {
        "type": "object",
        "properties": {
          "timezone": {
            "type": "string",
            "description": "As defined by ISO 8601, the timezone",
            "example": "+01:00"
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "action": {
                  "type": "string",
                  "default": "open",
                  "enum": [
                    "open",
                    "close"
                  ]
                },
                "days": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "monday",
                      "tuesday",
                      "wednesday",
                      "thursday",
                      "friday",
                      "saturday",
                      "sunday"
                    ]
                  }
                },
                "timespans": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "from": {
                        "description": "relative to the specified time zone (local time)",
                        "type": "string",
                        "example": "07:30"
                      },
                      "to": {
                        "description": "relative to the specified time zone (local time)",
                        "type": "string",
                        "example": "20:30"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "example": {
          "timezone": "+01:00",
          "rules": [
            {
              "days": [
                "monday",
                "tuesday",
                "wednesday",
                "thursday",
                "friday"
              ],
              "hours": [
                {
                  "from": "06:00",
                  "to": "23:00"
                }
              ]
            },
            {
              "days": [
                "saturday"
              ],
              "hours": [
                {
                  "from": "07:00",
                  "to": "23:00"
                }
              ]
            },
            {
              "days": [
                "sunday"
              ],
              "hours": [
                {
                  "from": "07:00",
                  "to": "22:00"
                }
              ]
            }
          ]
        }
      },
      "Errors": {
        "type": "object",
        "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "A unique identifier for this particular occurrence of the problem."
                },
                "links": {
                  "type": "object",
                  "properties": {
                    "about": {
                      "type": "string",
                      "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                    }
                  }
                },
                "status": {
                  "type": "string",
                  "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                },
                "code": {
                  "type": "string",
                  "description": "an application-specific error code, expressed as a string value.\n"
                },
                "title": {
                  "type": "string",
                  "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                },
                "detail": {
                  "type": "string",
                  "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                },
                "source": {
                  "type": "object",
                  "description": "An object containing references to the source of the error.\n",
                  "properties": {
                    "pointer": {
                      "type": "string",
                      "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                    },
                    "parameter": {
                      "type": "string",
                      "description": "A string indicating which URI query parameter caused the error.\n"
                    }
                  }
                },
                "meta": {
                  "type": "object",
                  "description": "a meta object containing non-standard meta-information about the error.\n",
                  "properties": {},
                  "additionalProperties": true
                }
              }
            }
          }
        }
      }
    },
    "responses": {
      "BadGateway": {
        "description": "Error occurred while communicating with PACE services",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "$ref": "#/components/schemas/Errors"
            }
          }
        }
      },
      "OfflineGasStation": {
        "description": "Error occurred while communicating with gas station network",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "$ref": "#/components/schemas/Errors"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "OAuth token missing or invalid or a linked identity is missing.\n\nLinked identity missing is a special case where you need to make sure that\nthe user has additionally logged in / authorized with a third-party.\n\nThis is not relevant for most use-cases.\n\nThe specific error code that identifies a missing linked identity is `missing-linked-identity`\n\nExample:\n\n```\n  {\n      \"errors\": [\n          {\n              \"id\": \"cbgmhslmp1o9or9kh1p0\",\n              \"title\": \"Missing linked identity for authorized access\",\n              \"detail\": \"Linked identity is needed to access this resource, please check why the user does not have a linked identity\",\n              \"status\": \"401\",\n              \"code\": \"missing-linked-identity\"\n          }\n      ]\n  }\n```\n",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "NotFound": {
        "description": "Resource not found",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "BadRequest": {
        "description": "Bad request",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "NotAcceptable": {
        "description": "The specified accept header is invalid",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Gone": {
        "description": "Resource is gone",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "RequestTimeout": {
        "description": "Your request timed out",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "UnprocessableEntity": {
        "description": "The request was well-formed but was unable to be followed due to semantic errors.",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal server error",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "UnsupportedMediaType": {
        "description": "The specified content type header is invalid",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "PriceCheckFailed": {
        "description": "The provided priceIncludingVAT does not match the actual price",
        "content": {
          "application/vnd.api+json": {
            "schema": {
              "type": "object",
              "description": "Error objects provide additional information about problems encountered while performing an operation.\nErrors also contain codes besides title and message which can be used for checks even if the detailed messages might change.\n\n    * `1000`:  generic error\n    * `1001`:  payment processing temporarily unavailable\n    * `1002`:  requested amount exceeds the authorized amount of the provided token\n    * `1003`:  implicit payment methods cannot be modified\n    * `1004`:  payment method rejected by provider\n    * `provider:payment-method-rejected`:  payment method rejected by provider (identical to `1004`)\n    * `rule:product-denied`: Product restrictions forbid transaction, e.g., forbidden fuel type - token authorized only for Diesel but attempted to fuel Super.\n",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this particular occurrence of the problem."
                      },
                      "links": {
                        "type": "object",
                        "properties": {
                          "about": {
                            "type": "string",
                            "description": "A link that leads to further details about this particular occurrence of the problem.\n"
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "description": "the HTTP status code applicable to this problem, expressed as a string value.\n"
                      },
                      "code": {
                        "type": "string",
                        "description": "an application-specific error code, expressed as a string value.\n"
                      },
                      "title": {
                        "type": "string",
                        "description": "A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.\n"
                      },
                      "detail": {
                        "type": "string",
                        "description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.\n"
                      },
                      "source": {
                        "type": "object",
                        "description": "An object containing references to the source of the error.\n",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. \"/data\" for a primary data object, or \"/data/attributes/title\" for a specific attribute].\n"
                          },
                          "parameter": {
                            "type": "string",
                            "description": "A string indicating which URI query parameter caused the error.\n"
                          }
                        }
                      },
                      "meta": {
                        "type": "object",
                        "description": "a meta object containing non-standard meta-information about the error.\n",
                        "properties": {},
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "OIDC": {
        "type": "openIdConnect",
        "openIdConnectUrl": "https://id.pace.cloud/auth/realms/pace/.well-known/openid-configuration"
      },
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/auth",
            "tokenUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token",
            "refreshUrl": "https://id.pace.cloud/auth/realms/pace/protocol/openid-connect/token",
            "scopes": {
              "fueling:gas-stations:approaching": "Get gas station information",
              "fueling:pumps:read": "Get pump information",
              "fueling:transactions:create": "Create a transaction",
              "fueling:transactions:delete": "Cancel a Pre Auth transaction",
              "fueling:transactions:read": "Get Pre Auth transaction information",
              "fueling:notifications:create": "Create a new notification from a partner system",
              "fueling:discounts:inquiry": "Inquire discounts for a specific pump"
            }
          }
        }
      }
    }
  }
}
