{
  "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": "2020-4"
  },
  "servers": [
    {
      "url": "https://api.pace.cloud/fueling/2020-4",
      "description": "Production server (stable release 2020-4)"
    }
  ],
  "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 liters",
              "example": 1.379
            },
            "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 liters",
              "example": 44.3
            },
            "pricePerUnit": {
              "type": "number",
              "format": "decimal",
              "description": "Fuel price in CUR/liter",
              "example": 1.359
            },
            "VAT": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "number",
                  "format": "decimal",
                  "example": 9.72
                },
                "rate": {
                  "type": "number",
                  "format": "decimal",
                  "example": 0.19
                }
              }
            },
            "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"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/gas-stations/{gasStationId}/approaching": {
      "post": {
        "tags": [
          "Fueling"
        ],
        "operationId": "ApproachingAtTheForecourt",
        "security": [
          {
            "OAuth2": [
              "fueling:gas-stations:approaching"
            ]
          },
          {
            "OIDC": [
              "fueling:gas-stations:approaching"
            ]
          }
        ],
        "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\n* Create payment tokens for the paymentMethods of the user that are also\n  supported at the gas station and pre-authorize the calculated maximum\n  amount of money (background task).\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.\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/FuelPrice"
                          },
                          {
                            "$ref": "#/components/schemas/Pump"
                          },
                          {
                            "$ref": "#/components/schemas/PaymentMethod"
                          },
                          {
                            "$ref": "#/components/schemas/PaymentMethodKind"
                          }
                        ]
                      }
                    }
                  }
                },
                "example": {
                  "data": {
                    "type": "approaching",
                    "id": "c3f037ea-492e-4033-9b4b-4efc7beca16c",
                    "relationships": {
                      "gasStation": {
                        "data": {
                          "type": "gasStation",
                          "id": "93db55b6-a9ab-4597-a253-49a1718cea0a"
                        }
                      },
                      "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": "fuelPrice",
                      "id": "6b5bff6f-74e1-40a1-9da0-72305292d939",
                      "attributes": {
                        "fuelType": "ron95e5",
                        "price": 1.399,
                        "currency": "EUR",
                        "productName": "Super E5"
                      }
                    },
                    {
                      "type": "fuelPrice",
                      "id": "f563e0ee-ba9a-4869-8fe7-42639fcf375d",
                      "attributes": {
                        "fuelType": "ron95e10",
                        "price": 1.379,
                        "currency": "EUR",
                        "productName": "Super E10"
                      }
                    },
                    {
                      "type": "fuelPrice",
                      "id": "cb1afd35-f531-4606-abc8-e1cfbc1f96f5",
                      "attributes": {
                        "fuelType": "diesel",
                        "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"
          },
          "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"
          },
          "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"
            ]
          },
          {
            "OIDC": [
              "fueling:pumps: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,
                      "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"
          },
          "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"
          },
          "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",
        "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",
            "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 a Pre Auth transaction",
        "description": "Cancel 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",
        "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"
                  },
                  "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
                  },
                  "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 liters",
                "example": 44.3
              },
              "pricePerUnit": {
                "type": "number",
                "format": "decimal",
                "description": "Fuel price in CUR/liter",
                "example": 1.359
              },
              "VAT": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "example": 9.72
                  },
                  "rate": {
                    "type": "number",
                    "format": "decimal",
                    "example": 0.19
                  }
                }
              },
              "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"
              }
            }
          }
        }
      },
      "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 liters",
                "example": 44.3
              },
              "pricePerUnit": {
                "type": "number",
                "format": "decimal",
                "description": "Fuel price in CUR/liter",
                "example": 1.359
              },
              "VAT": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "example": 9.72
                  },
                  "rate": {
                    "type": "number",
                    "format": "decimal",
                    "example": 0.19
                  }
                }
              },
              "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"
              }
            }
          }
        }
      },
      "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 liters",
                "example": 1.379
              },
              "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 liters",
                    "example": 1.379
                  },
                  "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"
              },
              "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"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "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, ..."
              },
              "identificationString": {
                "type": "string",
                "example": "DEUTSCHEBANK XX 3000"
              },
              "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
              }
            }
          },
          "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
              },
              "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"
                      }
                    }
                  }
                }
              },
              "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"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "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"
              },
              "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
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "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:notifications:create": "Create a new notification from a partner system"
            }
          }
        }
      }
    }
  }
}
